Copy disabled (too large)
Download .txt
Showing preview only (60,430K chars total). Download the full file to get everything.
Repository: PacktPublishing/The-Modern-Cpp-Challenge
Branch: master
Commit: 6a79f529c038
Files: 5371
Total size: 56.7 MB
Directory structure:
gitextract_cpr3p9u9/
├── .gitattributes
├── .gitignore
├── CMakeLists.txt
├── Chapter01/
│ ├── problem_01/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_02/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_03/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_04/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_05/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_06/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_07/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_08/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_09/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_10/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_11/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_12/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_13/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_14/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter02/
│ ├── problem_15/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_16/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_17/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_18/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_19/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_20/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_21/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_22/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter03/
│ ├── problem_23/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_24/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_25/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_26/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_27/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_28/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_29/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_30/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_31/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter04/
│ ├── problem_32/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_33/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_34/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── sample34.txt
│ ├── problem_35/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_36/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_37/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_38/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter05/
│ ├── problem_39/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_40/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_41/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_42/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_43/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_44/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter06/
│ ├── problem_45/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_46/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_47/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_48/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_49/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_50/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_51/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_52/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_53/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_54/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_55/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_56/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_57/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_58/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_59/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_60/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter07/
│ ├── problem_61/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_62/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_63/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_64/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_65/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_66/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter08/
│ ├── problem_67/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_68/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_69/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_70/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_71/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_72/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter09/
│ ├── problem_73/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_74/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── movies.xml
│ ├── problem_75/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_76/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── movies.json
│ ├── problem_77/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_78/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter10/
│ ├── problem_79/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_80/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_81/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_82/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_83/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_84/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_85/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── moviesdb.sql
│ ├── problem_86/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_87/
│ ├── CMakeLists.txt
│ ├── main.cpp
│ └── moviesdb.sql
├── Chapter11/
│ ├── problem_88/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_89/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_90/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_91/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_92/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_93/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── sample.txt
│ └── problem_94/
│ ├── CMakeLists.txt
│ ├── main.cpp
│ └── sample.txt
├── Chapter12/
│ ├── problem_95/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_96c/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_96s/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_97/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_98/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_99/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_9a/
│ ├── CMakeLists.txt
│ └── main.cpp
├── LICENSE
├── README.md
├── include/
│ └── movies.h
└── libs/
├── PDF-Writer/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── FreeType/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── builds/
│ │ │ ├── amiga/
│ │ │ │ ├── README
│ │ │ │ ├── include/
│ │ │ │ │ └── freetype/
│ │ │ │ │ └── config/
│ │ │ │ │ ├── ftconfig.h
│ │ │ │ │ └── ftmodule.h
│ │ │ │ ├── makefile
│ │ │ │ ├── makefile.os4
│ │ │ │ ├── smakefile
│ │ │ │ └── src/
│ │ │ │ └── base/
│ │ │ │ ├── ftdebug.c
│ │ │ │ └── ftsystem.c
│ │ │ ├── ansi/
│ │ │ │ ├── ansi-def.mk
│ │ │ │ └── ansi.mk
│ │ │ ├── atari/
│ │ │ │ ├── ATARI.H
│ │ │ │ ├── FNames.SIC
│ │ │ │ ├── FREETYPE.PRJ
│ │ │ │ ├── README.TXT
│ │ │ │ ├── deflinejoiner.awk
│ │ │ │ └── gen-purec-patch.sh
│ │ │ ├── beos/
│ │ │ │ ├── beos-def.mk
│ │ │ │ ├── beos.mk
│ │ │ │ └── detect.mk
│ │ │ ├── compiler/
│ │ │ │ ├── ansi-cc.mk
│ │ │ │ ├── bcc-dev.mk
│ │ │ │ ├── bcc.mk
│ │ │ │ ├── emx.mk
│ │ │ │ ├── gcc-dev.mk
│ │ │ │ ├── gcc.mk
│ │ │ │ ├── intelc.mk
│ │ │ │ ├── unix-lcc.mk
│ │ │ │ ├── visualage.mk
│ │ │ │ ├── visualc.mk
│ │ │ │ ├── watcom.mk
│ │ │ │ └── win-lcc.mk
│ │ │ ├── detect.mk
│ │ │ ├── dos/
│ │ │ │ ├── detect.mk
│ │ │ │ ├── dos-def.mk
│ │ │ │ ├── dos-emx.mk
│ │ │ │ ├── dos-gcc.mk
│ │ │ │ └── dos-wat.mk
│ │ │ ├── exports.mk
│ │ │ ├── freetype.mk
│ │ │ ├── link_dos.mk
│ │ │ ├── link_std.mk
│ │ │ ├── mac/
│ │ │ │ ├── FreeType.m68k_cfm.make.txt
│ │ │ │ ├── FreeType.m68k_far.make.txt
│ │ │ │ ├── FreeType.ppc_carbon.make.txt
│ │ │ │ ├── FreeType.ppc_classic.make.txt
│ │ │ │ ├── README
│ │ │ │ ├── ascii2mpw.py
│ │ │ │ ├── ftlib.prj.xml
│ │ │ │ └── ftmac.c
│ │ │ ├── modules.mk
│ │ │ ├── newline
│ │ │ ├── os2/
│ │ │ │ ├── detect.mk
│ │ │ │ ├── os2-def.mk
│ │ │ │ ├── os2-dev.mk
│ │ │ │ └── os2-gcc.mk
│ │ │ ├── symbian/
│ │ │ │ ├── bld.inf
│ │ │ │ └── freetype.mmp
│ │ │ ├── toplevel.mk
│ │ │ ├── unix/
│ │ │ │ ├── aclocal.m4
│ │ │ │ ├── config.guess
│ │ │ │ ├── config.status
│ │ │ │ ├── config.sub
│ │ │ │ ├── configure
│ │ │ │ ├── configure.ac
│ │ │ │ ├── configure.raw
│ │ │ │ ├── detect.mk
│ │ │ │ ├── freetype-config
│ │ │ │ ├── freetype-config.in
│ │ │ │ ├── freetype2.in
│ │ │ │ ├── freetype2.m4
│ │ │ │ ├── freetype2.pc
│ │ │ │ ├── ft-munmap.m4
│ │ │ │ ├── ft2unix.h
│ │ │ │ ├── ftconfig.h
│ │ │ │ ├── ftconfig.in
│ │ │ │ ├── ftsystem.c
│ │ │ │ ├── install-sh
│ │ │ │ ├── install.mk
│ │ │ │ ├── libtool
│ │ │ │ ├── ltmain.sh
│ │ │ │ ├── mkinstalldirs
│ │ │ │ ├── unix-cc.in
│ │ │ │ ├── unix-cc.mk
│ │ │ │ ├── unix-def.in
│ │ │ │ ├── unix-def.mk
│ │ │ │ ├── unix-dev.mk
│ │ │ │ ├── unix-lcc.mk
│ │ │ │ ├── unix.mk
│ │ │ │ └── unixddef.mk
│ │ │ ├── vms/
│ │ │ │ ├── ftconfig.h
│ │ │ │ └── ftsystem.c
│ │ │ ├── win32/
│ │ │ │ ├── detect.mk
│ │ │ │ ├── ftdebug.c
│ │ │ │ ├── vc2005/
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── vc2008/
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── vc2010/
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcxproj
│ │ │ │ │ └── freetype.vcxproj.filters
│ │ │ │ ├── visualc/
│ │ │ │ │ ├── freetype.dsp
│ │ │ │ │ ├── freetype.dsw
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── visualce/
│ │ │ │ │ ├── freetype.dsp
│ │ │ │ │ ├── freetype.dsw
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── w32-bcc.mk
│ │ │ │ ├── w32-bccd.mk
│ │ │ │ ├── w32-dev.mk
│ │ │ │ ├── w32-gcc.mk
│ │ │ │ ├── w32-icc.mk
│ │ │ │ ├── w32-intl.mk
│ │ │ │ ├── w32-lcc.mk
│ │ │ │ ├── w32-mingw32.mk
│ │ │ │ ├── w32-vcc.mk
│ │ │ │ ├── w32-wat.mk
│ │ │ │ └── win32-def.mk
│ │ │ └── wince/
│ │ │ ├── ftdebug.c
│ │ │ ├── vc2005-ce/
│ │ │ │ ├── freetype.sln
│ │ │ │ ├── freetype.vcproj
│ │ │ │ └── index.html
│ │ │ └── vc2008-ce/
│ │ │ ├── freetype.sln
│ │ │ ├── freetype.vcproj
│ │ │ └── index.html
│ │ ├── include/
│ │ │ ├── freetype/
│ │ │ │ ├── config/
│ │ │ │ │ ├── ftconfig.h
│ │ │ │ │ ├── ftheader.h
│ │ │ │ │ ├── ftmodule.h
│ │ │ │ │ ├── ftoption.h
│ │ │ │ │ └── ftstdlib.h
│ │ │ │ ├── freetype.h
│ │ │ │ ├── ftadvanc.h
│ │ │ │ ├── ftautoh.h
│ │ │ │ ├── ftbbox.h
│ │ │ │ ├── ftbdf.h
│ │ │ │ ├── ftbitmap.h
│ │ │ │ ├── ftbzip2.h
│ │ │ │ ├── ftcache.h
│ │ │ │ ├── ftchapters.h
│ │ │ │ ├── ftcid.h
│ │ │ │ ├── fterrdef.h
│ │ │ │ ├── fterrors.h
│ │ │ │ ├── ftgasp.h
│ │ │ │ ├── ftglyph.h
│ │ │ │ ├── ftgxval.h
│ │ │ │ ├── ftgzip.h
│ │ │ │ ├── ftimage.h
│ │ │ │ ├── ftincrem.h
│ │ │ │ ├── ftlcdfil.h
│ │ │ │ ├── ftlist.h
│ │ │ │ ├── ftlzw.h
│ │ │ │ ├── ftmac.h
│ │ │ │ ├── ftmm.h
│ │ │ │ ├── ftmodapi.h
│ │ │ │ ├── ftmoderr.h
│ │ │ │ ├── ftotval.h
│ │ │ │ ├── ftoutln.h
│ │ │ │ ├── ftpfr.h
│ │ │ │ ├── ftrender.h
│ │ │ │ ├── ftsizes.h
│ │ │ │ ├── ftsnames.h
│ │ │ │ ├── ftstroke.h
│ │ │ │ ├── ftsynth.h
│ │ │ │ ├── ftsystem.h
│ │ │ │ ├── fttrigon.h
│ │ │ │ ├── fttypes.h
│ │ │ │ ├── ftwinfnt.h
│ │ │ │ ├── ftxf86.h
│ │ │ │ ├── internal/
│ │ │ │ │ ├── autohint.h
│ │ │ │ │ ├── ftcalc.h
│ │ │ │ │ ├── ftdebug.h
│ │ │ │ │ ├── ftdriver.h
│ │ │ │ │ ├── ftgloadr.h
│ │ │ │ │ ├── ftmemory.h
│ │ │ │ │ ├── ftobjs.h
│ │ │ │ │ ├── ftpic.h
│ │ │ │ │ ├── ftrfork.h
│ │ │ │ │ ├── ftserv.h
│ │ │ │ │ ├── ftstream.h
│ │ │ │ │ ├── fttrace.h
│ │ │ │ │ ├── ftvalid.h
│ │ │ │ │ ├── internal.h
│ │ │ │ │ ├── psaux.h
│ │ │ │ │ ├── pshints.h
│ │ │ │ │ ├── services/
│ │ │ │ │ │ ├── svbdf.h
│ │ │ │ │ │ ├── svcid.h
│ │ │ │ │ │ ├── svgldict.h
│ │ │ │ │ │ ├── svgxval.h
│ │ │ │ │ │ ├── svkern.h
│ │ │ │ │ │ ├── svmm.h
│ │ │ │ │ │ ├── svotval.h
│ │ │ │ │ │ ├── svpfr.h
│ │ │ │ │ │ ├── svpostnm.h
│ │ │ │ │ │ ├── svprop.h
│ │ │ │ │ │ ├── svpscmap.h
│ │ │ │ │ │ ├── svpsinfo.h
│ │ │ │ │ │ ├── svsfnt.h
│ │ │ │ │ │ ├── svttcmap.h
│ │ │ │ │ │ ├── svtteng.h
│ │ │ │ │ │ ├── svttglyf.h
│ │ │ │ │ │ ├── svwinfnt.h
│ │ │ │ │ │ └── svxf86nm.h
│ │ │ │ │ ├── sfnt.h
│ │ │ │ │ ├── t1types.h
│ │ │ │ │ └── tttypes.h
│ │ │ │ ├── t1tables.h
│ │ │ │ ├── ttnameid.h
│ │ │ │ ├── tttables.h
│ │ │ │ ├── tttags.h
│ │ │ │ └── ttunpat.h
│ │ │ └── ft2build.h
│ │ └── src/
│ │ ├── Jamfile
│ │ ├── autofit/
│ │ │ ├── Jamfile
│ │ │ ├── afangles.c
│ │ │ ├── afangles.h
│ │ │ ├── afcjk.c
│ │ │ ├── afcjk.h
│ │ │ ├── afdummy.c
│ │ │ ├── afdummy.h
│ │ │ ├── aferrors.h
│ │ │ ├── afglobal.c
│ │ │ ├── afglobal.h
│ │ │ ├── afhints.c
│ │ │ ├── afhints.h
│ │ │ ├── afindic.c
│ │ │ ├── afindic.h
│ │ │ ├── aflatin.c
│ │ │ ├── aflatin.h
│ │ │ ├── aflatin2.c
│ │ │ ├── aflatin2.h
│ │ │ ├── afloader.c
│ │ │ ├── afloader.h
│ │ │ ├── afmodule.c
│ │ │ ├── afmodule.h
│ │ │ ├── afpic.c
│ │ │ ├── afpic.h
│ │ │ ├── aftypes.h
│ │ │ ├── afwarp.c
│ │ │ ├── afwarp.h
│ │ │ ├── autofit.c
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── base/
│ │ │ ├── Jamfile
│ │ │ ├── basepic.c
│ │ │ ├── basepic.h
│ │ │ ├── ftadvanc.c
│ │ │ ├── ftapi.c
│ │ │ ├── ftbase.c
│ │ │ ├── ftbase.h
│ │ │ ├── ftbbox.c
│ │ │ ├── ftbdf.c
│ │ │ ├── ftbitmap.c
│ │ │ ├── ftcalc.c
│ │ │ ├── ftcid.c
│ │ │ ├── ftdbgmem.c
│ │ │ ├── ftdebug.c
│ │ │ ├── ftfstype.c
│ │ │ ├── ftgasp.c
│ │ │ ├── ftgloadr.c
│ │ │ ├── ftglyph.c
│ │ │ ├── ftgxval.c
│ │ │ ├── ftinit.c
│ │ │ ├── ftlcdfil.c
│ │ │ ├── ftmac.c
│ │ │ ├── ftmm.c
│ │ │ ├── ftobjs.c
│ │ │ ├── ftotval.c
│ │ │ ├── ftoutln.c
│ │ │ ├── ftpatent.c
│ │ │ ├── ftpfr.c
│ │ │ ├── ftpic.c
│ │ │ ├── ftrfork.c
│ │ │ ├── ftsnames.c
│ │ │ ├── ftstream.c
│ │ │ ├── ftstroke.c
│ │ │ ├── ftsynth.c
│ │ │ ├── ftsystem.c
│ │ │ ├── fttrigon.c
│ │ │ ├── fttype1.c
│ │ │ ├── ftutil.c
│ │ │ ├── ftwinfnt.c
│ │ │ ├── ftxf86.c
│ │ │ └── rules.mk
│ │ ├── bdf/
│ │ │ ├── Jamfile
│ │ │ ├── README
│ │ │ ├── bdf.c
│ │ │ ├── bdf.h
│ │ │ ├── bdfdrivr.c
│ │ │ ├── bdfdrivr.h
│ │ │ ├── bdferror.h
│ │ │ ├── bdflib.c
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── bzip2/
│ │ │ ├── Jamfile
│ │ │ ├── ftbzip2.c
│ │ │ └── rules.mk
│ │ ├── cache/
│ │ │ ├── Jamfile
│ │ │ ├── ftcache.c
│ │ │ ├── ftcbasic.c
│ │ │ ├── ftccache.c
│ │ │ ├── ftccache.h
│ │ │ ├── ftccback.h
│ │ │ ├── ftccmap.c
│ │ │ ├── ftcerror.h
│ │ │ ├── ftcglyph.c
│ │ │ ├── ftcglyph.h
│ │ │ ├── ftcimage.c
│ │ │ ├── ftcimage.h
│ │ │ ├── ftcmanag.c
│ │ │ ├── ftcmanag.h
│ │ │ ├── ftcmru.c
│ │ │ ├── ftcmru.h
│ │ │ ├── ftcsbits.c
│ │ │ ├── ftcsbits.h
│ │ │ └── rules.mk
│ │ ├── cff/
│ │ │ ├── Jamfile
│ │ │ ├── cff.c
│ │ │ ├── cffcmap.c
│ │ │ ├── cffcmap.h
│ │ │ ├── cffdrivr.c
│ │ │ ├── cffdrivr.h
│ │ │ ├── cfferrs.h
│ │ │ ├── cffgload.c
│ │ │ ├── cffgload.h
│ │ │ ├── cffload.c
│ │ │ ├── cffload.h
│ │ │ ├── cffobjs.c
│ │ │ ├── cffobjs.h
│ │ │ ├── cffparse.c
│ │ │ ├── cffparse.h
│ │ │ ├── cffpic.c
│ │ │ ├── cffpic.h
│ │ │ ├── cfftoken.h
│ │ │ ├── cfftypes.h
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── cid/
│ │ │ ├── Jamfile
│ │ │ ├── ciderrs.h
│ │ │ ├── cidgload.c
│ │ │ ├── cidgload.h
│ │ │ ├── cidload.c
│ │ │ ├── cidload.h
│ │ │ ├── cidobjs.c
│ │ │ ├── cidobjs.h
│ │ │ ├── cidparse.c
│ │ │ ├── cidparse.h
│ │ │ ├── cidriver.c
│ │ │ ├── cidriver.h
│ │ │ ├── cidtoken.h
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ └── type1cid.c
│ │ ├── gxvalid/
│ │ │ ├── Jamfile
│ │ │ ├── README
│ │ │ ├── gxvalid.c
│ │ │ ├── gxvalid.h
│ │ │ ├── gxvbsln.c
│ │ │ ├── gxvcommn.c
│ │ │ ├── gxvcommn.h
│ │ │ ├── gxverror.h
│ │ │ ├── gxvfeat.c
│ │ │ ├── gxvfeat.h
│ │ │ ├── gxvfgen.c
│ │ │ ├── gxvjust.c
│ │ │ ├── gxvkern.c
│ │ │ ├── gxvlcar.c
│ │ │ ├── gxvmod.c
│ │ │ ├── gxvmod.h
│ │ │ ├── gxvmort.c
│ │ │ ├── gxvmort.h
│ │ │ ├── gxvmort0.c
│ │ │ ├── gxvmort1.c
│ │ │ ├── gxvmort2.c
│ │ │ ├── gxvmort4.c
│ │ │ ├── gxvmort5.c
│ │ │ ├── gxvmorx.c
│ │ │ ├── gxvmorx.h
│ │ │ ├── gxvmorx0.c
│ │ │ ├── gxvmorx1.c
│ │ │ ├── gxvmorx2.c
│ │ │ ├── gxvmorx4.c
│ │ │ ├── gxvmorx5.c
│ │ │ ├── gxvopbd.c
│ │ │ ├── gxvprop.c
│ │ │ ├── gxvtrak.c
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── gzip/
│ │ │ ├── Jamfile
│ │ │ ├── adler32.c
│ │ │ ├── ftgzip.c
│ │ │ ├── infblock.c
│ │ │ ├── infblock.h
│ │ │ ├── infcodes.c
│ │ │ ├── infcodes.h
│ │ │ ├── inffixed.h
│ │ │ ├── inflate.c
│ │ │ ├── inftrees.c
│ │ │ ├── inftrees.h
│ │ │ ├── infutil.c
│ │ │ ├── infutil.h
│ │ │ ├── rules.mk
│ │ │ ├── zconf.h
│ │ │ ├── zlib.h
│ │ │ ├── zutil.c
│ │ │ └── zutil.h
│ │ ├── lzw/
│ │ │ ├── Jamfile
│ │ │ ├── ftlzw.c
│ │ │ ├── ftzopen.c
│ │ │ ├── ftzopen.h
│ │ │ └── rules.mk
│ │ ├── otvalid/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── otvalid.c
│ │ │ ├── otvalid.h
│ │ │ ├── otvbase.c
│ │ │ ├── otvcommn.c
│ │ │ ├── otvcommn.h
│ │ │ ├── otverror.h
│ │ │ ├── otvgdef.c
│ │ │ ├── otvgpos.c
│ │ │ ├── otvgpos.h
│ │ │ ├── otvgsub.c
│ │ │ ├── otvjstf.c
│ │ │ ├── otvmath.c
│ │ │ ├── otvmod.c
│ │ │ ├── otvmod.h
│ │ │ └── rules.mk
│ │ ├── pcf/
│ │ │ ├── Jamfile
│ │ │ ├── README
│ │ │ ├── module.mk
│ │ │ ├── pcf.c
│ │ │ ├── pcf.h
│ │ │ ├── pcfdrivr.c
│ │ │ ├── pcfdrivr.h
│ │ │ ├── pcferror.h
│ │ │ ├── pcfread.c
│ │ │ ├── pcfread.h
│ │ │ ├── pcfutil.c
│ │ │ ├── pcfutil.h
│ │ │ └── rules.mk
│ │ ├── pfr/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── pfr.c
│ │ │ ├── pfrcmap.c
│ │ │ ├── pfrcmap.h
│ │ │ ├── pfrdrivr.c
│ │ │ ├── pfrdrivr.h
│ │ │ ├── pfrerror.h
│ │ │ ├── pfrgload.c
│ │ │ ├── pfrgload.h
│ │ │ ├── pfrload.c
│ │ │ ├── pfrload.h
│ │ │ ├── pfrobjs.c
│ │ │ ├── pfrobjs.h
│ │ │ ├── pfrsbit.c
│ │ │ ├── pfrsbit.h
│ │ │ ├── pfrtypes.h
│ │ │ └── rules.mk
│ │ ├── psaux/
│ │ │ ├── Jamfile
│ │ │ ├── afmparse.c
│ │ │ ├── afmparse.h
│ │ │ ├── module.mk
│ │ │ ├── psaux.c
│ │ │ ├── psauxerr.h
│ │ │ ├── psauxmod.c
│ │ │ ├── psauxmod.h
│ │ │ ├── psconv.c
│ │ │ ├── psconv.h
│ │ │ ├── psobjs.c
│ │ │ ├── psobjs.h
│ │ │ ├── rules.mk
│ │ │ ├── t1cmap.c
│ │ │ ├── t1cmap.h
│ │ │ ├── t1decode.c
│ │ │ └── t1decode.h
│ │ ├── pshinter/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── pshalgo.c
│ │ │ ├── pshalgo.h
│ │ │ ├── pshglob.c
│ │ │ ├── pshglob.h
│ │ │ ├── pshinter.c
│ │ │ ├── pshmod.c
│ │ │ ├── pshmod.h
│ │ │ ├── pshnterr.h
│ │ │ ├── pshpic.c
│ │ │ ├── pshpic.h
│ │ │ ├── pshrec.c
│ │ │ ├── pshrec.h
│ │ │ └── rules.mk
│ │ ├── psnames/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── psmodule.c
│ │ │ ├── psmodule.h
│ │ │ ├── psnamerr.h
│ │ │ ├── psnames.c
│ │ │ ├── pspic.c
│ │ │ ├── pspic.h
│ │ │ ├── pstables.h
│ │ │ └── rules.mk
│ │ ├── raster/
│ │ │ ├── Jamfile
│ │ │ ├── ftmisc.h
│ │ │ ├── ftraster.c
│ │ │ ├── ftraster.h
│ │ │ ├── ftrend1.c
│ │ │ ├── ftrend1.h
│ │ │ ├── module.mk
│ │ │ ├── raster.c
│ │ │ ├── rasterrs.h
│ │ │ ├── rastpic.c
│ │ │ ├── rastpic.h
│ │ │ └── rules.mk
│ │ ├── sfnt/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── sfdriver.c
│ │ │ ├── sfdriver.h
│ │ │ ├── sferrors.h
│ │ │ ├── sfnt.c
│ │ │ ├── sfntpic.c
│ │ │ ├── sfntpic.h
│ │ │ ├── sfobjs.c
│ │ │ ├── sfobjs.h
│ │ │ ├── ttbdf.c
│ │ │ ├── ttbdf.h
│ │ │ ├── ttcmap.c
│ │ │ ├── ttcmap.h
│ │ │ ├── ttcmapc.h
│ │ │ ├── ttkern.c
│ │ │ ├── ttkern.h
│ │ │ ├── ttload.c
│ │ │ ├── ttload.h
│ │ │ ├── ttmtx.c
│ │ │ ├── ttmtx.h
│ │ │ ├── ttpost.c
│ │ │ ├── ttpost.h
│ │ │ ├── ttsbit.c
│ │ │ ├── ttsbit.h
│ │ │ └── ttsbit0.c
│ │ ├── smooth/
│ │ │ ├── Jamfile
│ │ │ ├── ftgrays.c
│ │ │ ├── ftgrays.h
│ │ │ ├── ftsmerrs.h
│ │ │ ├── ftsmooth.c
│ │ │ ├── ftsmooth.h
│ │ │ ├── ftspic.c
│ │ │ ├── ftspic.h
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ └── smooth.c
│ │ ├── tools/
│ │ │ ├── Jamfile
│ │ │ ├── apinames.c
│ │ │ ├── chktrcmp.py
│ │ │ ├── cordic.py
│ │ │ ├── docmaker/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── content.py
│ │ │ │ ├── docbeauty.py
│ │ │ │ ├── docmaker.py
│ │ │ │ ├── formatter.py
│ │ │ │ ├── sources.py
│ │ │ │ ├── tohtml.py
│ │ │ │ └── utils.py
│ │ │ ├── ftrandom/
│ │ │ │ ├── Makefile
│ │ │ │ ├── README
│ │ │ │ └── ftrandom.c
│ │ │ ├── glnames.py
│ │ │ ├── test_afm.c
│ │ │ ├── test_bbox.c
│ │ │ └── test_trig.c
│ │ ├── truetype/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── truetype.c
│ │ │ ├── ttdriver.c
│ │ │ ├── ttdriver.h
│ │ │ ├── tterrors.h
│ │ │ ├── ttgload.c
│ │ │ ├── ttgload.h
│ │ │ ├── ttgxvar.c
│ │ │ ├── ttgxvar.h
│ │ │ ├── ttinterp.c
│ │ │ ├── ttinterp.h
│ │ │ ├── ttobjs.c
│ │ │ ├── ttobjs.h
│ │ │ ├── ttpic.c
│ │ │ ├── ttpic.h
│ │ │ ├── ttpload.c
│ │ │ ├── ttpload.h
│ │ │ ├── ttsubpix.c
│ │ │ └── ttsubpix.h
│ │ ├── type1/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── t1afm.c
│ │ │ ├── t1afm.h
│ │ │ ├── t1driver.c
│ │ │ ├── t1driver.h
│ │ │ ├── t1errors.h
│ │ │ ├── t1gload.c
│ │ │ ├── t1gload.h
│ │ │ ├── t1load.c
│ │ │ ├── t1load.h
│ │ │ ├── t1objs.c
│ │ │ ├── t1objs.h
│ │ │ ├── t1parse.c
│ │ │ ├── t1parse.h
│ │ │ ├── t1tokens.h
│ │ │ └── type1.c
│ │ ├── type42/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── t42drivr.c
│ │ │ ├── t42drivr.h
│ │ │ ├── t42error.h
│ │ │ ├── t42objs.c
│ │ │ ├── t42objs.h
│ │ │ ├── t42parse.c
│ │ │ ├── t42parse.h
│ │ │ ├── t42types.h
│ │ │ └── type42.c
│ │ └── winfonts/
│ │ ├── Jamfile
│ │ ├── fnterrs.h
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ ├── winfnt.c
│ │ └── winfnt.h
│ ├── LICENSE
│ ├── LibAesgm/
│ │ ├── CMakeLists.txt
│ │ ├── aes.h
│ │ ├── aes_modes.c
│ │ ├── aes_ni.c
│ │ ├── aes_ni.h
│ │ ├── aes_via_ace.h
│ │ ├── aescpp.h
│ │ ├── aescrypt.c
│ │ ├── aeskey.c
│ │ ├── aesopt.h
│ │ ├── aestab.c
│ │ ├── aestab.h
│ │ ├── binding.gyp
│ │ ├── brg_endian.h
│ │ └── brg_types.h
│ ├── LibJpeg/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── jaricom.c
│ │ ├── jcapimin.c
│ │ ├── jcapistd.c
│ │ ├── jcarith.c
│ │ ├── jccoefct.c
│ │ ├── jccolor.c
│ │ ├── jcdctmgr.c
│ │ ├── jchuff.c
│ │ ├── jcinit.c
│ │ ├── jcmainct.c
│ │ ├── jcmarker.c
│ │ ├── jcmaster.c
│ │ ├── jcomapi.c
│ │ ├── jconfig.h
│ │ ├── jcparam.c
│ │ ├── jcprepct.c
│ │ ├── jcsample.c
│ │ ├── jctrans.c
│ │ ├── jdapimin.c
│ │ ├── jdapistd.c
│ │ ├── jdarith.c
│ │ ├── jdatadst.c
│ │ ├── jdatasrc.c
│ │ ├── jdcoefct.c
│ │ ├── jdcolor.c
│ │ ├── jdct.h
│ │ ├── jddctmgr.c
│ │ ├── jdhuff.c
│ │ ├── jdinput.c
│ │ ├── jdmainct.c
│ │ ├── jdmarker.c
│ │ ├── jdmaster.c
│ │ ├── jdmerge.c
│ │ ├── jdpostct.c
│ │ ├── jdsample.c
│ │ ├── jdtrans.c
│ │ ├── jerror.c
│ │ ├── jerror.h
│ │ ├── jfdctflt.c
│ │ ├── jfdctfst.c
│ │ ├── jfdctint.c
│ │ ├── jidctflt.c
│ │ ├── jidctfst.c
│ │ ├── jidctint.c
│ │ ├── jinclude.h
│ │ ├── jmemmgr.c
│ │ ├── jmemnobs.c
│ │ ├── jmemsys.h
│ │ ├── jmorecfg.h
│ │ ├── jpegint.h
│ │ ├── jpeglib.h
│ │ ├── jquant1.c
│ │ ├── jquant2.c
│ │ ├── jutils.c
│ │ └── jversion.h
│ ├── LibPng/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── png.c
│ │ ├── png.h
│ │ ├── pngconf.h
│ │ ├── pngdebug.h
│ │ ├── pngerror.c
│ │ ├── pngget.c
│ │ ├── pnginfo.h
│ │ ├── pnglibconf.h
│ │ ├── pngmem.c
│ │ ├── pngpread.c
│ │ ├── pngpriv.h
│ │ ├── pngread.c
│ │ ├── pngrio.c
│ │ ├── pngrtran.c
│ │ ├── pngrutil.c
│ │ ├── pngset.c
│ │ ├── pngstruct.h
│ │ ├── pngtrans.c
│ │ ├── pngwio.c
│ │ ├── pngwrite.c
│ │ ├── pngwtran.c
│ │ └── pngwutil.c
│ ├── LibTiff/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── t4.h
│ │ ├── tif_aux.c
│ │ ├── tif_close.c
│ │ ├── tif_codec.c
│ │ ├── tif_color.c
│ │ ├── tif_compress.c
│ │ ├── tif_config.h
│ │ ├── tif_dir.c
│ │ ├── tif_dir.h
│ │ ├── tif_dirinfo.c
│ │ ├── tif_dirread.c
│ │ ├── tif_dirwrite.c
│ │ ├── tif_dumpmode.c
│ │ ├── tif_error.c
│ │ ├── tif_extension.c
│ │ ├── tif_fax3.c
│ │ ├── tif_fax3.h
│ │ ├── tif_fax3sm.c
│ │ ├── tif_flush.c
│ │ ├── tif_getimage.c
│ │ ├── tif_jbig.c
│ │ ├── tif_jpeg.c
│ │ ├── tif_luv.c
│ │ ├── tif_lzw.c
│ │ ├── tif_next.c
│ │ ├── tif_ojpeg.c
│ │ ├── tif_open.c
│ │ ├── tif_packbits.c
│ │ ├── tif_pixarlog.c
│ │ ├── tif_predict.c
│ │ ├── tif_predict.h
│ │ ├── tif_print.c
│ │ ├── tif_read.c
│ │ ├── tif_stream.cxx
│ │ ├── tif_strip.c
│ │ ├── tif_swab.c
│ │ ├── tif_thunder.c
│ │ ├── tif_tile.c
│ │ ├── tif_unix.c
│ │ ├── tif_version.c
│ │ ├── tif_warning.c
│ │ ├── tif_write.c
│ │ ├── tif_zip.c
│ │ ├── tiff.h
│ │ ├── tiffconf.h
│ │ ├── tiffio.h
│ │ ├── tiffio.hxx
│ │ ├── tiffiop.h
│ │ ├── tiffvers.h
│ │ └── uvcode.h
│ ├── LicenseTemplate.txt
│ ├── PDFWriter/
│ │ ├── ANSIFontWriter.cpp
│ │ ├── ANSIFontWriter.h
│ │ ├── AbstractContentContext.cpp
│ │ ├── AbstractContentContext.h
│ │ ├── AbstractWrittenFont.cpp
│ │ ├── AbstractWrittenFont.h
│ │ ├── AdapterIByteReaderWithPositionToIReadPositionProvider.h
│ │ ├── ArrayOfInputStreamsStream.cpp
│ │ ├── ArrayOfInputStreamsStream.h
│ │ ├── Ascii7Encoding.cpp
│ │ ├── Ascii7Encoding.h
│ │ ├── BetweenIncluding.h
│ │ ├── BoxingBase.h
│ │ ├── CFFANSIFontWriter.cpp
│ │ ├── CFFANSIFontWriter.h
│ │ ├── CFFDescendentFontWriter.cpp
│ │ ├── CFFDescendentFontWriter.h
│ │ ├── CFFEmbeddedFontWriter.cpp
│ │ ├── CFFEmbeddedFontWriter.h
│ │ ├── CFFFileInput.cpp
│ │ ├── CFFFileInput.h
│ │ ├── CFFPrimitiveReader.cpp
│ │ ├── CFFPrimitiveReader.h
│ │ ├── CFFPrimitiveWriter.cpp
│ │ ├── CFFPrimitiveWriter.h
│ │ ├── CIDFontWriter.cpp
│ │ ├── CIDFontWriter.h
│ │ ├── CMYKRGBColor.cpp
│ │ ├── CMYKRGBColor.h
│ │ ├── CMakeLists.txt
│ │ ├── CatalogInformation.cpp
│ │ ├── CatalogInformation.h
│ │ ├── CharStringDefinitions.h
│ │ ├── CharStringType1Interpreter.cpp
│ │ ├── CharStringType1Interpreter.h
│ │ ├── CharStringType1Tracer.cpp
│ │ ├── CharStringType1Tracer.h
│ │ ├── CharStringType2Flattener.cpp
│ │ ├── CharStringType2Flattener.h
│ │ ├── CharStringType2Interpreter.cpp
│ │ ├── CharStringType2Interpreter.h
│ │ ├── CharStringType2Tracer.cpp
│ │ ├── CharStringType2Tracer.h
│ │ ├── ContainerIterator.h
│ │ ├── DecryptionHelper.cpp
│ │ ├── DecryptionHelper.h
│ │ ├── DescendentFontWriter.cpp
│ │ ├── DescendentFontWriter.h
│ │ ├── DictOperand.h
│ │ ├── DictionaryContext.cpp
│ │ ├── DictionaryContext.h
│ │ ├── DocumentContext.cpp
│ │ ├── DocumentContext.h
│ │ ├── DocumentContextExtenderAdapter.h
│ │ ├── EFontStretch.h
│ │ ├── EHummusImageType.h
│ │ ├── EPDFVersion.h
│ │ ├── EStatusCode.h
│ │ ├── ETokenSeparator.h
│ │ ├── EncryptionHelper.cpp
│ │ ├── EncryptionHelper.h
│ │ ├── EncryptionOptions.cpp
│ │ ├── EncryptionOptions.h
│ │ ├── FSType.h
│ │ ├── FontDescriptorWriter.cpp
│ │ ├── FontDescriptorWriter.h
│ │ ├── FreeTypeFaceWrapper.cpp
│ │ ├── FreeTypeFaceWrapper.h
│ │ ├── FreeTypeOpenTypeWrapper.cpp
│ │ ├── FreeTypeOpenTypeWrapper.h
│ │ ├── FreeTypeType1Wrapper.cpp
│ │ ├── FreeTypeType1Wrapper.h
│ │ ├── FreeTypeWrapper.cpp
│ │ ├── FreeTypeWrapper.h
│ │ ├── GlyphUnicodeMapping.h
│ │ ├── GraphicState.cpp
│ │ ├── GraphicState.h
│ │ ├── GraphicStateStack.cpp
│ │ ├── GraphicStateStack.h
│ │ ├── IANSIFontWriterHelper.h
│ │ ├── IByteReader.h
│ │ ├── IByteReaderWithPosition.h
│ │ ├── IByteWriter.h
│ │ ├── IByteWriterWithPosition.h
│ │ ├── IContentContextListener.h
│ │ ├── IDescendentFontWriter.h
│ │ ├── IDocumentContextExtender.h
│ │ ├── IFontDescriptorHelper.h
│ │ ├── IFormEndWritingTask.h
│ │ ├── IFreeTypeFaceExtender.h
│ │ ├── IOBasicTypes.h
│ │ ├── IObjectsContextExtender.h
│ │ ├── IPDFParserExtender.h
│ │ ├── IPageEndWritingTask.h
│ │ ├── IReadPositionProvider.h
│ │ ├── IResourceWritingTask.h
│ │ ├── ITiledPatternEndWritingTask.h
│ │ ├── IType1InterpreterImplementation.h
│ │ ├── IType2InterpreterImplementation.h
│ │ ├── IWrittenFont.h
│ │ ├── IndirectObjectsReferenceRegistry.cpp
│ │ ├── IndirectObjectsReferenceRegistry.h
│ │ ├── InfoDictionary.cpp
│ │ ├── InfoDictionary.h
│ │ ├── InputAESDecodeStream.cpp
│ │ ├── InputAESDecodeStream.h
│ │ ├── InputAscii85DecodeStream.cpp
│ │ ├── InputAscii85DecodeStream.h
│ │ ├── InputAsciiHexDecodeStream.cpp
│ │ ├── InputAsciiHexDecodeStream.h
│ │ ├── InputBufferedStream.cpp
│ │ ├── InputBufferedStream.h
│ │ ├── InputByteArrayStream.cpp
│ │ ├── InputByteArrayStream.h
│ │ ├── InputCharStringDecodeStream.cpp
│ │ ├── InputCharStringDecodeStream.h
│ │ ├── InputDCTDecodeStream.cpp
│ │ ├── InputDCTDecodeStream.h
│ │ ├── InputFile.cpp
│ │ ├── InputFile.h
│ │ ├── InputFileStream.cpp
│ │ ├── InputFileStream.h
│ │ ├── InputFlateDecodeStream.cpp
│ │ ├── InputFlateDecodeStream.h
│ │ ├── InputLimitedStream.cpp
│ │ ├── InputLimitedStream.h
│ │ ├── InputPFBDecodeStream.cpp
│ │ ├── InputPFBDecodeStream.h
│ │ ├── InputPredictorPNGOptimumStream.cpp
│ │ ├── InputPredictorPNGOptimumStream.h
│ │ ├── InputPredictorTIFFSubStream.cpp
│ │ ├── InputPredictorTIFFSubStream.h
│ │ ├── InputRC4XcodeStream.cpp
│ │ ├── InputRC4XcodeStream.h
│ │ ├── InputStreamSkipperStream.cpp
│ │ ├── InputStreamSkipperStream.h
│ │ ├── InputStringBufferStream.cpp
│ │ ├── InputStringBufferStream.h
│ │ ├── InputStringStream.cpp
│ │ ├── InputStringStream.h
│ │ ├── JPEGImageHandler.cpp
│ │ ├── JPEGImageHandler.h
│ │ ├── JPEGImageInformation.cpp
│ │ ├── JPEGImageInformation.h
│ │ ├── JPEGImageParser.cpp
│ │ ├── JPEGImageParser.h
│ │ ├── Log.cpp
│ │ ├── Log.h
│ │ ├── MD5Generator.cpp
│ │ ├── MD5Generator.h
│ │ ├── MapIterator.h
│ │ ├── MyStringBuf.h
│ │ ├── ObjectsBasicTypes.h
│ │ ├── ObjectsContext.cpp
│ │ ├── ObjectsContext.h
│ │ ├── ObjectsContextExtenderAdapter.h
│ │ ├── OpenTypeFileInput.cpp
│ │ ├── OpenTypeFileInput.h
│ │ ├── OpenTypePrimitiveReader.cpp
│ │ ├── OpenTypePrimitiveReader.h
│ │ ├── OutputAESEncodeStream.cpp
│ │ ├── OutputAESEncodeStream.h
│ │ ├── OutputBufferedStream.cpp
│ │ ├── OutputBufferedStream.h
│ │ ├── OutputFile.cpp
│ │ ├── OutputFile.h
│ │ ├── OutputFileStream.cpp
│ │ ├── OutputFileStream.h
│ │ ├── OutputFlateDecodeStream.cpp
│ │ ├── OutputFlateDecodeStream.h
│ │ ├── OutputFlateEncodeStream.cpp
│ │ ├── OutputFlateEncodeStream.h
│ │ ├── OutputRC4XcodeStream.cpp
│ │ ├── OutputRC4XcodeStream.h
│ │ ├── OutputStreamTraits.cpp
│ │ ├── OutputStreamTraits.h
│ │ ├── OutputStringBufferStream.cpp
│ │ ├── OutputStringBufferStream.h
│ │ ├── PDFArray.cpp
│ │ ├── PDFArray.h
│ │ ├── PDFArrayIterator.cpp
│ │ ├── PDFArrayIterator.h
│ │ ├── PDFBoolean.cpp
│ │ ├── PDFBoolean.h
│ │ ├── PDFCosArray.cpp
│ │ ├── PDFCosArray.h
│ │ ├── PDFCosDict.cpp
│ │ ├── PDFCosDict.h
│ │ ├── PDFDate.cpp
│ │ ├── PDFDate.h
│ │ ├── PDFDictionary.cpp
│ │ ├── PDFDictionary.h
│ │ ├── PDFDictionaryIterator.cpp
│ │ ├── PDFDictionaryIterator.h
│ │ ├── PDFDocEncoding.cpp
│ │ ├── PDFDocEncoding.h
│ │ ├── PDFDocumentCopyingContext.cpp
│ │ ├── PDFDocumentCopyingContext.h
│ │ ├── PDFDocumentHandler.cpp
│ │ ├── PDFDocumentHandler.h
│ │ ├── PDFEmbedParameterTypes.h
│ │ ├── PDFFormXObject.cpp
│ │ ├── PDFFormXObject.h
│ │ ├── PDFHexString.cpp
│ │ ├── PDFHexString.h
│ │ ├── PDFImageXObject.cpp
│ │ ├── PDFImageXObject.h
│ │ ├── PDFIndirectObjectReference.cpp
│ │ ├── PDFIndirectObjectReference.h
│ │ ├── PDFInteger.cpp
│ │ ├── PDFInteger.h
│ │ ├── PDFLiteralString.cpp
│ │ ├── PDFLiteralString.h
│ │ ├── PDFModifiedPage.cpp
│ │ ├── PDFModifiedPage.h
│ │ ├── PDFName.cpp
│ │ ├── PDFName.h
│ │ ├── PDFNull.cpp
│ │ ├── PDFNull.h
│ │ ├── PDFObject.cpp
│ │ ├── PDFObject.h
│ │ ├── PDFObjectCast.h
│ │ ├── PDFObjectParser.cpp
│ │ ├── PDFObjectParser.h
│ │ ├── PDFPage.cpp
│ │ ├── PDFPage.h
│ │ ├── PDFPageInput.cpp
│ │ ├── PDFPageInput.h
│ │ ├── PDFPageMergingHelper.cpp
│ │ ├── PDFPageMergingHelper.h
│ │ ├── PDFParser.cpp
│ │ ├── PDFParser.h
│ │ ├── PDFParserTokenizer.cpp
│ │ ├── PDFParserTokenizer.h
│ │ ├── PDFParsingOptions.cpp
│ │ ├── PDFParsingOptions.h
│ │ ├── PDFReal.cpp
│ │ ├── PDFReal.h
│ │ ├── PDFRectangle.cpp
│ │ ├── PDFRectangle.h
│ │ ├── PDFStream.cpp
│ │ ├── PDFStream.h
│ │ ├── PDFStreamInput.cpp
│ │ ├── PDFStreamInput.h
│ │ ├── PDFSymbol.cpp
│ │ ├── PDFSymbol.h
│ │ ├── PDFTextString.cpp
│ │ ├── PDFTextString.h
│ │ ├── PDFTiledPattern.cpp
│ │ ├── PDFTiledPattern.h
│ │ ├── PDFUsedFont.cpp
│ │ ├── PDFUsedFont.h
│ │ ├── PDFWriter.cpp
│ │ ├── PDFWriter.h
│ │ ├── PFMFileReader.cpp
│ │ ├── PFMFileReader.h
│ │ ├── PNGImageHandler.cpp
│ │ ├── PNGImageHandler.h
│ │ ├── PSBool.cpp
│ │ ├── PSBool.h
│ │ ├── PageContentContext.cpp
│ │ ├── PageContentContext.h
│ │ ├── PageTree.cpp
│ │ ├── PageTree.h
│ │ ├── ParsedPrimitiveHelper.cpp
│ │ ├── ParsedPrimitiveHelper.h
│ │ ├── PrimitiveObjectsWriter.cpp
│ │ ├── PrimitiveObjectsWriter.h
│ │ ├── ProcsetResourcesConstants.h
│ │ ├── RC4.cpp
│ │ ├── RC4.h
│ │ ├── RefCountObject.cpp
│ │ ├── RefCountObject.h
│ │ ├── RefCountPtr.h
│ │ ├── ResourcesDictionary.cpp
│ │ ├── ResourcesDictionary.h
│ │ ├── SafeBufferMacrosDefs.h
│ │ ├── SimpleStringTokenizer.cpp
│ │ ├── SimpleStringTokenizer.h
│ │ ├── SingleValueContainerIterator.h
│ │ ├── Singleton.h
│ │ ├── StandardEncoding.cpp
│ │ ├── StandardEncoding.h
│ │ ├── StateReader.cpp
│ │ ├── StateReader.h
│ │ ├── StateWriter.cpp
│ │ ├── StateWriter.h
│ │ ├── TIFFImageHandler.cpp
│ │ ├── TIFFImageHandler.h
│ │ ├── TiffUsageParameters.cpp
│ │ ├── TiffUsageParameters.h
│ │ ├── TiledPatternContentContext.cpp
│ │ ├── TiledPatternContentContext.h
│ │ ├── Timer.cpp
│ │ ├── Timer.h
│ │ ├── TimersRegistry.cpp
│ │ ├── TimersRegistry.h
│ │ ├── Trace.cpp
│ │ ├── Trace.h
│ │ ├── TrailerInformation.cpp
│ │ ├── TrailerInformation.h
│ │ ├── TrueTypeANSIFontWriter.cpp
│ │ ├── TrueTypeANSIFontWriter.h
│ │ ├── TrueTypeDescendentFontWriter.cpp
│ │ ├── TrueTypeDescendentFontWriter.h
│ │ ├── TrueTypeEmbeddedFontWriter.cpp
│ │ ├── TrueTypeEmbeddedFontWriter.h
│ │ ├── TrueTypePrimitiveWriter.cpp
│ │ ├── TrueTypePrimitiveWriter.h
│ │ ├── Type1Input.cpp
│ │ ├── Type1Input.h
│ │ ├── Type1ToCFFEmbeddedFontWriter.cpp
│ │ ├── Type1ToCFFEmbeddedFontWriter.h
│ │ ├── Type1ToType2Converter.cpp
│ │ ├── Type1ToType2Converter.h
│ │ ├── Type2CharStringWriter.cpp
│ │ ├── Type2CharStringWriter.h
│ │ ├── UnicodeString.cpp
│ │ ├── UnicodeString.h
│ │ ├── UppercaseSequance.cpp
│ │ ├── UppercaseSequance.h
│ │ ├── UsedFontsRepository.cpp
│ │ ├── UsedFontsRepository.h
│ │ ├── WinAnsiEncoding.cpp
│ │ ├── WinAnsiEncoding.h
│ │ ├── WrittenFontCFF.cpp
│ │ ├── WrittenFontCFF.h
│ │ ├── WrittenFontRepresentation.h
│ │ ├── WrittenFontTrueType.cpp
│ │ ├── WrittenFontTrueType.h
│ │ ├── XCryptionCommon.cpp
│ │ ├── XCryptionCommon.h
│ │ ├── XObjectContentContext.cpp
│ │ ├── XObjectContentContext.h
│ │ └── binding.gyp
│ ├── PDFWriterTestPlayground/
│ │ ├── .gitignore
│ │ ├── AppendPagesTest.cpp
│ │ ├── AppendPagesTest.h
│ │ ├── AppendSpecialPagesTest.cpp
│ │ ├── AppendSpecialPagesTest.h
│ │ ├── AppendingAndReading.cpp
│ │ ├── AppendingAndReading.h
│ │ ├── BasicModification.cpp
│ │ ├── BasicModification.h
│ │ ├── BoxingBaseTest.cpp
│ │ ├── BoxingBaseTest.h
│ │ ├── BufferedOutputStreamTest.cpp
│ │ ├── BufferedOutputStreamTest.h
│ │ ├── CMakeLists.txt
│ │ ├── CopyingAndMergingEmptyPages.cpp
│ │ ├── CopyingAndMergingEmptyPages.h
│ │ ├── CustomLogTest.cpp
│ │ ├── CustomLogTest.h
│ │ ├── DCTDecodeFilterTest.cpp
│ │ ├── DCTDecodeFilterTest.h
│ │ ├── DFontTest.cpp
│ │ ├── DFontTest.h
│ │ ├── EmptyFileTest.cpp
│ │ ├── EmptyFileTest.h
│ │ ├── EmptyPagesPDF.cpp
│ │ ├── EmptyPagesPDF.h
│ │ ├── EncryptedPDF.cpp
│ │ ├── EncryptedPDF.h
│ │ ├── FileURL.cpp
│ │ ├── FileURL.h
│ │ ├── FlateEncryptionTest.cpp
│ │ ├── FlateEncryptionTest.h
│ │ ├── FlateObjectDecodeTest.cpp
│ │ ├── FlateObjectDecodeTest.h
│ │ ├── FormXObjectTest.cpp
│ │ ├── FormXObjectTest.h
│ │ ├── FreeTypeInitializationTest.cpp
│ │ ├── FreeTypeInitializationTest.h
│ │ ├── HighLevelContentContext.cpp
│ │ ├── HighLevelContentContext.h
│ │ ├── HighLevelImages.cpp
│ │ ├── HighLevelImages.h
│ │ ├── ITestUnit.h
│ │ ├── ImagesAndFormsForwardReferenceTest.cpp
│ │ ├── ImagesAndFormsForwardReferenceTest.h
│ │ ├── ImportantReadme.txt
│ │ ├── InputFlateDecodeTester.cpp
│ │ ├── InputFlateDecodeTester.h
│ │ ├── InputImagesAsStreamsTest.cpp
│ │ ├── InputImagesAsStreamsTest.h
│ │ ├── JPGImageTest.cpp
│ │ ├── JPGImageTest.h
│ │ ├── JpegLibTest.cpp
│ │ ├── JpegLibTest.h
│ │ ├── LinksTest.cpp
│ │ ├── LinksTest.h
│ │ ├── LogTest.cpp
│ │ ├── LogTest.h
│ │ ├── MergePDFPages.cpp
│ │ ├── MergePDFPages.h
│ │ ├── MergeToPDFForm.cpp
│ │ ├── MergeToPDFForm.h
│ │ ├── ModifyingEncryptedFile.cpp
│ │ ├── ModifyingEncryptedFile.h
│ │ ├── ModifyingExistingFileContent.cpp
│ │ ├── ModifyingExistingFileContent.h
│ │ ├── OpenTypeTest.cpp
│ │ ├── OpenTypeTest.h
│ │ ├── OutputFileStreamTest.cpp
│ │ ├── OutputFileStreamTest.h
│ │ ├── PDFComment.cpp
│ │ ├── PDFComment.h
│ │ ├── PDFCommentWriter.cpp
│ │ ├── PDFCommentWriter.h
│ │ ├── PDFCopyingContextTest.cpp
│ │ ├── PDFCopyingContextTest.h
│ │ ├── PDFDateTest.cpp
│ │ ├── PDFDateTest.h
│ │ ├── PDFEmbedTest.cpp
│ │ ├── PDFEmbedTest.h
│ │ ├── PDFObjectCastTest.cpp
│ │ ├── PDFObjectCastTest.h
│ │ ├── PDFObjectParserTest.cpp
│ │ ├── PDFObjectParserTest.h
│ │ ├── PDFParserTest.cpp
│ │ ├── PDFParserTest.h
│ │ ├── PDFTextStringTest.cpp
│ │ ├── PDFTextStringTest.h
│ │ ├── PDFWithPassword.cpp
│ │ ├── PDFWithPassword.h
│ │ ├── PDFWriterTestPlayground.cpp
│ │ ├── PFBStreamTest.cpp
│ │ ├── PFBStreamTest.h
│ │ ├── PNGImageTest.cpp
│ │ ├── PNGImageTest.h
│ │ ├── PageModifierTest.cpp
│ │ ├── PageModifierTest.h
│ │ ├── PageOrderModification.cpp
│ │ ├── PageOrderModification.h
│ │ ├── ParsingBadXref.cpp
│ │ ├── ParsingBadXref.h
│ │ ├── ParsingFaulty.cpp
│ │ ├── ParsingFaulty.h
│ │ ├── PosixPath.cpp
│ │ ├── PosixPath.h
│ │ ├── RecryptPDF.cpp
│ │ ├── RecryptPDF.h
│ │ ├── RefCountTest.cpp
│ │ ├── RefCountTest.h
│ │ ├── RotatedPagesPDF.cpp
│ │ ├── RotatedPagesPDF.h
│ │ ├── ShutDownRestartTest.cpp
│ │ ├── ShutDownRestartTest.h
│ │ ├── SimpleContentPageTest.cpp
│ │ ├── SimpleContentPageTest.h
│ │ ├── SimpleTextUsage.cpp
│ │ ├── SimpleTextUsage.h
│ │ ├── TIFFImageTest.cpp
│ │ ├── TIFFImageTest.h
│ │ ├── TTCTest.cpp
│ │ ├── TTCTest.h
│ │ ├── TestMeasurementsTest.cpp
│ │ ├── TestMeasurementsTest.h
│ │ ├── TestsRunner.cpp
│ │ ├── TestsRunner.h
│ │ ├── TextUsageBugs.cpp
│ │ ├── TextUsageBugs.h
│ │ ├── TiffSpecialsTest.cpp
│ │ ├── TiffSpecialsTest.h
│ │ ├── TimerTest.cpp
│ │ ├── TimerTest.h
│ │ ├── TrueTypeTest.cpp
│ │ ├── TrueTypeTest.h
│ │ ├── Type1Test.cpp
│ │ ├── Type1Test.h
│ │ ├── UnicodeTextUsage.cpp
│ │ ├── UnicodeTextUsage.h
│ │ ├── UppercaseSequanceTest.cpp
│ │ ├── UppercaseSequanceTest.h
│ │ ├── WindowsPath.cpp
│ │ └── WindowsPath.h
│ ├── ZLib/
│ │ ├── CMakeLists.txt
│ │ ├── adler32.c
│ │ ├── binding.gyp
│ │ ├── compress.c
│ │ ├── crc32.c
│ │ ├── crc32.h
│ │ ├── deflate.c
│ │ ├── deflate.h
│ │ ├── gzclose.c
│ │ ├── gzguts.h
│ │ ├── gzlib.c
│ │ ├── gzread.c
│ │ ├── gzwrite.c
│ │ ├── infback.c
│ │ ├── inffast.c
│ │ ├── inffast.h
│ │ ├── inffixed.h
│ │ ├── inflate.c
│ │ ├── inflate.h
│ │ ├── inftrees.c
│ │ ├── inftrees.h
│ │ ├── trees.c
│ │ ├── trees.h
│ │ ├── uncompr.c
│ │ ├── zconf.h
│ │ ├── zlib.h
│ │ ├── zutil.c
│ │ └── zutil.h
│ ├── git
│ └── readme.md
├── PNGWriter/
│ ├── CMakeLists.txt
│ ├── pngwriter.cc
│ └── pngwriter.h
├── ZipLib/
│ ├── CMakeLists.txt
│ ├── ZipArchive.cpp
│ ├── ZipArchive.h
│ ├── ZipArchiveEntry.cpp
│ ├── ZipArchiveEntry.h
│ ├── ZipFile.cpp
│ ├── ZipFile.h
│ ├── compression/
│ │ ├── bzip2/
│ │ │ ├── bzip2_decoder.h
│ │ │ ├── bzip2_decoder_properties.h
│ │ │ ├── bzip2_encoder.h
│ │ │ └── bzip2_encoder_properties.h
│ │ ├── compression_interface.h
│ │ ├── deflate/
│ │ │ ├── deflate_decoder.h
│ │ │ ├── deflate_decoder_properties.h
│ │ │ ├── deflate_encoder.h
│ │ │ └── deflate_encoder_properties.h
│ │ ├── lzma/
│ │ │ ├── detail/
│ │ │ │ ├── lzma_alloc.h
│ │ │ │ ├── lzma_handle.h
│ │ │ │ ├── lzma_header.h
│ │ │ │ ├── lzma_in_stream.h
│ │ │ │ └── lzma_out_stream.h
│ │ │ ├── lzma_decoder.h
│ │ │ ├── lzma_decoder_properties.h
│ │ │ ├── lzma_encoder.h
│ │ │ └── lzma_encoder_properties.h
│ │ └── store/
│ │ ├── store_decoder.h
│ │ ├── store_decoder_properties.h
│ │ ├── store_encoder.h
│ │ └── store_encoder_properties.h
│ ├── detail/
│ │ ├── EndOfCentralDirectoryBlock.cpp
│ │ ├── EndOfCentralDirectoryBlock.h
│ │ ├── ZipCentralDirectoryFileHeader.cpp
│ │ ├── ZipCentralDirectoryFileHeader.h
│ │ ├── ZipGenericExtraField.cpp
│ │ ├── ZipGenericExtraField.h
│ │ ├── ZipLocalFileHeader.cpp
│ │ └── ZipLocalFileHeader.h
│ ├── extlibs/
│ │ ├── bzip2/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── blocksort.c
│ │ │ ├── bzerror.c
│ │ │ ├── bzlib.c
│ │ │ ├── bzlib.h
│ │ │ ├── bzlib_private.h
│ │ │ ├── compress.c
│ │ │ ├── crctable.c
│ │ │ ├── decompress.c
│ │ │ ├── huffman.c
│ │ │ └── randtable.c
│ │ ├── lzma/
│ │ │ ├── 7z.h
│ │ │ ├── 7zAlloc.c
│ │ │ ├── 7zAlloc.h
│ │ │ ├── 7zBuf.c
│ │ │ ├── 7zBuf.h
│ │ │ ├── 7zBuf2.c
│ │ │ ├── 7zCrc.c
│ │ │ ├── 7zCrc.h
│ │ │ ├── 7zCrcOpt.c
│ │ │ ├── 7zDec.c
│ │ │ ├── 7zFile.c
│ │ │ ├── 7zFile.h
│ │ │ ├── 7zIn.c
│ │ │ ├── 7zStream.c
│ │ │ ├── 7zVersion.h
│ │ │ ├── Alloc.c
│ │ │ ├── Alloc.h
│ │ │ ├── Bcj2.c
│ │ │ ├── Bcj2.h
│ │ │ ├── Bra.c
│ │ │ ├── Bra.h
│ │ │ ├── Bra86.c
│ │ │ ├── BraIA64.c
│ │ │ ├── CMakeLists.txt
│ │ │ ├── CpuArch.c
│ │ │ ├── CpuArch.h
│ │ │ ├── Delta.c
│ │ │ ├── Delta.h
│ │ │ ├── LzFind.c
│ │ │ ├── LzFind.h
│ │ │ ├── LzFindMt.c
│ │ │ ├── LzFindMt.h
│ │ │ ├── LzHash.h
│ │ │ ├── Lzma2Dec.c
│ │ │ ├── Lzma2Dec.h
│ │ │ ├── Lzma2Enc.c
│ │ │ ├── Lzma2Enc.h
│ │ │ ├── Lzma86.h
│ │ │ ├── Lzma86Dec.c
│ │ │ ├── Lzma86Enc.c
│ │ │ ├── LzmaDec.c
│ │ │ ├── LzmaDec.h
│ │ │ ├── LzmaEnc.c
│ │ │ ├── LzmaEnc.h
│ │ │ ├── LzmaLib.c
│ │ │ ├── LzmaLib.h
│ │ │ ├── MtCoder.c
│ │ │ ├── MtCoder.h
│ │ │ ├── Ppmd.h
│ │ │ ├── Ppmd7.c
│ │ │ ├── Ppmd7.h
│ │ │ ├── Ppmd7Dec.c
│ │ │ ├── Ppmd7Enc.c
│ │ │ ├── RotateDefs.h
│ │ │ ├── Sha256.c
│ │ │ ├── Sha256.h
│ │ │ ├── Threads.c
│ │ │ ├── Threads.h
│ │ │ ├── Types.h
│ │ │ ├── Xz.c
│ │ │ ├── Xz.h
│ │ │ ├── XzCrc64.c
│ │ │ ├── XzCrc64.h
│ │ │ ├── XzDec.c
│ │ │ ├── XzEnc.c
│ │ │ ├── XzEnc.h
│ │ │ ├── XzIn.c
│ │ │ └── unix/
│ │ │ ├── 7zBuf.h
│ │ │ ├── 7zBuf2.c
│ │ │ ├── 7zCrc.c
│ │ │ ├── 7zCrc.h
│ │ │ ├── 7zCrcOpt.c
│ │ │ ├── 7zStream.c
│ │ │ ├── 7zVersion.h
│ │ │ ├── Aes.c
│ │ │ ├── Aes.h
│ │ │ ├── Alloc.back3
│ │ │ ├── Alloc.c
│ │ │ ├── Alloc.c.back
│ │ │ ├── Alloc.c.back2
│ │ │ ├── Alloc.h
│ │ │ ├── Bra.c
│ │ │ ├── Bra.h
│ │ │ ├── Bra86.c
│ │ │ ├── BraIA64.c
│ │ │ ├── BwtSort.c
│ │ │ ├── BwtSort.h
│ │ │ ├── CpuArch.c
│ │ │ ├── CpuArch.h
│ │ │ ├── Delta.c
│ │ │ ├── Delta.h
│ │ │ ├── HuffEnc.c
│ │ │ ├── HuffEnc.h
│ │ │ ├── LzFind.c
│ │ │ ├── LzFind.h
│ │ │ ├── LzFindMt.c
│ │ │ ├── LzFindMt.h
│ │ │ ├── LzHash.h
│ │ │ ├── Lzma2Dec.c
│ │ │ ├── Lzma2Dec.h
│ │ │ ├── Lzma2Enc.c
│ │ │ ├── Lzma2Enc.h
│ │ │ ├── LzmaDec.c
│ │ │ ├── LzmaDec.h
│ │ │ ├── LzmaEnc.c
│ │ │ ├── LzmaEnc.h
│ │ │ ├── LzmaUtil/
│ │ │ │ ├── Lzma86Dec.c
│ │ │ │ ├── Lzma86Dec.h
│ │ │ │ ├── Lzma86Enc.c
│ │ │ │ └── Lzma86Enc.h
│ │ │ ├── MtCoder.c
│ │ │ ├── MtCoder.h
│ │ │ ├── Ppmd.h
│ │ │ ├── Ppmd7.c
│ │ │ ├── Ppmd7.h
│ │ │ ├── Ppmd7Dec.c
│ │ │ ├── Ppmd7Enc.c
│ │ │ ├── Ppmd8.c
│ │ │ ├── Ppmd8.h
│ │ │ ├── Ppmd8Dec.c
│ │ │ ├── Ppmd8Enc.c
│ │ │ ├── RotateDefs.h
│ │ │ ├── Sha256.c
│ │ │ ├── Sha256.h
│ │ │ ├── Sort.c
│ │ │ ├── Sort.h
│ │ │ ├── Threads.c
│ │ │ ├── Threads.h
│ │ │ ├── Types.h
│ │ │ ├── Xz.c
│ │ │ ├── Xz.h
│ │ │ ├── XzCrc64.c
│ │ │ ├── XzCrc64.h
│ │ │ ├── XzDec.c
│ │ │ ├── XzEnc.c
│ │ │ ├── XzEnc.h
│ │ │ └── XzIn.c
│ │ └── zlib/
│ │ ├── CMakeLists.txt
│ │ ├── adler32.c
│ │ ├── compress.c
│ │ ├── crc32.c
│ │ ├── crc32.h
│ │ ├── deflate.c
│ │ ├── deflate.h
│ │ ├── gzguts.h
│ │ ├── infback.c
│ │ ├── inffast.c
│ │ ├── inffast.h
│ │ ├── inffixed.h
│ │ ├── inflate.c
│ │ ├── inflate.h
│ │ ├── inftrees.c
│ │ ├── inftrees.h
│ │ ├── trees.c
│ │ ├── trees.h
│ │ ├── uncompr.c
│ │ ├── zconf.h
│ │ ├── zlib.h
│ │ ├── zutil.c
│ │ └── zutil.h
│ ├── methods/
│ │ ├── Bzip2Method.h
│ │ ├── DeflateMethod.h
│ │ ├── ICompressionMethod.h
│ │ ├── LzmaMethod.h
│ │ ├── StoreMethod.h
│ │ └── ZipMethodResolver.h
│ ├── streams/
│ │ ├── compression_decoder_stream.h
│ │ ├── compression_encoder_stream.h
│ │ ├── crc32stream.h
│ │ ├── memstream.h
│ │ ├── nullstream.h
│ │ ├── serialization.h
│ │ ├── streambuffs/
│ │ │ ├── compression_decoder_streambuf.h
│ │ │ ├── compression_encoder_streambuf.h
│ │ │ ├── crc32_streambuf.h
│ │ │ ├── mem_streambuf.h
│ │ │ ├── null_streambuf.h
│ │ │ ├── sub_streambuf.h
│ │ │ ├── tee_streambuff.h
│ │ │ └── zip_crypto_streambuf.h
│ │ ├── substream.h
│ │ ├── teestream.h
│ │ └── zip_cryptostream.h
│ └── utils/
│ ├── enum_utils.h
│ ├── stream_utils.h
│ └── time_utils.h
├── asio/
│ └── include/
│ ├── asio/
│ │ ├── associated_allocator.hpp
│ │ ├── associated_executor.hpp
│ │ ├── async_result.hpp
│ │ ├── basic_datagram_socket.hpp
│ │ ├── basic_deadline_timer.hpp
│ │ ├── basic_io_object.hpp
│ │ ├── basic_raw_socket.hpp
│ │ ├── basic_seq_packet_socket.hpp
│ │ ├── basic_serial_port.hpp
│ │ ├── basic_signal_set.hpp
│ │ ├── basic_socket.hpp
│ │ ├── basic_socket_acceptor.hpp
│ │ ├── basic_socket_iostream.hpp
│ │ ├── basic_socket_streambuf.hpp
│ │ ├── basic_stream_socket.hpp
│ │ ├── basic_streambuf.hpp
│ │ ├── basic_streambuf_fwd.hpp
│ │ ├── basic_waitable_timer.hpp
│ │ ├── bind_executor.hpp
│ │ ├── buffer.hpp
│ │ ├── buffered_read_stream.hpp
│ │ ├── buffered_read_stream_fwd.hpp
│ │ ├── buffered_stream.hpp
│ │ ├── buffered_stream_fwd.hpp
│ │ ├── buffered_write_stream.hpp
│ │ ├── buffered_write_stream_fwd.hpp
│ │ ├── buffers_iterator.hpp
│ │ ├── completion_condition.hpp
│ │ ├── connect.hpp
│ │ ├── coroutine.hpp
│ │ ├── datagram_socket_service.hpp
│ │ ├── deadline_timer.hpp
│ │ ├── deadline_timer_service.hpp
│ │ ├── defer.hpp
│ │ ├── detail/
│ │ │ ├── array.hpp
│ │ │ ├── array_fwd.hpp
│ │ │ ├── assert.hpp
│ │ │ ├── atomic_count.hpp
│ │ │ ├── base_from_completion_cond.hpp
│ │ │ ├── bind_handler.hpp
│ │ │ ├── buffer_resize_guard.hpp
│ │ │ ├── buffer_sequence_adapter.hpp
│ │ │ ├── buffered_stream_storage.hpp
│ │ │ ├── call_stack.hpp
│ │ │ ├── chrono.hpp
│ │ │ ├── chrono_time_traits.hpp
│ │ │ ├── completion_handler.hpp
│ │ │ ├── concurrency_hint.hpp
│ │ │ ├── conditionally_enabled_event.hpp
│ │ │ ├── conditionally_enabled_mutex.hpp
│ │ │ ├── config.hpp
│ │ │ ├── consuming_buffers.hpp
│ │ │ ├── cstddef.hpp
│ │ │ ├── cstdint.hpp
│ │ │ ├── date_time_fwd.hpp
│ │ │ ├── deadline_timer_service.hpp
│ │ │ ├── dependent_type.hpp
│ │ │ ├── descriptor_ops.hpp
│ │ │ ├── descriptor_read_op.hpp
│ │ │ ├── descriptor_write_op.hpp
│ │ │ ├── dev_poll_reactor.hpp
│ │ │ ├── epoll_reactor.hpp
│ │ │ ├── event.hpp
│ │ │ ├── eventfd_select_interrupter.hpp
│ │ │ ├── executor_op.hpp
│ │ │ ├── fd_set_adapter.hpp
│ │ │ ├── fenced_block.hpp
│ │ │ ├── functional.hpp
│ │ │ ├── gcc_arm_fenced_block.hpp
│ │ │ ├── gcc_hppa_fenced_block.hpp
│ │ │ ├── gcc_sync_fenced_block.hpp
│ │ │ ├── gcc_x86_fenced_block.hpp
│ │ │ ├── global.hpp
│ │ │ ├── handler_alloc_helpers.hpp
│ │ │ ├── handler_cont_helpers.hpp
│ │ │ ├── handler_invoke_helpers.hpp
│ │ │ ├── handler_tracking.hpp
│ │ │ ├── handler_type_requirements.hpp
│ │ │ ├── handler_work.hpp
│ │ │ ├── hash_map.hpp
│ │ │ ├── impl/
│ │ │ │ ├── buffer_sequence_adapter.ipp
│ │ │ │ ├── descriptor_ops.ipp
│ │ │ │ ├── dev_poll_reactor.hpp
│ │ │ │ ├── dev_poll_reactor.ipp
│ │ │ │ ├── epoll_reactor.hpp
│ │ │ │ ├── epoll_reactor.ipp
│ │ │ │ ├── eventfd_select_interrupter.ipp
│ │ │ │ ├── handler_tracking.ipp
│ │ │ │ ├── kqueue_reactor.hpp
│ │ │ │ ├── kqueue_reactor.ipp
│ │ │ │ ├── null_event.ipp
│ │ │ │ ├── pipe_select_interrupter.ipp
│ │ │ │ ├── posix_event.ipp
│ │ │ │ ├── posix_mutex.ipp
│ │ │ │ ├── posix_thread.ipp
│ │ │ │ ├── posix_tss_ptr.ipp
│ │ │ │ ├── reactive_descriptor_service.ipp
│ │ │ │ ├── reactive_serial_port_service.ipp
│ │ │ │ ├── reactive_socket_service_base.ipp
│ │ │ │ ├── resolver_service_base.ipp
│ │ │ │ ├── scheduler.ipp
│ │ │ │ ├── select_reactor.hpp
│ │ │ │ ├── select_reactor.ipp
│ │ │ │ ├── service_registry.hpp
│ │ │ │ ├── service_registry.ipp
│ │ │ │ ├── signal_set_service.ipp
│ │ │ │ ├── socket_ops.ipp
│ │ │ │ ├── socket_select_interrupter.ipp
│ │ │ │ ├── strand_executor_service.hpp
│ │ │ │ ├── strand_executor_service.ipp
│ │ │ │ ├── strand_service.hpp
│ │ │ │ ├── strand_service.ipp
│ │ │ │ ├── throw_error.ipp
│ │ │ │ ├── timer_queue_ptime.ipp
│ │ │ │ ├── timer_queue_set.ipp
│ │ │ │ ├── win_event.ipp
│ │ │ │ ├── win_iocp_handle_service.ipp
│ │ │ │ ├── win_iocp_io_context.hpp
│ │ │ │ ├── win_iocp_io_context.ipp
│ │ │ │ ├── win_iocp_serial_port_service.ipp
│ │ │ │ ├── win_iocp_socket_service_base.ipp
│ │ │ │ ├── win_mutex.ipp
│ │ │ │ ├── win_object_handle_service.ipp
│ │ │ │ ├── win_static_mutex.ipp
│ │ │ │ ├── win_thread.ipp
│ │ │ │ ├── win_tss_ptr.ipp
│ │ │ │ ├── winrt_ssocket_service_base.ipp
│ │ │ │ ├── winrt_timer_scheduler.hpp
│ │ │ │ ├── winrt_timer_scheduler.ipp
│ │ │ │ └── winsock_init.ipp
│ │ │ ├── io_control.hpp
│ │ │ ├── is_buffer_sequence.hpp
│ │ │ ├── is_executor.hpp
│ │ │ ├── keyword_tss_ptr.hpp
│ │ │ ├── kqueue_reactor.hpp
│ │ │ ├── limits.hpp
│ │ │ ├── local_free_on_block_exit.hpp
│ │ │ ├── macos_fenced_block.hpp
│ │ │ ├── memory.hpp
│ │ │ ├── mutex.hpp
│ │ │ ├── noncopyable.hpp
│ │ │ ├── null_event.hpp
│ │ │ ├── null_fenced_block.hpp
│ │ │ ├── null_global.hpp
│ │ │ ├── null_mutex.hpp
│ │ │ ├── null_reactor.hpp
│ │ │ ├── null_signal_blocker.hpp
│ │ │ ├── null_socket_service.hpp
│ │ │ ├── null_static_mutex.hpp
│ │ │ ├── null_thread.hpp
│ │ │ ├── null_tss_ptr.hpp
│ │ │ ├── object_pool.hpp
│ │ │ ├── old_win_sdk_compat.hpp
│ │ │ ├── op_queue.hpp
│ │ │ ├── operation.hpp
│ │ │ ├── pipe_select_interrupter.hpp
│ │ │ ├── pop_options.hpp
│ │ │ ├── posix_event.hpp
│ │ │ ├── posix_fd_set_adapter.hpp
│ │ │ ├── posix_global.hpp
│ │ │ ├── posix_mutex.hpp
│ │ │ ├── posix_signal_blocker.hpp
│ │ │ ├── posix_static_mutex.hpp
│ │ │ ├── posix_thread.hpp
│ │ │ ├── posix_tss_ptr.hpp
│ │ │ ├── push_options.hpp
│ │ │ ├── reactive_descriptor_service.hpp
│ │ │ ├── reactive_null_buffers_op.hpp
│ │ │ ├── reactive_serial_port_service.hpp
│ │ │ ├── reactive_socket_accept_op.hpp
│ │ │ ├── reactive_socket_connect_op.hpp
│ │ │ ├── reactive_socket_recv_op.hpp
│ │ │ ├── reactive_socket_recvfrom_op.hpp
│ │ │ ├── reactive_socket_recvmsg_op.hpp
│ │ │ ├── reactive_socket_send_op.hpp
│ │ │ ├── reactive_socket_sendto_op.hpp
│ │ │ ├── reactive_socket_service.hpp
│ │ │ ├── reactive_socket_service_base.hpp
│ │ │ ├── reactive_wait_op.hpp
│ │ │ ├── reactor.hpp
│ │ │ ├── reactor_fwd.hpp
│ │ │ ├── reactor_op.hpp
│ │ │ ├── reactor_op_queue.hpp
│ │ │ ├── recycling_allocator.hpp
│ │ │ ├── regex_fwd.hpp
│ │ │ ├── resolve_endpoint_op.hpp
│ │ │ ├── resolve_op.hpp
│ │ │ ├── resolve_query_op.hpp
│ │ │ ├── resolver_service.hpp
│ │ │ ├── resolver_service_base.hpp
│ │ │ ├── scheduler.hpp
│ │ │ ├── scheduler_operation.hpp
│ │ │ ├── scheduler_thread_info.hpp
│ │ │ ├── scoped_lock.hpp
│ │ │ ├── scoped_ptr.hpp
│ │ │ ├── select_interrupter.hpp
│ │ │ ├── select_reactor.hpp
│ │ │ ├── service_registry.hpp
│ │ │ ├── signal_blocker.hpp
│ │ │ ├── signal_handler.hpp
│ │ │ ├── signal_init.hpp
│ │ │ ├── signal_op.hpp
│ │ │ ├── signal_set_service.hpp
│ │ │ ├── socket_holder.hpp
│ │ │ ├── socket_ops.hpp
│ │ │ ├── socket_option.hpp
│ │ │ ├── socket_select_interrupter.hpp
│ │ │ ├── socket_types.hpp
│ │ │ ├── solaris_fenced_block.hpp
│ │ │ ├── static_mutex.hpp
│ │ │ ├── std_event.hpp
│ │ │ ├── std_fenced_block.hpp
│ │ │ ├── std_global.hpp
│ │ │ ├── std_mutex.hpp
│ │ │ ├── std_static_mutex.hpp
│ │ │ ├── std_thread.hpp
│ │ │ ├── strand_executor_service.hpp
│ │ │ ├── strand_service.hpp
│ │ │ ├── string_view.hpp
│ │ │ ├── thread.hpp
│ │ │ ├── thread_context.hpp
│ │ │ ├── thread_group.hpp
│ │ │ ├── thread_info_base.hpp
│ │ │ ├── throw_error.hpp
│ │ │ ├── throw_exception.hpp
│ │ │ ├── timer_queue.hpp
│ │ │ ├── timer_queue_base.hpp
│ │ │ ├── timer_queue_ptime.hpp
│ │ │ ├── timer_queue_set.hpp
│ │ │ ├── timer_scheduler.hpp
│ │ │ ├── timer_scheduler_fwd.hpp
│ │ │ ├── tss_ptr.hpp
│ │ │ ├── type_traits.hpp
│ │ │ ├── variadic_templates.hpp
│ │ │ ├── wait_handler.hpp
│ │ │ ├── wait_op.hpp
│ │ │ ├── win_event.hpp
│ │ │ ├── win_fd_set_adapter.hpp
│ │ │ ├── win_fenced_block.hpp
│ │ │ ├── win_global.hpp
│ │ │ ├── win_iocp_handle_read_op.hpp
│ │ │ ├── win_iocp_handle_service.hpp
│ │ │ ├── win_iocp_handle_write_op.hpp
│ │ │ ├── win_iocp_io_context.hpp
│ │ │ ├── win_iocp_null_buffers_op.hpp
│ │ │ ├── win_iocp_operation.hpp
│ │ │ ├── win_iocp_overlapped_op.hpp
│ │ │ ├── win_iocp_overlapped_ptr.hpp
│ │ │ ├── win_iocp_serial_port_service.hpp
│ │ │ ├── win_iocp_socket_accept_op.hpp
│ │ │ ├── win_iocp_socket_connect_op.hpp
│ │ │ ├── win_iocp_socket_recv_op.hpp
│ │ │ ├── win_iocp_socket_recvfrom_op.hpp
│ │ │ ├── win_iocp_socket_recvmsg_op.hpp
│ │ │ ├── win_iocp_socket_send_op.hpp
│ │ │ ├── win_iocp_socket_service.hpp
│ │ │ ├── win_iocp_socket_service_base.hpp
│ │ │ ├── win_iocp_thread_info.hpp
│ │ │ ├── win_iocp_wait_op.hpp
│ │ │ ├── win_mutex.hpp
│ │ │ ├── win_object_handle_service.hpp
│ │ │ ├── win_static_mutex.hpp
│ │ │ ├── win_thread.hpp
│ │ │ ├── win_tss_ptr.hpp
│ │ │ ├── winapp_thread.hpp
│ │ │ ├── wince_thread.hpp
│ │ │ ├── winrt_async_manager.hpp
│ │ │ ├── winrt_async_op.hpp
│ │ │ ├── winrt_resolve_op.hpp
│ │ │ ├── winrt_resolver_service.hpp
│ │ │ ├── winrt_socket_connect_op.hpp
│ │ │ ├── winrt_socket_recv_op.hpp
│ │ │ ├── winrt_socket_send_op.hpp
│ │ │ ├── winrt_ssocket_service.hpp
│ │ │ ├── winrt_ssocket_service_base.hpp
│ │ │ ├── winrt_timer_scheduler.hpp
│ │ │ ├── winrt_utils.hpp
│ │ │ ├── winsock_init.hpp
│ │ │ ├── work_dispatcher.hpp
│ │ │ └── wrapped_handler.hpp
│ │ ├── dispatch.hpp
│ │ ├── error.hpp
│ │ ├── error_code.hpp
│ │ ├── execution_context.hpp
│ │ ├── executor.hpp
│ │ ├── executor_work_guard.hpp
│ │ ├── experimental/
│ │ │ ├── co_spawn.hpp
│ │ │ ├── detached.hpp
│ │ │ ├── impl/
│ │ │ │ ├── co_spawn.hpp
│ │ │ │ ├── detached.hpp
│ │ │ │ └── redirect_error.hpp
│ │ │ └── redirect_error.hpp
│ │ ├── experimental.hpp
│ │ ├── generic/
│ │ │ ├── basic_endpoint.hpp
│ │ │ ├── datagram_protocol.hpp
│ │ │ ├── detail/
│ │ │ │ ├── endpoint.hpp
│ │ │ │ └── impl/
│ │ │ │ └── endpoint.ipp
│ │ │ ├── raw_protocol.hpp
│ │ │ ├── seq_packet_protocol.hpp
│ │ │ └── stream_protocol.hpp
│ │ ├── handler_alloc_hook.hpp
│ │ ├── handler_continuation_hook.hpp
│ │ ├── handler_invoke_hook.hpp
│ │ ├── handler_type.hpp
│ │ ├── high_resolution_timer.hpp
│ │ ├── impl/
│ │ │ ├── buffered_read_stream.hpp
│ │ │ ├── buffered_write_stream.hpp
│ │ │ ├── connect.hpp
│ │ │ ├── defer.hpp
│ │ │ ├── dispatch.hpp
│ │ │ ├── error.ipp
│ │ │ ├── error_code.ipp
│ │ │ ├── execution_context.hpp
│ │ │ ├── execution_context.ipp
│ │ │ ├── executor.hpp
│ │ │ ├── executor.ipp
│ │ │ ├── handler_alloc_hook.ipp
│ │ │ ├── io_context.hpp
│ │ │ ├── io_context.ipp
│ │ │ ├── post.hpp
│ │ │ ├── read.hpp
│ │ │ ├── read_at.hpp
│ │ │ ├── read_until.hpp
│ │ │ ├── serial_port_base.hpp
│ │ │ ├── serial_port_base.ipp
│ │ │ ├── spawn.hpp
│ │ │ ├── src.cpp
│ │ │ ├── src.hpp
│ │ │ ├── system_context.hpp
│ │ │ ├── system_context.ipp
│ │ │ ├── system_executor.hpp
│ │ │ ├── thread_pool.hpp
│ │ │ ├── thread_pool.ipp
│ │ │ ├── use_future.hpp
│ │ │ ├── write.hpp
│ │ │ └── write_at.hpp
│ │ ├── io_context.hpp
│ │ ├── io_context_strand.hpp
│ │ ├── io_service.hpp
│ │ ├── io_service_strand.hpp
│ │ ├── ip/
│ │ │ ├── address.hpp
│ │ │ ├── address_v4.hpp
│ │ │ ├── address_v4_iterator.hpp
│ │ │ ├── address_v4_range.hpp
│ │ │ ├── address_v6.hpp
│ │ │ ├── address_v6_iterator.hpp
│ │ │ ├── address_v6_range.hpp
│ │ │ ├── bad_address_cast.hpp
│ │ │ ├── basic_endpoint.hpp
│ │ │ ├── basic_resolver.hpp
│ │ │ ├── basic_resolver_entry.hpp
│ │ │ ├── basic_resolver_iterator.hpp
│ │ │ ├── basic_resolver_query.hpp
│ │ │ ├── basic_resolver_results.hpp
│ │ │ ├── detail/
│ │ │ │ ├── endpoint.hpp
│ │ │ │ ├── impl/
│ │ │ │ │ └── endpoint.ipp
│ │ │ │ └── socket_option.hpp
│ │ │ ├── host_name.hpp
│ │ │ ├── icmp.hpp
│ │ │ ├── impl/
│ │ │ │ ├── address.hpp
│ │ │ │ ├── address.ipp
│ │ │ │ ├── address_v4.hpp
│ │ │ │ ├── address_v4.ipp
│ │ │ │ ├── address_v6.hpp
│ │ │ │ ├── address_v6.ipp
│ │ │ │ ├── basic_endpoint.hpp
│ │ │ │ ├── host_name.ipp
│ │ │ │ ├── network_v4.hpp
│ │ │ │ ├── network_v4.ipp
│ │ │ │ ├── network_v6.hpp
│ │ │ │ └── network_v6.ipp
│ │ │ ├── multicast.hpp
│ │ │ ├── network_v4.hpp
│ │ │ ├── network_v6.hpp
│ │ │ ├── resolver_base.hpp
│ │ │ ├── resolver_query_base.hpp
│ │ │ ├── resolver_service.hpp
│ │ │ ├── tcp.hpp
│ │ │ ├── udp.hpp
│ │ │ ├── unicast.hpp
│ │ │ └── v6_only.hpp
│ │ ├── is_executor.hpp
│ │ ├── is_read_buffered.hpp
│ │ ├── is_write_buffered.hpp
│ │ ├── local/
│ │ │ ├── basic_endpoint.hpp
│ │ │ ├── connect_pair.hpp
│ │ │ ├── datagram_protocol.hpp
│ │ │ ├── detail/
│ │ │ │ ├── endpoint.hpp
│ │ │ │ └── impl/
│ │ │ │ └── endpoint.ipp
│ │ │ └── stream_protocol.hpp
│ │ ├── packaged_task.hpp
│ │ ├── placeholders.hpp
│ │ ├── posix/
│ │ │ ├── basic_descriptor.hpp
│ │ │ ├── basic_stream_descriptor.hpp
│ │ │ ├── descriptor.hpp
│ │ │ ├── descriptor_base.hpp
│ │ │ ├── stream_descriptor.hpp
│ │ │ └── stream_descriptor_service.hpp
│ │ ├── post.hpp
│ │ ├── raw_socket_service.hpp
│ │ ├── read.hpp
│ │ ├── read_at.hpp
│ │ ├── read_until.hpp
│ │ ├── seq_packet_socket_service.hpp
│ │ ├── serial_port.hpp
│ │ ├── serial_port_base.hpp
│ │ ├── serial_port_service.hpp
│ │ ├── signal_set.hpp
│ │ ├── signal_set_service.hpp
│ │ ├── socket_acceptor_service.hpp
│ │ ├── socket_base.hpp
│ │ ├── spawn.hpp
│ │ ├── ssl/
│ │ │ ├── context.hpp
│ │ │ ├── context_base.hpp
│ │ │ ├── detail/
│ │ │ │ ├── buffered_handshake_op.hpp
│ │ │ │ ├── engine.hpp
│ │ │ │ ├── handshake_op.hpp
│ │ │ │ ├── impl/
│ │ │ │ │ ├── engine.ipp
│ │ │ │ │ └── openssl_init.ipp
│ │ │ │ ├── io.hpp
│ │ │ │ ├── openssl_init.hpp
│ │ │ │ ├── openssl_types.hpp
│ │ │ │ ├── password_callback.hpp
│ │ │ │ ├── read_op.hpp
│ │ │ │ ├── shutdown_op.hpp
│ │ │ │ ├── stream_core.hpp
│ │ │ │ ├── verify_callback.hpp
│ │ │ │ └── write_op.hpp
│ │ │ ├── error.hpp
│ │ │ ├── impl/
│ │ │ │ ├── context.hpp
│ │ │ │ ├── context.ipp
│ │ │ │ ├── error.ipp
│ │ │ │ ├── rfc2818_verification.ipp
│ │ │ │ └── src.hpp
│ │ │ ├── rfc2818_verification.hpp
│ │ │ ├── stream.hpp
│ │ │ ├── stream_base.hpp
│ │ │ ├── verify_context.hpp
│ │ │ └── verify_mode.hpp
│ │ ├── ssl.hpp
│ │ ├── steady_timer.hpp
│ │ ├── strand.hpp
│ │ ├── stream_socket_service.hpp
│ │ ├── streambuf.hpp
│ │ ├── system_context.hpp
│ │ ├── system_error.hpp
│ │ ├── system_executor.hpp
│ │ ├── system_timer.hpp
│ │ ├── thread.hpp
│ │ ├── thread_pool.hpp
│ │ ├── time_traits.hpp
│ │ ├── ts/
│ │ │ ├── buffer.hpp
│ │ │ ├── executor.hpp
│ │ │ ├── internet.hpp
│ │ │ ├── io_context.hpp
│ │ │ ├── net.hpp
│ │ │ ├── netfwd.hpp
│ │ │ ├── socket.hpp
│ │ │ └── timer.hpp
│ │ ├── unyield.hpp
│ │ ├── use_future.hpp
│ │ ├── uses_executor.hpp
│ │ ├── version.hpp
│ │ ├── wait_traits.hpp
│ │ ├── waitable_timer_service.hpp
│ │ ├── windows/
│ │ │ ├── basic_handle.hpp
│ │ │ ├── basic_object_handle.hpp
│ │ │ ├── basic_random_access_handle.hpp
│ │ │ ├── basic_stream_handle.hpp
│ │ │ ├── object_handle.hpp
│ │ │ ├── object_handle_service.hpp
│ │ │ ├── overlapped_handle.hpp
│ │ │ ├── overlapped_ptr.hpp
│ │ │ ├── random_access_handle.hpp
│ │ │ ├── random_access_handle_service.hpp
│ │ │ ├── stream_handle.hpp
│ │ │ └── stream_handle_service.hpp
│ │ ├── write.hpp
│ │ ├── write_at.hpp
│ │ └── yield.hpp
│ └── asio.hpp
├── cryptopp/
│ ├── 3way.cpp
│ ├── 3way.h
│ ├── CMakeLists.txt
│ ├── Doxyfile
│ ├── Filelist.txt
│ ├── GNUmakefile
│ ├── GNUmakefile-cross
│ ├── Install.txt
│ ├── License.txt
│ ├── Readme.txt
│ ├── adhoc.cpp
│ ├── adhoc.cpp.copied
│ ├── adhoc.cpp.proto
│ ├── adler32.cpp
│ ├── adler32.h
│ ├── adv-simd.h
│ ├── aes.h
│ ├── algebra.cpp
│ ├── algebra.h
│ ├── algparam.cpp
│ ├── algparam.h
│ ├── arc4.cpp
│ ├── arc4.h
│ ├── argnames.h
│ ├── aria-simd.cpp
│ ├── aria.cpp
│ ├── aria.h
│ ├── ariatab.cpp
│ ├── asn.cpp
│ ├── asn.h
│ ├── authenc.cpp
│ ├── authenc.h
│ ├── base32.cpp
│ ├── base32.h
│ ├── base64.cpp
│ ├── base64.h
│ ├── basecode.cpp
│ ├── basecode.h
│ ├── bench.h
│ ├── bench1.cpp
│ ├── bench2.cpp
│ ├── bfinit.cpp
│ ├── blake2-simd.cpp
│ ├── blake2.cpp
│ ├── blake2.h
│ ├── blowfish.cpp
│ ├── blowfish.h
│ ├── blumshub.cpp
│ ├── blumshub.h
│ ├── camellia.cpp
│ ├── camellia.h
│ ├── cast.cpp
│ ├── cast.h
│ ├── casts.cpp
│ ├── cbcmac.cpp
│ ├── cbcmac.h
│ ├── ccm.cpp
│ ├── ccm.h
│ ├── chacha.cpp
│ ├── chacha.h
│ ├── channels.cpp
│ ├── channels.h
│ ├── cmac.cpp
│ ├── cmac.h
│ ├── config.h
│ ├── cpu.cpp
│ ├── cpu.h
│ ├── crc-simd.cpp
│ ├── crc.cpp
│ ├── crc.h
│ ├── cryptdll.vcxproj.filters
│ ├── cryptest.nmake
│ ├── cryptest.sh
│ ├── cryptest.sln
│ ├── cryptest.vcxproj.filters
│ ├── cryptlib.cpp
│ ├── cryptlib.h
│ ├── cryptlib.vcxproj.filters
│ ├── cryptopp.rc
│ ├── cryptopp.supp
│ ├── datatest.cpp
│ ├── default.cpp
│ ├── default.h
│ ├── des.cpp
│ ├── des.h
│ ├── dessp.cpp
│ ├── dh.cpp
│ ├── dh.h
│ ├── dh2.cpp
│ ├── dh2.h
│ ├── dll.cpp
│ ├── dll.h
│ ├── dlltest.cpp
│ ├── dlltest.vcxproj.filters
│ ├── dmac.h
│ ├── drbg.h
│ ├── dsa.cpp
│ ├── dsa.h
│ ├── eax.cpp
│ ├── eax.h
│ ├── ec2n.cpp
│ ├── ec2n.h
│ ├── eccrypto.cpp
│ ├── eccrypto.h
│ ├── ecp.cpp
│ ├── ecp.h
│ ├── ecpoint.h
│ ├── elgamal.cpp
│ ├── elgamal.h
│ ├── emsa2.cpp
│ ├── emsa2.h
│ ├── eprecomp.cpp
│ ├── eprecomp.h
│ ├── esign.cpp
│ ├── esign.h
│ ├── factory.h
│ ├── fhmqv.h
│ ├── files.cpp
│ ├── files.h
│ ├── filters.cpp
│ ├── filters.h
│ ├── fips140.cpp
│ ├── fips140.h
│ ├── fipsalgt.cpp
│ ├── fipstest.cpp
│ ├── fltrimpl.h
│ ├── gcm-simd.cpp
│ ├── gcm.cpp
│ ├── gcm.h
│ ├── gf256.cpp
│ ├── gf256.h
│ ├── gf2_32.cpp
│ ├── gf2_32.h
│ ├── gf2n.cpp
│ ├── gf2n.h
│ ├── gfpcrypt.cpp
│ ├── gfpcrypt.h
│ ├── gost.cpp
│ ├── gost.h
│ ├── gzip.cpp
│ ├── gzip.h
│ ├── hashfwd.h
│ ├── hex.cpp
│ ├── hex.h
│ ├── hkdf.h
│ ├── hmac.cpp
│ ├── hmac.h
│ ├── hmqv.h
│ ├── hrtimer.cpp
│ ├── hrtimer.h
│ ├── ida.cpp
│ ├── ida.h
│ ├── idea.cpp
│ ├── idea.h
│ ├── integer.cpp
│ ├── integer.h
│ ├── iterhash.cpp
│ ├── iterhash.h
│ ├── kalyna.cpp
│ ├── kalyna.h
│ ├── kalynatab.cpp
│ ├── keccak.cpp
│ ├── keccak.h
│ ├── lubyrack.h
│ ├── luc.cpp
│ ├── luc.h
│ ├── mars.cpp
│ ├── mars.h
│ ├── marss.cpp
│ ├── md2.cpp
│ ├── md2.h
│ ├── md4.cpp
│ ├── md4.h
│ ├── md5.cpp
│ ├── md5.h
│ ├── mdc.h
│ ├── mersenne.h
│ ├── misc.cpp
│ ├── misc.h
│ ├── modarith.h
│ ├── modes.cpp
│ ├── modes.h
│ ├── modexppc.h
│ ├── mqueue.cpp
│ ├── mqueue.h
│ ├── mqv.cpp
│ ├── mqv.h
│ ├── naclite.h
│ ├── nbtheory.cpp
│ ├── nbtheory.h
│ ├── neon-simd.cpp
│ ├── network.cpp
│ ├── network.h
│ ├── nr.h
│ ├── oaep.cpp
│ ├── oaep.h
│ ├── oids.h
│ ├── osrng.cpp
│ ├── osrng.h
│ ├── ossig.h
│ ├── padlkrng.cpp
│ ├── padlkrng.h
│ ├── panama.cpp
│ ├── panama.h
│ ├── pch.cpp
│ ├── pch.h
│ ├── pkcspad.cpp
│ ├── pkcspad.h
│ ├── poly1305.cpp
│ ├── poly1305.h
│ ├── polynomi.cpp
│ ├── polynomi.h
│ ├── ppc-simd.cpp
│ ├── ppc-simd.h
│ ├── pssr.cpp
│ ├── pssr.h
│ ├── pubkey.cpp
│ ├── pubkey.h
│ ├── pwdbased.h
│ ├── queue.cpp
│ ├── queue.h
│ ├── rabin.cpp
│ ├── rabin.h
│ ├── randpool.cpp
│ ├── randpool.h
│ ├── rc2.cpp
│ ├── rc2.h
│ ├── rc5.cpp
│ ├── rc5.h
│ ├── rc6.cpp
│ ├── rc6.h
│ ├── rdrand-masm.cmd
│ ├── rdrand-nasm.sh
│ ├── rdrand.asm
│ ├── rdrand.cpp
│ ├── rdrand.h
│ ├── rdrand.s
│ ├── rdtables.cpp
│ ├── regtest1.cpp
│ ├── regtest2.cpp
│ ├── regtest3.cpp
│ ├── resource.h
│ ├── rijndael-simd.cpp
│ ├── rijndael.cpp
│ ├── rijndael.h
│ ├── ripemd.cpp
│ ├── ripemd.h
│ ├── rng.cpp
│ ├── rng.h
│ ├── rsa.cpp
│ ├── rsa.h
│ ├── rw.cpp
│ ├── rw.h
│ ├── safer.cpp
│ ├── safer.h
│ ├── salsa.cpp
│ ├── salsa.h
│ ├── seal.cpp
│ ├── seal.h
│ ├── secblock.h
│ ├── seckey.h
│ ├── seed.cpp
│ ├── seed.h
│ ├── serpent.cpp
│ ├── serpent.h
│ ├── serpentp.h
│ ├── sha-simd.cpp
│ ├── sha.cpp
│ ├── sha.h
│ ├── sha3.cpp
│ ├── sha3.h
│ ├── shacal2-simd.cpp
│ ├── shacal2.cpp
│ ├── shacal2.h
│ ├── shark.cpp
│ ├── shark.h
│ ├── sharkbox.cpp
│ ├── simon-simd.cpp
│ ├── simon.cpp
│ ├── simon.h
│ ├── simple.cpp
│ ├── simple.h
│ ├── siphash.h
│ ├── skipjack.cpp
│ ├── skipjack.h
│ ├── sm3.cpp
│ ├── sm3.h
│ ├── sm4.cpp
│ ├── sm4.h
│ ├── smartptr.h
│ ├── socketft.cpp
│ ├── socketft.h
│ ├── sosemanuk.cpp
│ ├── sosemanuk.h
│ ├── speck-simd.cpp
│ ├── speck.cpp
│ ├── speck.h
│ ├── square.cpp
│ ├── square.h
│ ├── squaretb.cpp
│ ├── sse-simd.cpp
│ ├── stdcpp.h
│ ├── strciphr.cpp
│ ├── strciphr.h
│ ├── tea.cpp
│ ├── tea.h
│ ├── test.cpp
│ ├── tftables.cpp
│ ├── threefish.cpp
│ ├── threefish.h
│ ├── tiger.cpp
│ ├── tiger.h
│ ├── tigertab.cpp
│ ├── trap.h
│ ├── trdlocal.cpp
│ ├── trdlocal.h
│ ├── trunhash.h
│ ├── ttmac.cpp
│ ├── ttmac.h
│ ├── tweetnacl.cpp
│ ├── tweetnacl.h
│ ├── twofish.cpp
│ ├── twofish.h
│ ├── validat0.cpp
│ ├── validat1.cpp
│ ├── validat2.cpp
│ ├── validat3.cpp
│ ├── validat4.cpp
│ ├── validate.h
│ ├── vmac.cpp
│ ├── vmac.h
│ ├── wait.cpp
│ ├── wait.h
│ ├── wake.cpp
│ ├── wake.h
│ ├── whrlpool.cpp
│ ├── whrlpool.h
│ ├── winpipes.cpp
│ ├── winpipes.h
│ ├── words.h
│ ├── x64dll.asm
│ ├── x64masm.asm
│ ├── xtr.cpp
│ ├── xtr.h
│ ├── xtrcrypt.cpp
│ ├── xtrcrypt.h
│ ├── zdeflate.cpp
│ ├── zdeflate.h
│ ├── zinflate.cpp
│ ├── zinflate.h
│ ├── zlib.cpp
│ └── zlib.h
├── curl/
│ ├── CHANGES
│ ├── CMake/
│ │ ├── CMakeConfigurableFile.in
│ │ ├── CurlSymbolHiding.cmake
│ │ ├── CurlTests.c
│ │ ├── FindCARES.cmake
│ │ ├── FindGSS.cmake
│ │ ├── FindLibSSH2.cmake
│ │ ├── FindMbedTLS.cmake
│ │ ├── FindNGHTTP2.cmake
│ │ ├── Macros.cmake
│ │ ├── OtherTests.cmake
│ │ ├── Platforms/
│ │ │ └── WindowsCache.cmake
│ │ ├── Utilities.cmake
│ │ ├── cmake_uninstall.cmake.in
│ │ └── curl-config.cmake
│ ├── CMakeLists.txt
│ ├── COPYING
│ ├── MacOSX-Framework
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README
│ ├── RELEASE-NOTES
│ ├── acinclude.m4
│ ├── aclocal.m4
│ ├── buildconf
│ ├── buildconf.bat
│ ├── compile
│ ├── config.guess
│ ├── config.sub
│ ├── configure
│ ├── configure.ac
│ ├── curl-config.in
│ ├── depcomp
│ ├── docs/
│ │ ├── BINDINGS.md
│ │ ├── BUGS
│ │ ├── CHECKSRC.md
│ │ ├── CIPHERS.md
│ │ ├── CMakeLists.txt
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CODE_STYLE.md
│ │ ├── CONTRIBUTE.md
│ │ ├── FAQ
│ │ ├── FEATURES
│ │ ├── HELP-US.md
│ │ ├── HISTORY.md
│ │ ├── HTTP-COOKIES.md
│ │ ├── HTTP2.md
│ │ ├── INSTALL
│ │ ├── INSTALL.cmake
│ │ ├── INSTALL.md
│ │ ├── INTERNALS.md
│ │ ├── KNOWN_BUGS
│ │ ├── LICENSE-MIXING.md
│ │ ├── MAIL-ETIQUETTE
│ │ ├── MANUAL
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── README.cmake
│ │ ├── README.md
│ │ ├── README.netware
│ │ ├── README.win32
│ │ ├── RELEASE-PROCEDURE
│ │ ├── RESOURCES
│ │ ├── ROADMAP.md
│ │ ├── SECURITY-PROCESS.md
│ │ ├── SSL-PROBLEMS.md
│ │ ├── SSLCERTS.md
│ │ ├── THANKS
│ │ ├── TODO
│ │ ├── TheArtOfHttpScripting
│ │ ├── VERSIONS
│ │ ├── cmdline-opts/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── MANPAGE.md
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── gen.pl
│ │ │ ├── page-footer
│ │ │ └── page-header
│ │ ├── curl-config.1
│ │ ├── curl.1
│ │ ├── examples/
│ │ │ ├── 10-at-a-time.c
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.example
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── Makefile.m32
│ │ │ ├── Makefile.netware
│ │ │ ├── README
│ │ │ ├── anyauthput.c
│ │ │ ├── asiohiper.cpp
│ │ │ ├── cacertinmem.c
│ │ │ ├── certinfo.c
│ │ │ ├── chkspeed.c
│ │ │ ├── cookie_interface.c
│ │ │ ├── curlgtk.c
│ │ │ ├── curlx.c
│ │ │ ├── debug.c
│ │ │ ├── evhiperfifo.c
│ │ │ ├── externalsocket.c
│ │ │ ├── fileupload.c
│ │ │ ├── fopen.c
│ │ │ ├── ftp-wildcard.c
│ │ │ ├── ftpget.c
│ │ │ ├── ftpgetinfo.c
│ │ │ ├── ftpgetresp.c
│ │ │ ├── ftpsget.c
│ │ │ ├── ftpupload.c
│ │ │ ├── ftpuploadfrommem.c
│ │ │ ├── ftpuploadresume.c
│ │ │ ├── getinfo.c
│ │ │ ├── getinmemory.c
│ │ │ ├── getredirect.c
│ │ │ ├── ghiper.c
│ │ │ ├── hiperfifo.c
│ │ │ ├── href_extractor.c
│ │ │ ├── htmltidy.c
│ │ │ ├── htmltitle.cpp
│ │ │ ├── http-post.c
│ │ │ ├── http2-download.c
│ │ │ ├── http2-serverpush.c
│ │ │ ├── http2-upload.c
│ │ │ ├── httpcustomheader.c
│ │ │ ├── httpput.c
│ │ │ ├── https.c
│ │ │ ├── imap-append.c
│ │ │ ├── imap-copy.c
│ │ │ ├── imap-create.c
│ │ │ ├── imap-delete.c
│ │ │ ├── imap-examine.c
│ │ │ ├── imap-fetch.c
│ │ │ ├── imap-list.c
│ │ │ ├── imap-lsub.c
│ │ │ ├── imap-multi.c
│ │ │ ├── imap-noop.c
│ │ │ ├── imap-search.c
│ │ │ ├── imap-ssl.c
│ │ │ ├── imap-store.c
│ │ │ ├── imap-tls.c
│ │ │ ├── makefile.dj
│ │ │ ├── multi-app.c
│ │ │ ├── multi-debugcallback.c
│ │ │ ├── multi-double.c
│ │ │ ├── multi-formadd.c
│ │ │ ├── multi-post.c
│ │ │ ├── multi-single.c
│ │ │ ├── multi-uv.c
│ │ │ ├── multithread.c
│ │ │ ├── opensslthreadlock.c
│ │ │ ├── persistant.c
│ │ │ ├── pop3-dele.c
│ │ │ ├── pop3-list.c
│ │ │ ├── pop3-multi.c
│ │ │ ├── pop3-noop.c
│ │ │ ├── pop3-retr.c
│ │ │ ├── pop3-ssl.c
│ │ │ ├── pop3-stat.c
│ │ │ ├── pop3-tls.c
│ │ │ ├── pop3-top.c
│ │ │ ├── pop3-uidl.c
│ │ │ ├── post-callback.c
│ │ │ ├── postinmemory.c
│ │ │ ├── postit2-formadd.c
│ │ │ ├── postit2.c
│ │ │ ├── progressfunc.c
│ │ │ ├── resolve.c
│ │ │ ├── rtsp.c
│ │ │ ├── sampleconv.c
│ │ │ ├── sendrecv.c
│ │ │ ├── sepheaders.c
│ │ │ ├── sessioninfo.c
│ │ │ ├── sftpget.c
│ │ │ ├── sftpuploadresume.c
│ │ │ ├── shared-connection-cache.c
│ │ │ ├── simple.c
│ │ │ ├── simplepost.c
│ │ │ ├── simplessl.c
│ │ │ ├── smooth-gtk-thread.c
│ │ │ ├── smtp-expn.c
│ │ │ ├── smtp-mail.c
│ │ │ ├── smtp-mime.c
│ │ │ ├── smtp-multi.c
│ │ │ ├── smtp-ssl.c
│ │ │ ├── smtp-tls.c
│ │ │ ├── smtp-vrfy.c
│ │ │ ├── sslbackend.c
│ │ │ ├── synctime.c
│ │ │ ├── threaded-shared-conn.c
│ │ │ ├── threaded-ssl.c
│ │ │ ├── url2file.c
│ │ │ ├── usercertinmem.c
│ │ │ ├── version-check.pl
│ │ │ └── xmlstream.c
│ │ ├── libcurl/
│ │ │ ├── ABI
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── curl_easy_cleanup.3
│ │ │ ├── curl_easy_duphandle.3
│ │ │ ├── curl_easy_escape.3
│ │ │ ├── curl_easy_getinfo.3
│ │ │ ├── curl_easy_init.3
│ │ │ ├── curl_easy_pause.3
│ │ │ ├── curl_easy_perform.3
│ │ │ ├── curl_easy_recv.3
│ │ │ ├── curl_easy_reset.3
│ │ │ ├── curl_easy_send.3
│ │ │ ├── curl_easy_setopt.3
│ │ │ ├── curl_easy_strerror.3
│ │ │ ├── curl_easy_unescape.3
│ │ │ ├── curl_escape.3
│ │ │ ├── curl_formadd.3
│ │ │ ├── curl_formfree.3
│ │ │ ├── curl_formget.3
│ │ │ ├── curl_free.3
│ │ │ ├── curl_getdate.3
│ │ │ ├── curl_getenv.3
│ │ │ ├── curl_global_cleanup.3
│ │ │ ├── curl_global_init.3
│ │ │ ├── curl_global_init_mem.3
│ │ │ ├── curl_global_sslset.3
│ │ │ ├── curl_mime_addpart.3
│ │ │ ├── curl_mime_data.3
│ │ │ ├── curl_mime_data_cb.3
│ │ │ ├── curl_mime_encoder.3
│ │ │ ├── curl_mime_filedata.3
│ │ │ ├── curl_mime_filename.3
│ │ │ ├── curl_mime_free.3
│ │ │ ├── curl_mime_headers.3
│ │ │ ├── curl_mime_init.3
│ │ │ ├── curl_mime_name.3
│ │ │ ├── curl_mime_subparts.3
│ │ │ ├── curl_mime_type.3
│ │ │ ├── curl_mprintf.3
│ │ │ ├── curl_multi_add_handle.3
│ │ │ ├── curl_multi_assign.3
│ │ │ ├── curl_multi_cleanup.3
│ │ │ ├── curl_multi_fdset.3
│ │ │ ├── curl_multi_info_read.3
│ │ │ ├── curl_multi_init.3
│ │ │ ├── curl_multi_perform.3
│ │ │ ├── curl_multi_remove_handle.3
│ │ │ ├── curl_multi_setopt.3
│ │ │ ├── curl_multi_socket.3
│ │ │ ├── curl_multi_socket_action.3
│ │ │ ├── curl_multi_socket_all.3
│ │ │ ├── curl_multi_strerror.3
│ │ │ ├── curl_multi_timeout.3
│ │ │ ├── curl_multi_wait.3
│ │ │ ├── curl_share_cleanup.3
│ │ │ ├── curl_share_init.3
│ │ │ ├── curl_share_setopt.3
│ │ │ ├── curl_share_strerror.3
│ │ │ ├── curl_slist_append.3
│ │ │ ├── curl_slist_free_all.3
│ │ │ ├── curl_strequal.3
│ │ │ ├── curl_strnequal.3
│ │ │ ├── curl_unescape.3
│ │ │ ├── curl_version.3
│ │ │ ├── curl_version_info.3
│ │ │ ├── index.html
│ │ │ ├── libcurl-easy.3
│ │ │ ├── libcurl-env.3
│ │ │ ├── libcurl-errors.3
│ │ │ ├── libcurl-multi.3
│ │ │ ├── libcurl-security.3
│ │ │ ├── libcurl-share.3
│ │ │ ├── libcurl-symbols.3
│ │ │ ├── libcurl-thread.3
│ │ │ ├── libcurl-tutorial.3
│ │ │ ├── libcurl.3
│ │ │ ├── libcurl.m4
│ │ │ ├── mksymbolsmanpage.pl
│ │ │ ├── opts/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── CURLINFO_ACTIVESOCKET.3
│ │ │ │ ├── CURLINFO_APPCONNECT_TIME.3
│ │ │ │ ├── CURLINFO_CERTINFO.3
│ │ │ │ ├── CURLINFO_CONDITION_UNMET.3
│ │ │ │ ├── CURLINFO_CONNECT_TIME.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_UPLOAD.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
│ │ │ │ ├── CURLINFO_CONTENT_TYPE.3
│ │ │ │ ├── CURLINFO_COOKIELIST.3
│ │ │ │ ├── CURLINFO_EFFECTIVE_URL.3
│ │ │ │ ├── CURLINFO_FILETIME.3
│ │ │ │ ├── CURLINFO_FILETIME_T.3
│ │ │ │ ├── CURLINFO_FTP_ENTRY_PATH.3
│ │ │ │ ├── CURLINFO_HEADER_SIZE.3
│ │ │ │ ├── CURLINFO_HTTPAUTH_AVAIL.3
│ │ │ │ ├── CURLINFO_HTTP_CONNECTCODE.3
│ │ │ │ ├── CURLINFO_HTTP_VERSION.3
│ │ │ │ ├── CURLINFO_LASTSOCKET.3
│ │ │ │ ├── CURLINFO_LOCAL_IP.3
│ │ │ │ ├── CURLINFO_LOCAL_PORT.3
│ │ │ │ ├── CURLINFO_NAMELOOKUP_TIME.3
│ │ │ │ ├── CURLINFO_NUM_CONNECTS.3
│ │ │ │ ├── CURLINFO_OS_ERRNO.3
│ │ │ │ ├── CURLINFO_PRETRANSFER_TIME.3
│ │ │ │ ├── CURLINFO_PRIMARY_IP.3
│ │ │ │ ├── CURLINFO_PRIMARY_PORT.3
│ │ │ │ ├── CURLINFO_PRIVATE.3
│ │ │ │ ├── CURLINFO_PROTOCOL.3
│ │ │ │ ├── CURLINFO_PROXYAUTH_AVAIL.3
│ │ │ │ ├── CURLINFO_PROXY_SSL_VERIFYRESULT.3
│ │ │ │ ├── CURLINFO_REDIRECT_COUNT.3
│ │ │ │ ├── CURLINFO_REDIRECT_TIME.3
│ │ │ │ ├── CURLINFO_REDIRECT_URL.3
│ │ │ │ ├── CURLINFO_REQUEST_SIZE.3
│ │ │ │ ├── CURLINFO_RESPONSE_CODE.3
│ │ │ │ ├── CURLINFO_RTSP_CLIENT_CSEQ.3
│ │ │ │ ├── CURLINFO_RTSP_CSEQ_RECV.3
│ │ │ │ ├── CURLINFO_RTSP_SERVER_CSEQ.3
│ │ │ │ ├── CURLINFO_RTSP_SESSION_ID.3
│ │ │ │ ├── CURLINFO_SCHEME.3
│ │ │ │ ├── CURLINFO_SIZE_DOWNLOAD.3
│ │ │ │ ├── CURLINFO_SIZE_DOWNLOAD_T.3
│ │ │ │ ├── CURLINFO_SIZE_UPLOAD.3
│ │ │ │ ├── CURLINFO_SIZE_UPLOAD_T.3
│ │ │ │ ├── CURLINFO_SPEED_DOWNLOAD.3
│ │ │ │ ├── CURLINFO_SPEED_DOWNLOAD_T.3
│ │ │ │ ├── CURLINFO_SPEED_UPLOAD.3
│ │ │ │ ├── CURLINFO_SPEED_UPLOAD_T.3
│ │ │ │ ├── CURLINFO_SSL_ENGINES.3
│ │ │ │ ├── CURLINFO_SSL_VERIFYRESULT.3
│ │ │ │ ├── CURLINFO_STARTTRANSFER_TIME.3
│ │ │ │ ├── CURLINFO_TLS_SESSION.3
│ │ │ │ ├── CURLINFO_TLS_SSL_PTR.3
│ │ │ │ ├── CURLINFO_TOTAL_TIME.3
│ │ │ │ ├── CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
│ │ │ │ ├── CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
│ │ │ │ ├── CURLMOPT_MAXCONNECTS.3
│ │ │ │ ├── CURLMOPT_MAX_HOST_CONNECTIONS.3
│ │ │ │ ├── CURLMOPT_MAX_PIPELINE_LENGTH.3
│ │ │ │ ├── CURLMOPT_MAX_TOTAL_CONNECTIONS.3
│ │ │ │ ├── CURLMOPT_PIPELINING.3
│ │ │ │ ├── CURLMOPT_PIPELINING_SERVER_BL.3
│ │ │ │ ├── CURLMOPT_PIPELINING_SITE_BL.3
│ │ │ │ ├── CURLMOPT_PUSHDATA.3
│ │ │ │ ├── CURLMOPT_PUSHFUNCTION.3
│ │ │ │ ├── CURLMOPT_SOCKETDATA.3
│ │ │ │ ├── CURLMOPT_SOCKETFUNCTION.3
│ │ │ │ ├── CURLMOPT_TIMERDATA.3
│ │ │ │ ├── CURLMOPT_TIMERFUNCTION.3
│ │ │ │ ├── CURLOPT_ABSTRACT_UNIX_SOCKET.3
│ │ │ │ ├── CURLOPT_ACCEPTTIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_ACCEPT_ENCODING.3
│ │ │ │ ├── CURLOPT_ADDRESS_SCOPE.3
│ │ │ │ ├── CURLOPT_APPEND.3
│ │ │ │ ├── CURLOPT_AUTOREFERER.3
│ │ │ │ ├── CURLOPT_BUFFERSIZE.3
│ │ │ │ ├── CURLOPT_CAINFO.3
│ │ │ │ ├── CURLOPT_CAPATH.3
│ │ │ │ ├── CURLOPT_CERTINFO.3
│ │ │ │ ├── CURLOPT_CHUNK_BGN_FUNCTION.3
│ │ │ │ ├── CURLOPT_CHUNK_DATA.3
│ │ │ │ ├── CURLOPT_CHUNK_END_FUNCTION.3
│ │ │ │ ├── CURLOPT_CLOSESOCKETDATA.3
│ │ │ │ ├── CURLOPT_CLOSESOCKETFUNCTION.3
│ │ │ │ ├── CURLOPT_CONNECTTIMEOUT.3
│ │ │ │ ├── CURLOPT_CONNECTTIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_CONNECT_ONLY.3
│ │ │ │ ├── CURLOPT_CONNECT_TO.3
│ │ │ │ ├── CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
│ │ │ │ ├── CURLOPT_CONV_FROM_UTF8_FUNCTION.3
│ │ │ │ ├── CURLOPT_CONV_TO_NETWORK_FUNCTION.3
│ │ │ │ ├── CURLOPT_COOKIE.3
│ │ │ │ ├── CURLOPT_COOKIEFILE.3
│ │ │ │ ├── CURLOPT_COOKIEJAR.3
│ │ │ │ ├── CURLOPT_COOKIELIST.3
│ │ │ │ ├── CURLOPT_COOKIESESSION.3
│ │ │ │ ├── CURLOPT_COPYPOSTFIELDS.3
│ │ │ │ ├── CURLOPT_CRLF.3
│ │ │ │ ├── CURLOPT_CRLFILE.3
│ │ │ │ ├── CURLOPT_CUSTOMREQUEST.3
│ │ │ │ ├── CURLOPT_DEBUGDATA.3
│ │ │ │ ├── CURLOPT_DEBUGFUNCTION.3
│ │ │ │ ├── CURLOPT_DEFAULT_PROTOCOL.3
│ │ │ │ ├── CURLOPT_DIRLISTONLY.3
│ │ │ │ ├── CURLOPT_DNS_CACHE_TIMEOUT.3
│ │ │ │ ├── CURLOPT_DNS_INTERFACE.3
│ │ │ │ ├── CURLOPT_DNS_LOCAL_IP4.3
│ │ │ │ ├── CURLOPT_DNS_LOCAL_IP6.3
│ │ │ │ ├── CURLOPT_DNS_SERVERS.3
│ │ │ │ ├── CURLOPT_DNS_USE_GLOBAL_CACHE.3
│ │ │ │ ├── CURLOPT_EGDSOCKET.3
│ │ │ │ ├── CURLOPT_ERRORBUFFER.3
│ │ │ │ ├── CURLOPT_EXPECT_100_TIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_FAILONERROR.3
│ │ │ │ ├── CURLOPT_FILETIME.3
│ │ │ │ ├── CURLOPT_FNMATCH_DATA.3
│ │ │ │ ├── CURLOPT_FNMATCH_FUNCTION.3
│ │ │ │ ├── CURLOPT_FOLLOWLOCATION.3
│ │ │ │ ├── CURLOPT_FORBID_REUSE.3
│ │ │ │ ├── CURLOPT_FRESH_CONNECT.3
│ │ │ │ ├── CURLOPT_FTPPORT.3
│ │ │ │ ├── CURLOPT_FTPSSLAUTH.3
│ │ │ │ ├── CURLOPT_FTP_ACCOUNT.3
│ │ │ │ ├── CURLOPT_FTP_ALTERNATIVE_TO_USER.3
│ │ │ │ ├── CURLOPT_FTP_CREATE_MISSING_DIRS.3
│ │ │ │ ├── CURLOPT_FTP_FILEMETHOD.3
│ │ │ │ ├── CURLOPT_FTP_RESPONSE_TIMEOUT.3
│ │ │ │ ├── CURLOPT_FTP_SKIP_PASV_IP.3
│ │ │ │ ├── CURLOPT_FTP_SSL_CCC.3
│ │ │ │ ├── CURLOPT_FTP_USE_EPRT.3
│ │ │ │ ├── CURLOPT_FTP_USE_EPSV.3
│ │ │ │ ├── CURLOPT_FTP_USE_PRET.3
│ │ │ │ ├── CURLOPT_GSSAPI_DELEGATION.3
│ │ │ │ ├── CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_HEADER.3
│ │ │ │ ├── CURLOPT_HEADERDATA.3
│ │ │ │ ├── CURLOPT_HEADERFUNCTION.3
│ │ │ │ ├── CURLOPT_HEADEROPT.3
│ │ │ │ ├── CURLOPT_HTTP200ALIASES.3
│ │ │ │ ├── CURLOPT_HTTPAUTH.3
│ │ │ │ ├── CURLOPT_HTTPGET.3
│ │ │ │ ├── CURLOPT_HTTPHEADER.3
│ │ │ │ ├── CURLOPT_HTTPPOST.3
│ │ │ │ ├── CURLOPT_HTTPPROXYTUNNEL.3
│ │ │ │ ├── CURLOPT_HTTP_CONTENT_DECODING.3
│ │ │ │ ├── CURLOPT_HTTP_TRANSFER_DECODING.3
│ │ │ │ ├── CURLOPT_HTTP_VERSION.3
│ │ │ │ ├── CURLOPT_IGNORE_CONTENT_LENGTH.3
│ │ │ │ ├── CURLOPT_INFILESIZE.3
│ │ │ │ ├── CURLOPT_INFILESIZE_LARGE.3
│ │ │ │ ├── CURLOPT_INTERFACE.3
│ │ │ │ ├── CURLOPT_INTERLEAVEDATA.3
│ │ │ │ ├── CURLOPT_INTERLEAVEFUNCTION.3
│ │ │ │ ├── CURLOPT_IOCTLDATA.3
│ │ │ │ ├── CURLOPT_IOCTLFUNCTION.3
│ │ │ │ ├── CURLOPT_IPRESOLVE.3
│ │ │ │ ├── CURLOPT_ISSUERCERT.3
│ │ │ │ ├── CURLOPT_KEEP_SENDING_ON_ERROR.3
│ │ │ │ ├── CURLOPT_KEYPASSWD.3
│ │ │ │ ├── CURLOPT_KRBLEVEL.3
│ │ │ │ ├── CURLOPT_LOCALPORT.3
│ │ │ │ ├── CURLOPT_LOCALPORTRANGE.3
│ │ │ │ ├── CURLOPT_LOGIN_OPTIONS.3
│ │ │ │ ├── CURLOPT_LOW_SPEED_LIMIT.3
│ │ │ │ ├── CURLOPT_LOW_SPEED_TIME.3
│ │ │ │ ├── CURLOPT_MAIL_AUTH.3
│ │ │ │ ├── CURLOPT_MAIL_FROM.3
│ │ │ │ ├── CURLOPT_MAIL_RCPT.3
│ │ │ │ ├── CURLOPT_MAXCONNECTS.3
│ │ │ │ ├── CURLOPT_MAXFILESIZE.3
│ │ │ │ ├── CURLOPT_MAXFILESIZE_LARGE.3
│ │ │ │ ├── CURLOPT_MAXREDIRS.3
│ │ │ │ ├── CURLOPT_MAX_RECV_SPEED_LARGE.3
│ │ │ │ ├── CURLOPT_MAX_SEND_SPEED_LARGE.3
│ │ │ │ ├── CURLOPT_MIMEPOST.3
│ │ │ │ ├── CURLOPT_NETRC.3
│ │ │ │ ├── CURLOPT_NETRC_FILE.3
│ │ │ │ ├── CURLOPT_NEW_DIRECTORY_PERMS.3
│ │ │ │ ├── CURLOPT_NEW_FILE_PERMS.3
│ │ │ │ ├── CURLOPT_NOBODY.3
│ │ │ │ ├── CURLOPT_NOPROGRESS.3
│ │ │ │ ├── CURLOPT_NOPROXY.3
│ │ │ │ ├── CURLOPT_NOSIGNAL.3
│ │ │ │ ├── CURLOPT_OPENSOCKETDATA.3
│ │ │ │ ├── CURLOPT_OPENSOCKETFUNCTION.3
│ │ │ │ ├── CURLOPT_PASSWORD.3
│ │ │ │ ├── CURLOPT_PATH_AS_IS.3
│ │ │ │ ├── CURLOPT_PINNEDPUBLICKEY.3
│ │ │ │ ├── CURLOPT_PIPEWAIT.3
│ │ │ │ ├── CURLOPT_PORT.3
│ │ │ │ ├── CURLOPT_POST.3
│ │ │ │ ├── CURLOPT_POSTFIELDS.3
│ │ │ │ ├── CURLOPT_POSTFIELDSIZE.3
│ │ │ │ ├── CURLOPT_POSTFIELDSIZE_LARGE.3
│ │ │ │ ├── CURLOPT_POSTQUOTE.3
│ │ │ │ ├── CURLOPT_POSTREDIR.3
│ │ │ │ ├── CURLOPT_PREQUOTE.3
│ │ │ │ ├── CURLOPT_PRE_PROXY.3
│ │ │ │ ├── CURLOPT_PRIVATE.3
│ │ │ │ ├── CURLOPT_PROGRESSDATA.3
│ │ │ │ ├── CURLOPT_PROGRESSFUNCTION.3
│ │ │ │ ├── CURLOPT_PROTOCOLS.3
│ │ │ │ ├── CURLOPT_PROXY.3
│ │ │ │ ├── CURLOPT_PROXYAUTH.3
│ │ │ │ ├── CURLOPT_PROXYHEADER.3
│ │ │ │ ├── CURLOPT_PROXYPASSWORD.3
│ │ │ │ ├── CURLOPT_PROXYPORT.3
│ │ │ │ ├── CURLOPT_PROXYTYPE.3
│ │ │ │ ├── CURLOPT_PROXYUSERNAME.3
│ │ │ │ ├── CURLOPT_PROXYUSERPWD.3
│ │ │ │ ├── CURLOPT_PROXY_CAINFO.3
│ │ │ │ ├── CURLOPT_PROXY_CAPATH.3
│ │ │ │ ├── CURLOPT_PROXY_CRLFILE.3
│ │ │ │ ├── CURLOPT_PROXY_KEYPASSWD.3
│ │ │ │ ├── CURLOPT_PROXY_PINNEDPUBLICKEY.3
│ │ │ │ ├── CURLOPT_PROXY_SERVICE_NAME.3
│ │ │ │ ├── CURLOPT_PROXY_SSLCERT.3
│ │ │ │ ├── CURLOPT_PROXY_SSLCERTTYPE.3
│ │ │ │ ├── CURLOPT_PROXY_SSLKEY.3
│ │ │ │ ├── CURLOPT_PROXY_SSLKEYTYPE.3
│ │ │ │ ├── CURLOPT_PROXY_SSLVERSION.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_CIPHER_LIST.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_OPTIONS.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_VERIFYHOST.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_VERIFYPEER.3
│ │ │ │ ├── CURLOPT_PROXY_TLSAUTH_PASSWORD.3
│ │ │ │ ├── CURLOPT_PROXY_TLSAUTH_TYPE.3
│ │ │ │ ├── CURLOPT_PROXY_TLSAUTH_USERNAME.3
│ │ │ │ ├── CURLOPT_PROXY_TRANSFER_MODE.3
│ │ │ │ ├── CURLOPT_PUT.3
│ │ │ │ ├── CURLOPT_QUOTE.3
│ │ │ │ ├── CURLOPT_RANDOM_FILE.3
│ │ │ │ ├── CURLOPT_RANGE.3
│ │ │ │ ├── CURLOPT_READDATA.3
│ │ │ │ ├── CURLOPT_READFUNCTION.3
│ │ │ │ ├── CURLOPT_REDIR_PROTOCOLS.3
│ │ │ │ ├── CURLOPT_REFERER.3
│ │ │ │ ├── CURLOPT_REQUEST_TARGET.3
│ │ │ │ ├── CURLOPT_RESOLVE.3
│ │ │ │ ├── CURLOPT_RESOLVER_START_DATA.3
│ │ │ │ ├── CURLOPT_RESOLVER_START_FUNCTION.3
│ │ │ │ ├── CURLOPT_RESUME_FROM.3
│ │ │ │ ├── CURLOPT_RESUME_FROM_LARGE.3
│ │ │ │ ├── CURLOPT_RTSP_CLIENT_CSEQ.3
│ │ │ │ ├── CURLOPT_RTSP_REQUEST.3
│ │ │ │ ├── CURLOPT_RTSP_SERVER_CSEQ.3
│ │ │ │ ├── CURLOPT_RTSP_SESSION_ID.3
│ │ │ │ ├── CURLOPT_RTSP_STREAM_URI.3
│ │ │ │ ├── CURLOPT_RTSP_TRANSPORT.3
│ │ │ │ ├── CURLOPT_SASL_IR.3
│ │ │ │ ├── CURLOPT_SEEKDATA.3
│ │ │ │ ├── CURLOPT_SEEKFUNCTION.3
│ │ │ │ ├── CURLOPT_SERVICE_NAME.3
│ │ │ │ ├── CURLOPT_SHARE.3
│ │ │ │ ├── CURLOPT_SOCKOPTDATA.3
│ │ │ │ ├── CURLOPT_SOCKOPTFUNCTION.3
│ │ │ │ ├── CURLOPT_SOCKS5_AUTH.3
│ │ │ │ ├── CURLOPT_SOCKS5_GSSAPI_NEC.3
│ │ │ │ ├── CURLOPT_SOCKS5_GSSAPI_SERVICE.3
│ │ │ │ ├── CURLOPT_SSH_AUTH_TYPES.3
│ │ │ │ ├── CURLOPT_SSH_COMPRESSION.3
│ │ │ │ ├── CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
│ │ │ │ ├── CURLOPT_SSH_KEYDATA.3
│ │ │ │ ├── CURLOPT_SSH_KEYFUNCTION.3
│ │ │ │ ├── CURLOPT_SSH_KNOWNHOSTS.3
│ │ │ │ ├── CURLOPT_SSH_PRIVATE_KEYFILE.3
│ │ │ │ ├── CURLOPT_SSH_PUBLIC_KEYFILE.3
│ │ │ │ ├── CURLOPT_SSLCERT.3
│ │ │ │ ├── CURLOPT_SSLCERTTYPE.3
│ │ │ │ ├── CURLOPT_SSLENGINE.3
│ │ │ │ ├── CURLOPT_SSLENGINE_DEFAULT.3
│ │ │ │ ├── CURLOPT_SSLKEY.3
│ │ │ │ ├── CURLOPT_SSLKEYTYPE.3
│ │ │ │ ├── CURLOPT_SSLVERSION.3
│ │ │ │ ├── CURLOPT_SSL_CIPHER_LIST.3
│ │ │ │ ├── CURLOPT_SSL_CTX_DATA.3
│ │ │ │ ├── CURLOPT_SSL_CTX_FUNCTION.3
│ │ │ │ ├── CURLOPT_SSL_ENABLE_ALPN.3
│ │ │ │ ├── CURLOPT_SSL_ENABLE_NPN.3
│ │ │ │ ├── CURLOPT_SSL_FALSESTART.3
│ │ │ │ ├── CURLOPT_SSL_OPTIONS.3
│ │ │ │ ├── CURLOPT_SSL_SESSIONID_CACHE.3
│ │ │ │ ├── CURLOPT_SSL_VERIFYHOST.3
│ │ │ │ ├── CURLOPT_SSL_VERIFYPEER.3
│ │ │ │ ├── CURLOPT_SSL_VERIFYSTATUS.3
│ │ │ │ ├── CURLOPT_STDERR.3
│ │ │ │ ├── CURLOPT_STREAM_DEPENDS.3
│ │ │ │ ├── CURLOPT_STREAM_DEPENDS_E.3
│ │ │ │ ├── CURLOPT_STREAM_WEIGHT.3
│ │ │ │ ├── CURLOPT_SUPPRESS_CONNECT_HEADERS.3
│ │ │ │ ├── CURLOPT_TCP_FASTOPEN.3
│ │ │ │ ├── CURLOPT_TCP_KEEPALIVE.3
│ │ │ │ ├── CURLOPT_TCP_KEEPIDLE.3
│ │ │ │ ├── CURLOPT_TCP_KEEPINTVL.3
│ │ │ │ ├── CURLOPT_TCP_NODELAY.3
│ │ │ │ ├── CURLOPT_TELNETOPTIONS.3
│ │ │ │ ├── CURLOPT_TFTP_BLKSIZE.3
│ │ │ │ ├── CURLOPT_TFTP_NO_OPTIONS.3
│ │ │ │ ├── CURLOPT_TIMECONDITION.3
│ │ │ │ ├── CURLOPT_TIMEOUT.3
│ │ │ │ ├── CURLOPT_TIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_TIMEVALUE.3
│ │ │ │ ├── CURLOPT_TIMEVALUE_LARGE.3
│ │ │ │ ├── CURLOPT_TLSAUTH_PASSWORD.3
│ │ │ │ ├── CURLOPT_TLSAUTH_TYPE.3
│ │ │ │ ├── CURLOPT_TLSAUTH_USERNAME.3
│ │ │ │ ├── CURLOPT_TRANSFERTEXT.3
│ │ │ │ ├── CURLOPT_TRANSFER_ENCODING.3
│ │ │ │ ├── CURLOPT_UNIX_SOCKET_PATH.3
│ │ │ │ ├── CURLOPT_UNRESTRICTED_AUTH.3
│ │ │ │ ├── CURLOPT_UPLOAD.3
│ │ │ │ ├── CURLOPT_URL.3
│ │ │ │ ├── CURLOPT_USERAGENT.3
│ │ │ │ ├── CURLOPT_USERNAME.3
│ │ │ │ ├── CURLOPT_USERPWD.3
│ │ │ │ ├── CURLOPT_USE_SSL.3
│ │ │ │ ├── CURLOPT_VERBOSE.3
│ │ │ │ ├── CURLOPT_WILDCARDMATCH.3
│ │ │ │ ├── CURLOPT_WRITEDATA.3
│ │ │ │ ├── CURLOPT_WRITEFUNCTION.3
│ │ │ │ ├── CURLOPT_XFERINFODATA.3
│ │ │ │ ├── CURLOPT_XFERINFOFUNCTION.3
│ │ │ │ ├── CURLOPT_XOAUTH2_BEARER.3
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ └── Makefile.inc
│ │ │ ├── symbols-in-versions
│ │ │ └── symbols.pl
│ │ └── mk-ca-bundle.1
│ ├── include/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── README
│ │ └── curl/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── curl.h
│ │ ├── curlver.h
│ │ ├── easy.h
│ │ ├── mprintf.h
│ │ ├── multi.h
│ │ ├── stdcheaders.h
│ │ ├── system.h
│ │ └── typecheck-gcc.h
│ ├── install-sh
│ ├── lib/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile.Watcom
│ │ ├── Makefile.am
│ │ ├── Makefile.b32
│ │ ├── Makefile.in
│ │ ├── Makefile.inc
│ │ ├── Makefile.m32
│ │ ├── Makefile.netware
│ │ ├── Makefile.vxworks
│ │ ├── amigaos.c
│ │ ├── amigaos.h
│ │ ├── arpa_telnet.h
│ │ ├── asyn-ares.c
│ │ ├── asyn-thread.c
│ │ ├── asyn.h
│ │ ├── base64.c
│ │ ├── checksrc.pl
│ │ ├── config-amigaos.h
│ │ ├── config-dos.h
│ │ ├── config-mac.h
│ │ ├── config-os400.h
│ │ ├── config-riscos.h
│ │ ├── config-symbian.h
│ │ ├── config-tpf.h
│ │ ├── config-vxworks.h
│ │ ├── config-win32.h
│ │ ├── config-win32ce.h
│ │ ├── conncache.c
│ │ ├── conncache.h
│ │ ├── connect.c
│ │ ├── connect.h
│ │ ├── content_encoding.c
│ │ ├── content_encoding.h
│ │ ├── cookie.c
│ │ ├── cookie.h
│ │ ├── curl_addrinfo.c
│ │ ├── curl_addrinfo.h
│ │ ├── curl_base64.h
│ │ ├── curl_config.h.cmake
│ │ ├── curl_config.h.in
│ │ ├── curl_ctype.c
│ │ ├── curl_ctype.h
│ │ ├── curl_des.c
│ │ ├── curl_des.h
│ │ ├── curl_endian.c
│ │ ├── curl_endian.h
│ │ ├── curl_fnmatch.c
│ │ ├── curl_fnmatch.h
│ │ ├── curl_gethostname.c
│ │ ├── curl_gethostname.h
│ │ ├── curl_gssapi.c
│ │ ├── curl_gssapi.h
│ │ ├── curl_hmac.h
│ │ ├── curl_ldap.h
│ │ ├── curl_md4.h
│ │ ├── curl_md5.h
│ │ ├── curl_memory.h
│ │ ├── curl_memrchr.c
│ │ ├── curl_memrchr.h
│ │ ├── curl_multibyte.c
│ │ ├── curl_multibyte.h
│ │ ├── curl_ntlm_core.c
│ │ ├── curl_ntlm_core.h
│ │ ├── curl_ntlm_wb.c
│ │ ├── curl_ntlm_wb.h
│ │ ├── curl_path.c
│ │ ├── curl_path.h
│ │ ├── curl_printf.h
│ │ ├── curl_range.c
│ │ ├── curl_range.h
│ │ ├── curl_rtmp.c
│ │ ├── curl_rtmp.h
│ │ ├── curl_sasl.c
│ │ ├── curl_sasl.h
│ │ ├── curl_sec.h
│ │ ├── curl_setup.h
│ │ ├── curl_setup_once.h
│ │ ├── curl_sha256.h
│ │ ├── curl_sspi.c
│ │ ├── curl_sspi.h
│ │ ├── curl_threads.c
│ │ ├── curl_threads.h
│ │ ├── curlx.h
│ │ ├── dict.c
│ │ ├── dict.h
│ │ ├── dotdot.c
│ │ ├── dotdot.h
│ │ ├── easy.c
│ │ ├── easyif.h
│ │ ├── escape.c
│ │ ├── escape.h
│ │ ├── file.c
│ │ ├── file.h
│ │ ├── fileinfo.c
│ │ ├── fileinfo.h
│ │ ├── firefox-db2pem.sh
│ │ ├── formdata.c
│ │ ├── formdata.h
│ │ ├── ftp.c
│ │ ├── ftp.h
│ │ ├── ftplistparser.c
│ │ ├── ftplistparser.h
│ │ ├── getenv.c
│ │ ├── getinfo.c
│ │ ├── getinfo.h
│ │ ├── gopher.c
│ │ ├── gopher.h
│ │ ├── hash.c
│ │ ├── hash.h
│ │ ├── hmac.c
│ │ ├── hostasyn.c
│ │ ├── hostcheck.c
│ │ ├── hostcheck.h
│ │ ├── hostip.c
│ │ ├── hostip.h
│ │ ├── hostip4.c
│ │ ├── hostip6.c
│ │ ├── hostsyn.c
│ │ ├── http.c
│ │ ├── http.h
│ │ ├── http2.c
│ │ ├── http2.h
│ │ ├── http_chunks.c
│ │ ├── http_chunks.h
│ │ ├── http_digest.c
│ │ ├── http_digest.h
│ │ ├── http_negotiate.c
│ │ ├── http_negotiate.h
│ │ ├── http_ntlm.c
│ │ ├── http_ntlm.h
│ │ ├── http_proxy.c
│ │ ├── http_proxy.h
│ │ ├── idn_win32.c
│ │ ├── if2ip.c
│ │ ├── if2ip.h
│ │ ├── imap.c
│ │ ├── imap.h
│ │ ├── inet_ntop.c
│ │ ├── inet_ntop.h
│ │ ├── inet_pton.c
│ │ ├── inet_pton.h
│ │ ├── krb5.c
│ │ ├── ldap.c
│ │ ├── libcurl.plist
│ │ ├── libcurl.rc
│ │ ├── libcurl.vers.in
│ │ ├── llist.c
│ │ ├── llist.h
│ │ ├── makefile.amiga
│ │ ├── makefile.dj
│ │ ├── md4.c
│ │ ├── md5.c
│ │ ├── memdebug.c
│ │ ├── memdebug.h
│ │ ├── mime.c
│ │ ├── mime.h
│ │ ├── mk-ca-bundle.pl
│ │ ├── mk-ca-bundle.vbs
│ │ ├── mprintf.c
│ │ ├── multi.c
│ │ ├── multihandle.h
│ │ ├── multiif.h
│ │ ├── netrc.c
│ │ ├── netrc.h
│ │ ├── non-ascii.c
│ │ ├── non-ascii.h
│ │ ├── nonblock.c
│ │ ├── nonblock.h
│ │ ├── nwlib.c
│ │ ├── nwos.c
│ │ ├── objnames-test08.sh
│ │ ├── objnames-test10.sh
│ │ ├── objnames.inc
│ │ ├── openldap.c
│ │ ├── parsedate.c
│ │ ├── parsedate.h
│ │ ├── pingpong.c
│ │ ├── pingpong.h
│ │ ├── pipeline.c
│ │ ├── pipeline.h
│ │ ├── pop3.c
│ │ ├── pop3.h
│ │ ├── progress.c
│ │ ├── progress.h
│ │ ├── rand.c
│ │ ├── rand.h
│ │ ├── rtsp.c
│ │ ├── rtsp.h
│ │ ├── security.c
│ │ ├── select.c
│ │ ├── select.h
│ │ ├── sendf.c
│ │ ├── sendf.h
│ │ ├── setopt.c
│ │ ├── setopt.h
│ │ ├── setup-os400.h
│ │ ├── setup-vms.h
│ │ ├── sha256.c
│ │ ├── share.c
│ │ ├── share.h
│ │ ├── sigpipe.h
│ │ ├── slist.c
│ │ ├── slist.h
│ │ ├── smb.c
│ │ ├── smb.h
│ │ ├── smtp.c
│ │ ├── smtp.h
│ │ ├── sockaddr.h
│ │ ├── socks.c
│ │ ├── socks.h
│ │ ├── socks_gssapi.c
│ │ ├── socks_sspi.c
│ │ ├── speedcheck.c
│ │ ├── speedcheck.h
│ │ ├── splay.c
│ │ ├── splay.h
│ │ ├── ssh-libssh.c
│ │ ├── ssh.c
│ │ ├── ssh.h
│ │ ├── strcase.c
│ │ ├── strcase.h
│ │ ├── strdup.c
│ │ ├── strdup.h
│ │ ├── strerror.c
│ │ ├── strerror.h
│ │ ├── strtok.c
│ │ ├── strtok.h
│ │ ├── strtoofft.c
│ │ ├── strtoofft.h
│ │ ├── system_win32.c
│ │ ├── system_win32.h
│ │ ├── telnet.c
│ │ ├── telnet.h
│ │ ├── tftp.c
│ │ ├── tftp.h
│ │ ├── timeval.c
│ │ ├── timeval.h
│ │ ├── transfer.c
│ │ ├── transfer.h
│ │ ├── url.c
│ │ ├── url.h
│ │ ├── urldata.h
│ │ ├── vauth/
│ │ │ ├── cleartext.c
│ │ │ ├── cram.c
│ │ │ ├── digest.c
│ │ │ ├── digest.h
│ │ │ ├── digest_sspi.c
│ │ │ ├── krb5_gssapi.c
│ │ │ ├── krb5_sspi.c
│ │ │ ├── ntlm.c
│ │ │ ├── ntlm.h
│ │ │ ├── ntlm_sspi.c
│ │ │ ├── oauth2.c
│ │ │ ├── spnego_gssapi.c
│ │ │ ├── spnego_sspi.c
│ │ │ ├── vauth.c
│ │ │ └── vauth.h
│ │ ├── version.c
│ │ ├── vtls/
│ │ │ ├── axtls.c
│ │ │ ├── axtls.h
│ │ │ ├── cyassl.c
│ │ │ ├── cyassl.h
│ │ │ ├── darwinssl.c
│ │ │ ├── darwinssl.h
│ │ │ ├── gskit.c
│ │ │ ├── gskit.h
│ │ │ ├── gtls.c
│ │ │ ├── gtls.h
│ │ │ ├── mbedtls.c
│ │ │ ├── mbedtls.h
│ │ │ ├── nss.c
│ │ │ ├── nssg.h
│ │ │ ├── openssl.c
│ │ │ ├── openssl.h
│ │ │ ├── polarssl.c
│ │ │ ├── polarssl.h
│ │ │ ├── polarssl_threadlock.c
│ │ │ ├── polarssl_threadlock.h
│ │ │ ├── schannel.c
│ │ │ ├── schannel.h
│ │ │ ├── vtls.c
│ │ │ └── vtls.h
│ │ ├── warnless.c
│ │ ├── warnless.h
│ │ ├── wildcard.c
│ │ ├── wildcard.h
│ │ ├── x509asn1.c
│ │ └── x509asn1.h
│ ├── libcurl.pc.in
│ ├── ltmain.sh
│ ├── m4/
│ │ ├── ax_code_coverage.m4
│ │ ├── curl-compilers.m4
│ │ ├── curl-confopts.m4
│ │ ├── curl-functions.m4
│ │ ├── curl-openssl.m4
│ │ ├── curl-override.m4
│ │ ├── curl-reentrant.m4
│ │ ├── libtool.m4
│ │ ├── ltoptions.m4
│ │ ├── ltsugar.m4
│ │ ├── ltversion.m4
│ │ ├── lt~obsolete.m4
│ │ ├── xc-am-iface.m4
│ │ ├── xc-cc-check.m4
│ │ ├── xc-lt-iface.m4
│ │ ├── xc-translit.m4
│ │ ├── xc-val-flgs.m4
│ │ ├── zz40-xc-ovr.m4
│ │ ├── zz50-xc-ovr.m4
│ │ └── zz60-xc-ovr.m4
│ ├── maketgz
│ ├── missing
│ ├── packages/
│ │ ├── AIX/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ └── RPM/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ └── curl.spec.in
│ │ ├── Android/
│ │ │ └── Android.mk
│ │ ├── DOS/
│ │ │ ├── README
│ │ │ └── common.dj
│ │ ├── EPM/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ └── curl.list.in
│ │ ├── Linux/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ └── RPM/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ ├── curl-ssl.spec.in
│ │ │ ├── curl.spec.in
│ │ │ └── make_curl_rpm
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── NetWare/
│ │ │ ├── get_exp.awk
│ │ │ └── get_ver.awk
│ │ ├── OS400/
│ │ │ ├── README.OS400
│ │ │ ├── ccsidcurl.c
│ │ │ ├── ccsidcurl.h
│ │ │ ├── curl.inc.in
│ │ │ ├── initscript.sh
│ │ │ ├── make-include.sh
│ │ │ ├── make-lib.sh
│ │ │ ├── make-src.sh
│ │ │ ├── make-tests.sh
│ │ │ ├── makefile.sh
│ │ │ ├── os400sys.c
│ │ │ └── os400sys.h
│ │ ├── README
│ │ ├── Solaris/
│ │ │ ├── Makefile.am
│ │ │ └── Makefile.in
│ │ ├── Symbian/
│ │ │ ├── bwins/
│ │ │ │ └── libcurlu.def
│ │ │ ├── eabi/
│ │ │ │ └── libcurlu.def
│ │ │ ├── group/
│ │ │ │ ├── bld.inf
│ │ │ │ ├── curl.iby
│ │ │ │ ├── curl.mmp
│ │ │ │ ├── curl.pkg
│ │ │ │ ├── libcurl.iby
│ │ │ │ ├── libcurl.mmp
│ │ │ │ └── libcurl.pkg
│ │ │ └── readme.txt
│ │ ├── TPF/
│ │ │ ├── curl.mak
│ │ │ ├── maketpf.env_curl
│ │ │ └── maketpf.env_curllib
│ │ ├── Win32/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ └── cygwin/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ └── README
│ │ └── vms/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── backup_gnv_curl_src.com
│ │ ├── build_curl-config_script.com
│ │ ├── build_gnv_curl.com
│ │ ├── build_gnv_curl_pcsi_desc.com
│ │ ├── build_gnv_curl_pcsi_text.com
│ │ ├── build_gnv_curl_release_notes.com
│ │ ├── build_libcurl_pc.com
│ │ ├── build_vms.com
│ │ ├── clean_gnv_curl.com
│ │ ├── compare_curl_source.com
│ │ ├── config_h.com
│ │ ├── curl_crtl_init.c
│ │ ├── curl_gnv_build_steps.txt
│ │ ├── curl_release_note_start.txt
│ │ ├── curl_startup.com
│ │ ├── curlmsg.h
│ │ ├── curlmsg.msg
│ │ ├── curlmsg.sdl
│ │ ├── curlmsg_vms.h
│ │ ├── generate_config_vms_h_curl.com
│ │ ├── generate_vax_transfer.com
│ │ ├── gnv_conftest.c_first
│ │ ├── gnv_curl_configure.sh
│ │ ├── gnv_libcurl_symbols.opt
│ │ ├── gnv_link_curl.com
│ │ ├── macro32_exactcase.patch
│ │ ├── make_gnv_curl_install.sh
│ │ ├── make_pcsi_curl_kit_name.com
│ │ ├── pcsi_gnv_curl_file_list.txt
│ │ ├── pcsi_product_gnv_curl.com
│ │ ├── readme
│ │ ├── report_openssl_version.c
│ │ ├── setup_gnv_curl_build.com
│ │ ├── stage_curl_install.com
│ │ └── vms_eco_level.h
│ ├── projects/
│ │ ├── README
│ │ ├── Windows/
│ │ │ ├── VC10/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC11/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC12/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC14/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC15/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC6/
│ │ │ │ ├── curl-all.dsw
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.dsp
│ │ │ │ │ └── libcurl.dsw
│ │ │ │ └── src/
│ │ │ │ ├── curl.dsp
│ │ │ │ └── curl.dsw
│ │ │ ├── VC7/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ └── libcurl.vcproj
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ └── curl.vcproj
│ │ │ ├── VC7.1/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ └── libcurl.vcproj
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ └── curl.vcproj
│ │ │ ├── VC8/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ └── libcurl.vcproj
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ └── curl.vcproj
│ │ │ └── VC9/
│ │ │ ├── curl-all.sln
│ │ │ ├── lib/
│ │ │ │ ├── libcurl.sln
│ │ │ │ └── libcurl.vcproj
│ │ │ └── src/
│ │ │ ├── curl.sln
│ │ │ └── curl.vcproj
│ │ ├── build-openssl.bat
│ │ ├── build-wolfssl.bat
│ │ ├── checksrc.bat
│ │ ├── generate.bat
│ │ ├── wolfssl_options.h
│ │ └── wolfssl_override.props
│ ├── scripts/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── coverage.sh
│ │ ├── updatemanpages.pl
│ │ └── zsh.pl
│ ├── src/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile.Watcom
│ │ ├── Makefile.am
│ │ ├── Makefile.b32
│ │ ├── Makefile.in
│ │ ├── Makefile.inc
│ │ ├── Makefile.m32
│ │ ├── Makefile.netware
│ │ ├── curl.rc
│ │ ├── macos/
│ │ │ ├── MACINSTALL.TXT
│ │ │ ├── curl.mcp.xml.sit.hqx
│ │ │ └── src/
│ │ │ ├── curl_GUSIConfig.cpp
│ │ │ └── macos_main.cpp
│ │ ├── makefile.amiga
│ │ ├── makefile.dj
│ │ ├── mkhelp.pl
│ │ ├── slist_wc.c
│ │ ├── slist_wc.h
│ │ ├── tool_binmode.c
│ │ ├── tool_binmode.h
│ │ ├── tool_bname.c
│ │ ├── tool_bname.h
│ │ ├── tool_cb_dbg.c
│ │ ├── tool_cb_dbg.h
│ │ ├── tool_cb_hdr.c
│ │ ├── tool_cb_hdr.h
│ │ ├── tool_cb_prg.c
│ │ ├── tool_cb_prg.h
│ │ ├── tool_cb_rea.c
│ │ ├── tool_cb_rea.h
│ │ ├── tool_cb_see.c
│ │ ├── tool_cb_see.h
│ │ ├── tool_cb_wrt.c
│ │ ├── tool_cb_wrt.h
│ │ ├── tool_cfgable.c
│ │ ├── tool_cfgable.h
│ │ ├── tool_convert.c
│ │ ├── tool_convert.h
│ │ ├── tool_dirhie.c
│ │ ├── tool_dirhie.h
│ │ ├── tool_doswin.c
│ │ ├── tool_doswin.h
│ │ ├── tool_easysrc.c
│ │ ├── tool_easysrc.h
│ │ ├── tool_filetime.c
│ │ ├── tool_filetime.h
│ │ ├── tool_formparse.c
│ │ ├── tool_formparse.h
│ │ ├── tool_getparam.c
│ │ ├── tool_getparam.h
│ │ ├── tool_getpass.c
│ │ ├── tool_getpass.h
│ │ ├── tool_help.c
│ │ ├── tool_help.h
│ │ ├── tool_helpers.c
│ │ ├── tool_helpers.h
│ │ ├── tool_homedir.c
│ │ ├── tool_homedir.h
│ │ ├── tool_hugehelp.c
│ │ ├── tool_hugehelp.h
│ │ ├── tool_libinfo.c
│ │ ├── tool_libinfo.h
│ │ ├── tool_main.c
│ │ ├── tool_main.h
│ │ ├── tool_metalink.c
│ │ ├── tool_metalink.h
│ │ ├── tool_msgs.c
│ │ ├── tool_msgs.h
│ │ ├── tool_operate.c
│ │ ├── tool_operate.h
│ │ ├── tool_operhlp.c
│ │ ├── tool_operhlp.h
│ │ ├── tool_panykey.c
│ │ ├── tool_panykey.h
│ │ ├── tool_paramhlp.c
│ │ ├── tool_paramhlp.h
│ │ ├── tool_parsecfg.c
│ │ ├── tool_parsecfg.h
│ │ ├── tool_sdecls.h
│ │ ├── tool_setopt.c
│ │ ├── tool_setopt.h
│ │ ├── tool_setup.h
│ │ ├── tool_sleep.c
│ │ ├── tool_sleep.h
│ │ ├── tool_strdup.c
│ │ ├── tool_strdup.h
│ │ ├── tool_urlglob.c
│ │ ├── tool_urlglob.h
│ │ ├── tool_util.c
│ │ ├── tool_util.h
│ │ ├── tool_version.h
│ │ ├── tool_vms.c
│ │ ├── tool_vms.h
│ │ ├── tool_writeout.c
│ │ ├── tool_writeout.h
│ │ ├── tool_xattr.c
│ │ └── tool_xattr.h
│ ├── test-driver
│ ├── tests/
│ │ ├── CMakeLists.txt
│ │ ├── FILEFORMAT
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── README
│ │ ├── certs/
│ │ │ ├── EdelCurlRoot-ca.cacert
│ │ │ ├── EdelCurlRoot-ca.cnf
│ │ │ ├── EdelCurlRoot-ca.crt
│ │ │ ├── EdelCurlRoot-ca.csr
│ │ │ ├── EdelCurlRoot-ca.der
│ │ │ ├── EdelCurlRoot-ca.key
│ │ │ ├── EdelCurlRoot-ca.prm
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Server-localhost-sv.crl
│ │ │ ├── Server-localhost-sv.crt
│ │ │ ├── Server-localhost-sv.csr
│ │ │ ├── Server-localhost-sv.der
│ │ │ ├── Server-localhost-sv.dhp
│ │ │ ├── Server-localhost-sv.key
│ │ │ ├── Server-localhost-sv.pem
│ │ │ ├── Server-localhost-sv.prm
│ │ │ ├── Server-localhost-sv.pub.der
│ │ │ ├── Server-localhost-sv.pub.pem
│ │ │ ├── Server-localhost.nn-sv.crl
│ │ │ ├── Server-localhost.nn-sv.crt
│ │ │ ├── Server-localhost.nn-sv.csr
│ │ │ ├── Server-localhost.nn-sv.der
│ │ │ ├── Server-localhost.nn-sv.dhp
│ │ │ ├── Server-localhost.nn-sv.key
│ │ │ ├── Server-localhost.nn-sv.pem
│ │ │ ├── Server-localhost.nn-sv.prm
│ │ │ ├── Server-localhost.nn-sv.pub.der
│ │ │ ├── Server-localhost.nn-sv.pub.pem
│ │ │ ├── Server-localhost0h-sv.crl
│ │ │ ├── Server-localhost0h-sv.crt
│ │ │ ├── Server-localhost0h-sv.csr
│ │ │ ├── Server-localhost0h-sv.der
│ │ │ ├── Server-localhost0h-sv.dhp
│ │ │ ├── Server-localhost0h-sv.key
│ │ │ ├── Server-localhost0h-sv.pem
│ │ │ ├── Server-localhost0h-sv.prm
│ │ │ ├── Server-localhost0h-sv.pub.der
│ │ │ ├── Server-localhost0h-sv.pub.pem
│ │ │ ├── scripts/
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── genroot.sh
│ │ │ │ └── genserv.sh
│ │ │ ├── srp-verifier-conf
│ │ │ └── srp-verifier-db
│ │ ├── curl_test_data.py
│ │ ├── data/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── DISABLED
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── test1
│ │ │ ├── test10
│ │ │ ├── test100
│ │ │ ├── test1000
│ │ │ ├── test1001
│ │ │ ├── test1002
│ │ │ ├── test1003
│ │ │ ├── test1004
│ │ │ ├── test1005
│ │ │ ├── test1006
│ │ │ ├── test1007
│ │ │ ├── test1008
│ │ │ ├── test1009
│ │ │ ├── test101
│ │ │ ├── test1010
│ │ │ ├── test1011
│ │ │ ├── test1012
│ │ │ ├── test1013
│ │ │ ├── test1014
│ │ │ ├── test1015
│ │ │ ├── test1016
│ │ │ ├── test1017
│ │ │ ├── test1018
│ │ │ ├── test1019
│ │ │ ├── test102
│ │ │ ├── test1020
│ │ │ ├── test1021
│ │ │ ├── test1022
│ │ │ ├── test1023
│ │ │ ├── test1024
│ │ │ ├── test1025
│ │ │ ├── test1026
│ │ │ ├── test1027
│ │ │ ├── test1028
│ │ │ ├── test1029
│ │ │ ├── test103
│ │ │ ├── test1030
│ │ │ ├── test1031
│ │ │ ├── test1032
│ │ │ ├── test1033
│ │ │ ├── test1034
│ │ │ ├── test1035
│ │ │ ├── test1036
│ │ │ ├── test1037
│ │ │ ├── test1038
│ │ │ ├── test1039
│ │ │ ├── test104
│ │ │ ├── test1040
│ │ │ ├── test1041
│ │ │ ├── test1042
│ │ │ ├── test1043
│ │ │ ├── test1044
│ │ │ ├── test1045
│ │ │ ├── test1046
│ │ │ ├── test1047
│ │ │ ├── test1048
│ │ │ ├── test1049
│ │ │ ├── test105
│ │ │ ├── test1050
│ │ │ ├── test1051
│ │ │ ├── test1052
│ │ │ ├── test1053
│ │ │ ├── test1054
│ │ │ ├── test1055
│ │ │ ├── test1056
│ │ │ ├── test1057
│ │ │ ├── test1058
│ │ │ ├── test1059
│ │ │ ├── test106
│ │ │ ├── test1060
│ │ │ ├── test1061
│ │ │ ├── test1062
│ │ │ ├── test1063
│ │ │ ├── test1064
│ │ │ ├── test1065
│ │ │ ├── test1066
│ │ │ ├── test1067
│ │ │ ├── test1068
│ │ │ ├── test1069
│ │ │ ├── test107
│ │ │ ├── test1070
│ │ │ ├── test1071
│ │ │ ├── test1072
│ │ │ ├── test1073
│ │ │ ├── test1074
│ │ │ ├── test1075
│ │ │ ├── test1076
│ │ │ ├── test1077
│ │ │ ├── test1078
│ │ │ ├── test1079
│ │ │ ├── test108
│ │ │ ├── test1080
│ │ │ ├── test1081
│ │ │ ├── test1082
│ │ │ ├── test1083
│ │ │ ├── test1084
│ │ │ ├── test1085
│ │ │ ├── test1086
│ │ │ ├── test1087
│ │ │ ├── test1088
│ │ │ ├── test1089
│ │ │ ├── test109
│ │ │ ├── test1090
│ │ │ ├── test1091
│ │ │ ├── test1092
│ │ │ ├── test1093
│ │ │ ├── test1094
│ │ │ ├── test1095
│ │ │ ├── test1096
│ │ │ ├── test1097
│ │ │ ├── test1098
│ │ │ ├── test1099
│ │ │ ├── test11
│ │ │ ├── test110
│ │ │ ├── test1100
│ │ │ ├── test1101
│ │ │ ├── test1102
│ │ │ ├── test1103
│ │ │ ├── test1104
│ │ │ ├── test1105
│ │ │ ├── test1106
│ │ │ ├── test1107
│ │ │ ├── test1108
│ │ │ ├── test1109
│ │ │ ├── test111
│ │ │ ├── test1110
│ │ │ ├── test1111
│ │ │ ├── test1112
│ │ │ ├── test1113
│ │ │ ├── test1114
│ │ │ ├── test1115
│ │ │ ├── test1116
│ │ │ ├── test1117
│ │ │ ├── test1118
│ │ │ ├── test1119
│ │ │ ├── test112
│ │ │ ├── test1120
│ │ │ ├── test1121
│ │ │ ├── test1122
│ │ │ ├── test1123
│ │ │ ├── test1124
│ │ │ ├── test1125
│ │ │ ├── test1126
│ │ │ ├── test1127
│ │ │ ├── test1128
│ │ │ ├── test1129
│ │ │ ├── test113
│ │ │ ├── test1130
│ │ │ ├── test1131
│ │ │ ├── test1132
│ │ │ ├── test1133
│ │ │ ├── test1134
│ │ │ ├── test1135
│ │ │ ├── test1136
│ │ │ ├── test1137
│ │ │ ├── test1138
│ │ │ ├── test1139
│ │ │ ├── test114
│ │ │ ├── test1140
│ │ │ ├── test1141
│ │ │ ├── test1142
│ │ │ ├── test1143
│ │ │ ├── test1144
│ │ │ ├── test1145
│ │ │ ├── test1146
│ │ │ ├── test1147
│ │ │ ├── test1148
│ │ │ ├── test1149
│ │ │ ├── test115
│ │ │ ├── test1150
│ │ │ ├── test1151
│ │ │ ├── test1152
│ │ │ ├── test1153
│ │ │ ├── test1154
│ │ │ ├── test116
│ │ │ ├── test1160
│ │ │ ├── test1161
│ │ │ ├── test1162
│ │ │ ├── test1163
│ │ │ ├── test117
│ │ │ ├── test1170
│ │ │ ├── test1171
│ │ │ ├── test118
│ │ │ ├── test119
│ │ │ ├── test12
│ │ │ ├── test120
│ │ │ ├── test1200
│ │ │ ├── test1201
│ │ │ ├── test1202
│ │ │ ├── test1203
│ │ │ ├── test1204
│ │ │ ├── test1205
│ │ │ ├── test1206
│ │ │ ├── test1207
│ │ │ ├── test1208
│ │ │ ├── test1209
│ │ │ ├── test121
│ │ │ ├── test1210
│ │ │ ├── test1211
│ │ │ ├── test1212
│ │ │ ├── test1213
│ │ │ ├── test1214
│ │ │ ├── test1215
│ │ │ ├── test1216
│ │ │ ├── test1217
│ │ │ ├── test1218
│ │ │ ├── test1219
│ │ │ ├── test122
│ │ │ ├── test1220
│ │ │ ├── test1221
│ │ │ ├── test1222
│ │ │ ├── test1223
│ │ │ ├── test1224
│ │ │ ├── test1225
│ │ │ ├── test1226
│ │ │ ├── test1227
│ │ │ ├── test1228
│ │ │ ├── test1229
│ │ │ ├── test123
│ │ │ ├── test1230
│ │ │ ├── test1231
│ │ │ ├── test1232
│ │ │ ├── test1233
│ │ │ ├── test1234
│ │ │ ├── test1235
│ │ │ ├── test1236
│ │ │ ├── test1237
│ │ │ ├── test1238
│ │ │ ├── test1239
│ │ │ ├── test124
│ │ │ ├── test1240
│ │ │ ├── test1241
│ │ │ ├── test1242
│ │ │ ├── test1243
│ │ │ ├── test1244
│ │ │ ├── test1245
│ │ │ ├── test1246
│ │ │ ├── test1247
│ │ │ ├── test1248
│ │ │ ├── test1249
│ │ │ ├── test125
│ │ │ ├── test1250
│ │ │ ├── test1251
│ │ │ ├── test1252
│ │ │ ├── test1253
│ │ │ ├── test1254
│ │ │ ├── test1255
│ │ │ ├── test1256
│ │ │ ├── test1257
│ │ │ ├── test1258
│ │ │ ├── test1259
│ │ │ ├── test126
│ │ │ ├── test1260
│ │ │ ├── test1261
│ │ │ ├── test1262
│ │ │ ├── test1263
│ │ │ ├── test1264
│ │ │ ├── test1265
│ │ │ ├── test127
│ │ │ ├── test128
│ │ │ ├── test1280
│ │ │ ├── test1281
│ │ │ ├── test1282
│ │ │ ├── test1283
│ │ │ ├── test1284
│ │ │ ├── test1285
│ │ │ ├── test1286
│ │ │ ├── test1287
│ │ │ ├── test1288
│ │ │ ├── test1289
│ │ │ ├── test129
│ │ │ ├── test1290
│ │ │ ├── test1291
│ │ │ ├── test1292
│ │ │ ├── test1298
│ │ │ ├── test1299
│ │ │ ├── test13
│ │ │ ├── test130
│ │ │ ├── test1300
│ │ │ ├── test1301
│ │ │ ├── test1302
│ │ │ ├── test1303
│ │ │ ├── test1304
│ │ │ ├── test1305
│ │ │ ├── test1306
│ │ │ ├── test1307
│ │ │ ├── test1308
│ │ │ ├── test1309
│ │ │ ├── test131
│ │ │ ├── test1310
│ │ │ ├── test1311
│ │ │ ├── test1312
│ │ │ ├── test1313
│ │ │ ├── test1314
│ │ │ ├── test1315
│ │ │ ├── test1316
│ │ │ ├── test1317
│ │ │ ├── test1318
│ │ │ ├── test1319
│ │ │ ├── test132
│ │ │ ├── test1320
│ │ │ ├── test1321
│ │ │ ├── test1322
│ │ │ ├── test1323
│ │ │ ├── test1324
│ │ │ ├── test1325
│ │ │ ├── test1326
│ │ │ ├── test1327
│ │ │ ├── test1328
│ │ │ ├── test1329
│ │ │ ├── test133
│ │ │ ├── test1330
│ │ │ ├── test1331
│ │ │ ├── test1332
│ │ │ ├── test1333
│ │ │ ├── test1334
│ │ │ ├── test1335
│ │ │ ├── test1336
│ │ │ ├── test1337
│ │ │ ├── test1338
│ │ │ ├── test1339
│ │ │ ├── test134
│ │ │ ├── test1340
│ │ │ ├── test1341
│ │ │ ├── test1342
│ │ │ ├── test1343
│ │ │ ├── test1344
│ │ │ ├── test1345
│ │ │ ├── test1346
│ │ │ ├── test1347
│ │ │ ├── test1348
│ │ │ ├── test1349
│ │ │ ├── test135
│ │ │ ├── test1350
│ │ │ ├── test1351
│ │ │ ├── test1352
│ │ │ ├── test1353
│ │ │ ├── test1354
│ │ │ ├── test1355
│ │ │ ├── test1356
│ │ │ ├── test1357
│ │ │ ├── test1358
│ │ │ ├── test1359
│ │ │ ├── test136
│ │ │ ├── test1360
│ │ │ ├── test1361
│ │ │ ├── test1362
│ │ │ ├── test1363
│ │ │ ├── test1364
│ │ │ ├── test1365
│ │ │ ├── test1366
│ │ │ ├── test1367
│ │ │ ├── test1368
│ │ │ ├── test1369
│ │ │ ├── test137
│ │ │ ├── test1370
│ │ │ ├── test1371
│ │ │ ├── test1372
│ │ │ ├── test1373
│ │ │ ├── test1374
│ │ │ ├── test1375
│ │ │ ├── test1376
│ │ │ ├── test1377
│ │ │ ├── test1378
│ │ │ ├── test1379
│ │ │ ├── test138
│ │ │ ├── test1380
│ │ │ ├── test1381
│ │ │ ├── test1382
│ │ │ ├── test1383
│ │ │ ├── test1384
│ │ │ ├── test1385
│ │ │ ├── test1386
│ │ │ ├── test1387
│ │ │ ├── test1388
│ │ │ ├── test1389
│ │ │ ├── test139
│ │ │ ├── test1390
│ │ │ ├── test1391
│ │ │ ├── test1392
│ │ │ ├── test1393
│ │ │ ├── test1394
│ │ │ ├── test1395
│ │ │ ├── test1396
│ │ │ ├── test1397
│ │ │ ├── test1398
│ │ │ ├── test1399
│ │ │ ├── test14
│ │ │ ├── test140
│ │ │ ├── test1400
│ │ │ ├── test1401
│ │ │ ├── test1402
│ │ │ ├── test1403
│ │ │ ├── test1404
│ │ │ ├── test1405
│ │ │ ├── test1406
│ │ │ ├── test1407
│ │ │ ├── test1408
│ │ │ ├── test1409
│ │ │ ├── test141
│ │ │ ├── test1410
│ │ │ ├── test1411
│ │ │ ├── test1412
│ │ │ ├── test1413
│ │ │ ├── test1414
│ │ │ ├── test1415
│ │ │ ├── test1416
│ │ │ ├── test1417
│ │ │ ├── test1418
│ │ │ ├── test1419
│ │ │ ├── test142
│ │ │ ├── test1420
│ │ │ ├── test1421
│ │ │ ├── test1422
│ │ │ ├── test1423
│ │ │ ├── test1424
│ │ │ ├── test1425
│ │ │ ├── test1426
│ │ │ ├── test1427
│ │ │ ├── test1428
│ │ │ ├── test1429
│ │ │ ├── test143
│ │ │ ├── test1430
│ │ │ ├── test1431
│ │ │ ├── test1432
│ │ │ ├── test1433
│ │ │ ├── test1434
│ │ │ ├── test1435
│ │ │ ├── test1436
│ │ │ ├── test1437
│ │ │ ├── test1438
│ │ │ ├── test1439
│ │ │ ├── test144
│ │ │ ├── test1440
│ │ │ ├── test1441
│ │ │ ├── test1442
│ │ │ ├── test1443
│ │ │ ├── test1444
│ │ │ ├── test1445
│ │ │ ├── test1446
│ │ │ ├── test1447
│ │ │ ├── test1448
│ │ │ ├── test1449
│ │ │ ├── test145
│ │ │ ├── test1450
│ │ │ ├── test1451
│ │ │ ├── test1452
│ │ │ ├── test1453
│ │ │ ├── test1454
│ │ │ ├── test146
│ │ │ ├── test147
│ │ │ ├── test148
│ │ │ ├── test149
│ │ │ ├── test15
│ │ │ ├── test150
│ │ │ ├── test1500
│ │ │ ├── test1501
│ │ │ ├── test1502
│ │ │ ├── test1503
│ │ │ ├── test1504
│ │ │ ├── test1505
│ │ │ ├── test1506
│ │ │ ├── test1507
│ │ │ ├── test1508
│ │ │ ├── test1509
│ │ │ ├── test151
│ │ │ ├── test1510
│ │ │ ├── test1511
│ │ │ ├── test1512
│ │ │ ├── test1513
│ │ │ ├── test1514
│ │ │ ├── test1515
│ │ │ ├── test1516
│ │ │ ├── test1517
│ │ │ ├── test152
│ │ │ ├── test1520
│ │ │ ├── test1521
│ │ │ ├── test1525
│ │ │ ├── test1526
│ │ │ ├── test1527
│ │ │ ├── test1528
│ │ │ ├── test1529
│ │ │ ├── test153
│ │ │ ├── test1530
│ │ │ ├── test1531
│ │ │ ├── test1532
│ │ │ ├── test1533
│ │ │ ├── test1534
│ │ │ ├── test1535
│ │ │ ├── test1536
│ │ │ ├── test1537
│ │ │ ├── test1538
│ │ │ ├── test154
│ │ │ ├── test1540
│ │ │ ├── test155
│ │ │ ├── test1550
│ │ │ ├── test1551
│ │ │ ├── test1552
│ │ │ ├── test1553
│ │ │ ├── test1554
│ │ │ ├── test1555
│ │ │ ├── test1556
│ │ │ ├── test156
│ │ │ ├── test157
│ │ │ ├── test158
│ │ │ ├── test159
│ │ │ ├── test16
│ │ │ ├── test160
│ │ │ ├── test1600
│ │ │ ├── test1601
│ │ │ ├── test1602
│ │ │ ├── test1603
│ │ │ ├── test1604
│ │ │ ├── test1605
│ │ │ ├── test1606
│ │ │ ├── test1607
│ │ │ ├── test161
│ │ │ ├── test162
│ │ │ ├── test163
│ │ │ ├── test164
│ │ │ ├── test165
│ │ │ ├── test166
│ │ │ ├── test167
│ │ │ ├── test168
│ │ │ ├── test169
│ │ │ ├── test17
│ │ │ ├── test170
│ │ │ ├── test1700
│ │ │ ├── test1701
│ │ │ ├── test1702
│ │ │ ├── test171
│ │ │ ├── test172
│ │ │ ├── test173
│ │ │ ├── test174
│ │ │ ├── test175
│ │ │ ├── test176
│ │ │ ├── test177
│ │ │ ├── test178
│ │ │ ├── test179
│ │ │ ├── test18
│ │ │ ├── test180
│ │ │ ├── test1800
│ │ │ ├── test1801
│ │ │ ├── test181
│ │ │ ├── test182
│ │ │ ├── test183
│ │ │ ├── test184
│ │ │ ├── test185
│ │ │ ├── test186
│ │ │ ├── test187
│ │ │ ├── test188
│ │ │ ├── test189
│ │ │ ├── test19
│ │ │ ├── test190
│ │ │ ├── test1900
│ │ │ ├── test1901
│ │ │ ├── test1902
│ │ │ ├── test1903
│ │ │ ├── test1904
│ │ │ ├── test191
│ │ │ ├── test192
│ │ │ ├── test193
│ │ │ ├── test194
│ │ │ ├── test195
│ │ │ ├── test196
│ │ │ ├── test197
│ │ │ ├── test198
│ │ │ ├── test199
│ │ │ ├── test2
│ │ │ ├── test20
│ │ │ ├── test200
│ │ │ ├── test2000
│ │ │ ├── test2001
│ │ │ ├── test2002
│ │ │ ├── test2003
│ │ │ ├── test2004
│ │ │ ├── test2005
│ │ │ ├── test2006
│ │ │ ├── test2007
│ │ │ ├── test2008
│ │ │ ├── test2009
│ │ │ ├── test201
│ │ │ ├── test2010
│ │ │ ├── test2011
│ │ │ ├── test2012
│ │ │ ├── test2013
│ │ │ ├── test2014
│ │ │ ├── test2015
│ │ │ ├── test2016
│ │ │ ├── test2017
│ │ │ ├── test2018
│ │ │ ├── test2019
│ │ │ ├── test202
│ │ │ ├── test2020
│ │ │ ├── test2021
│ │ │ ├── test2022
│ │ │ ├── test2023
│ │ │ ├── test2024
│ │ │ ├── test2025
│ │ │ ├── test2026
│ │ │ ├── test2027
│ │ │ ├── test2028
│ │ │ ├── test2029
│ │ │ ├── test203
│ │ │ ├── test2030
│ │ │ ├── test2031
│ │ │ ├── test2032
│ │ │ ├── test2033
│ │ │ ├── test2034
│ │ │ ├── test2035
│ │ │ ├── test2036
│ │ │ ├── test2037
│ │ │ ├── test2038
│ │ │ ├── test2039
│ │ │ ├── test204
│ │ │ ├── test2040
│ │ │ ├── test2041
│ │ │ ├── test2042
│ │ │ ├── test2043
│ │ │ ├── test2044
│ │ │ ├── test2045
│ │ │ ├── test2046
│ │ │ ├── test2047
│ │ │ ├── test2048
│ │ │ ├── test2049
│ │ │ ├── test205
│ │ │ ├── test2050
│ │ │ ├── test2051
│ │ │ ├── test2052
│ │ │ ├── test2053
│ │ │ ├── test2054
│ │ │ ├── test2055
│ │ │ ├── test2056
│ │ │ ├── test2057
│ │ │ ├── test2058
│ │ │ ├── test2059
│ │ │ ├── test206
│ │ │ ├── test2060
│ │ │ ├── test2061
│ │ │ ├── test2062
│ │ │ ├── test2063
│ │ │ ├── test2064
│ │ │ ├── test2065
│ │ │ ├── test2066
│ │ │ ├── test2067
│ │ │ ├── test2068
│ │ │ ├── test2069
│ │ │ ├── test207
│ │ │ ├── test2070
│ │ │ ├── test2071
│ │ │ ├── test2072
│ │ │ ├── test2073
│ │ │ ├── test208
│ │ │ ├── test209
│ │ │ ├── test21
│ │ │ ├── test210
│ │ │ ├── test211
│ │ │ ├── test212
│ │ │ ├── test213
│ │ │ ├── test214
│ │ │ ├── test215
│ │ │ ├── test216
│ │ │ ├── test217
│ │ │ ├── test218
│ │ │ ├── test219
│ │ │ ├── test22
│ │ │ ├── test220
│ │ │ ├── test221
│ │ │ ├── test222
│ │ │ ├── test223
│ │ │ ├── test224
│ │ │ ├── test225
│ │ │ ├── test226
│ │ │ ├── test227
│ │ │ ├── test228
│ │ │ ├── test229
│ │ │ ├── test23
│ │ │ ├── test230
│ │ │ ├── test231
│ │ │ ├── test232
│ │ │ ├── test233
│ │ │ ├── test234
│ │ │ ├── test235
│ │ │ ├── test236
│ │ │ ├── test237
│ │ │ ├── test238
│ │ │ ├── test239
│ │ │ ├── test24
│ │ │ ├── test240
│ │ │ ├── test241
│ │ │ ├── test242
│ │ │ ├── test243
│ │ │ ├── test244
│ │ │ ├── test245
│ │ │ ├── test246
│ │ │ ├── test247
│ │ │ ├── test248
│ │ │ ├── test249
│ │ │ ├── test25
│ │ │ ├── test250
│ │ │ ├── test251
│ │ │ ├── test252
│ │ │ ├── test253
│ │ │ ├── test254
│ │ │ ├── test255
│ │ │ ├── test256
│ │ │ ├── test257
│ │ │ ├── test258
│ │ │ ├── test259
│ │ │ ├── test26
│ │ │ ├── test260
│ │ │ ├── test261
│ │ │ ├── test262
│ │ │ ├── test263
│ │ │ ├── test264
│ │ │ ├── test265
│ │ │ ├── test266
│ │ │ ├── test267
│ │ │ ├── test268
│ │ │ ├── test269
│ │ │ ├── test27
│ │ │ ├── test270
│ │ │ ├── test271
│ │ │ ├── test272
│ │ │ ├── test273
│ │ │ ├── test274
│ │ │ ├── test275
│ │ │ ├── test276
│ │ │ ├── test277
│ │ │ ├── test278
│ │ │ ├── test279
│ │ │ ├── test28
│ │ │ ├── test280
│ │ │ ├── test281
│ │ │ ├── test282
│ │ │ ├── test283
│ │ │ ├── test284
│ │ │ ├── test285
│ │ │ ├── test286
│ │ │ ├── test287
│ │ │ ├── test288
│ │ │ ├── test289
│ │ │ ├── test29
│ │ │ ├── test290
│ │ │ ├── test291
│ │ │ ├── test292
│ │ │ ├── test293
│ │ │ ├── test294
│ │ │ ├── test295
│ │ │ ├── test296
│ │ │ ├── test297
│ │ │ ├── test298
│ │ │ ├── test299
│ │ │ ├── test3
│ │ │ ├── test30
│ │ │ ├── test300
│ │ │ ├── test301
│ │ │ ├── test302
│ │ │ ├── test303
│ │ │ ├── test304
│ │ │ ├── test305
│ │ │ ├── test306
│ │ │ ├── test307
│ │ │ ├── test308
│ │ │ ├── test309
│ │ │ ├── test31
│ │ │ ├── test310
│ │ │ ├── test311
│ │ │ ├── test312
│ │ │ ├── test313
│ │ │ ├── test314
│ │ │ ├── test315
│ │ │ ├── test316
│ │ │ ├── test317
│ │ │ ├── test318
│ │ │ ├── test319
│ │ │ ├── test32
│ │ │ ├── test320
│ │ │ ├── test321
│ │ │ ├── test322
│ │ │ ├── test323
│ │ │ ├── test324
│ │ │ ├── test325
│ │ │ ├── test326
│ │ │ ├── test33
│ │ │ ├── test34
│ │ │ ├── test340
│ │ │ ├── test35
│ │ │ ├── test350
│ │ │ ├── test351
│ │ │ ├── test352
│ │ │ ├── test353
│ │ │ ├── test354
│ │ │ ├── test36
│ │ │ ├── test37
│ │ │ ├── test38
│ │ │ ├── test39
│ │ │ ├── test393
│ │ │ ├── test394
│ │ │ ├── test395
│ │ │ ├── test4
│ │ │ ├── test40
│ │ │ ├── test400
│ │ │ ├── test401
│ │ │ ├── test402
│ │ │ ├── test403
│ │ │ ├── test404
│ │ │ ├── test405
│ │ │ ├── test406
│ │ │ ├── test407
│ │ │ ├── test408
│ │ │ ├── test409
│ │ │ ├── test41
│ │ │ ├── test42
│ │ │ ├── test43
│ │ │ ├── test44
│ │ │ ├── test45
│ │ │ ├── test46
│ │ │ ├── test47
│ │ │ ├── test48
│ │ │ ├── test49
│ │ │ ├── test5
│ │ │ ├── test50
│ │ │ ├── test500
│ │ │ ├── test501
│ │ │ ├── test502
│ │ │ ├── test503
│ │ │ ├── test504
│ │ │ ├── test505
│ │ │ ├── test506
│ │ │ ├── test507
│ │ │ ├── test508
│ │ │ ├── test509
│ │ │ ├── test51
│ │ │ ├── test510
│ │ │ ├── test511
│ │ │ ├── test512
│ │ │ ├── test513
│ │ │ ├── test514
│ │ │ ├── test515
│ │ │ ├── test516
│ │ │ ├── test517
│ │ │ ├── test518
│ │ │ ├── test519
│ │ │ ├── test52
│ │ │ ├── test520
│ │ │ ├── test521
│ │ │ ├── test522
│ │ │ ├── test523
│ │ │ ├── test524
│ │ │ ├── test525
│ │ │ ├── test526
│ │ │ ├── test527
│ │ │ ├── test528
│ │ │ ├── test529
│ │ │ ├── test53
│ │ │ ├── test530
│ │ │ ├── test531
│ │ │ ├── test532
│ │ │ ├── test533
│ │ │ ├── test534
│ │ │ ├── test535
│ │ │ ├── test536
│ │ │ ├── test537
│ │ │ ├── test538
│ │ │ ├── test539
│ │ │ ├── test54
│ │ │ ├── test540
│ │ │ ├── test541
│ │ │ ├── test542
│ │ │ ├── test543
│ │ │ ├── test544
│ │ │ ├── test545
│ │ │ ├── test546
│ │ │ ├── test547
│ │ │ ├── test548
│ │ │ ├── test549
│ │ │ ├── test55
│ │ │ ├── test550
│ │ │ ├── test551
│ │ │ ├── test552
│ │ │ ├── test553
│ │ │ ├── test554
│ │ │ ├── test555
│ │ │ ├── test556
│ │ │ ├── test557
│ │ │ ├── test558
│ │ │ ├── test559
│ │ │ ├── test56
│ │ │ ├── test560
│ │ │ ├── test561
│ │ │ ├── test562
│ │ │ ├── test563
│ │ │ ├── test564
│ │ │ ├── test565
│ │ │ ├── test566
│ │ │ ├── test567
│ │ │ ├── test568
│ │ │ ├── test569
│ │ │ ├── test57
│ │ │ ├── test570
│ │ │ ├── test571
│ │ │ ├── test572
│ │ │ ├── test573
│ │ │ ├── test574
│ │ │ ├── test575
│ │ │ ├── test576
│ │ │ ├── test577
│ │ │ ├── test578
│ │ │ ├── test579
│ │ │ ├── test58
│ │ │ ├── test580
│ │ │ ├── test581
│ │ │ ├── test582
│ │ │ ├── test583
│ │ │ ├── test584
│ │ │ ├── test585
│ │ │ ├── test586
│ │ │ ├── test587
│ │ │ ├── test588
│ │ │ ├── test589
│ │ │ ├── test59
│ │ │ ├── test590
│ │ │ ├── test591
│ │ │ ├── test592
│ │ │ ├── test593
│ │ │ ├── test594
│ │ │ ├── test595
│ │ │ ├── test596
│ │ │ ├── test597
│ │ │ ├── test598
│ │ │ ├── test599
│ │ │ ├── test6
│ │ │ ├── test60
│ │ │ ├── test600
│ │ │ ├── test601
│ │ │ ├── test602
│ │ │ ├── test603
│ │ │ ├── test604
│ │ │ ├── test605
│ │ │ ├── test606
│ │ │ ├── test607
│ │ │ ├── test608
│ │ │ ├── test609
│ │ │ ├── test61
│ │ │ ├── test610
│ │ │ ├── test611
│ │ │ ├── test612
│ │ │ ├── test613
│ │ │ ├── test614
│ │ │ ├── test615
│ │ │ ├── test616
│ │ │ ├── test617
│ │ │ ├── test618
│ │ │ ├── test619
│ │ │ ├── test62
│ │ │ ├── test620
│ │ │ ├── test621
│ │ │ ├── test622
│ │ │ ├── test623
│ │ │ ├── test624
│ │ │ ├── test625
│ │ │ ├── test626
│ │ │ ├── test627
│ │ │ ├── test628
│ │ │ ├── test629
│ │ │ ├── test63
│ │ │ ├── test630
│ │ │ ├── test631
│ │ │ ├── test632
│ │ │ ├── test633
│ │ │ ├── test634
│ │ │ ├── test635
│ │ │ ├── test636
│ │ │ ├── test637
│ │ │ ├── test638
│ │ │ ├── test639
│ │ │ ├── test64
│ │ │ ├── test640
│ │ │ ├── test641
│ │ │ ├── test642
│ │ │ ├── test643
│ │ │ ├── test644
│ │ │ ├── test645
│ │ │ ├── test646
│ │ │ ├── test647
│ │ │ ├── test648
│ │ │ ├── test649
│ │ │ ├── test65
│ │ │ ├── test650
│ │ │ ├── test651
│ │ │ ├── test652
│ │ │ ├── test653
│ │ │ ├── test654
│ │ │ ├── test655
│ │ │ ├── test66
│ │ │ ├── test67
│ │ │ ├── test68
│ │ │ ├── test69
│ │ │ ├── test7
│ │ │ ├── test70
│ │ │ ├── test700
│ │ │ ├── test701
│ │ │ ├── test702
│ │ │ ├── test703
│ │ │ ├── test704
│ │ │ ├── test705
│ │ │ ├── test706
│ │ │ ├── test707
│ │ │ ├── test708
│ │ │ ├── test709
│ │ │ ├── test71
│ │ │ ├── test710
│ │ │ ├── test711
│ │ │ ├── test712
│ │ │ ├── test713
│ │ │ ├── test714
│ │ │ ├── test715
│ │ │ ├── test72
│ │ │ ├── test73
│ │ │ ├── test74
│ │ │ ├── test75
│ │ │ ├── test76
│ │ │ ├── test77
│ │ │ ├── test78
│ │ │ ├── test79
│ │ │ ├── test8
│ │ │ ├── test80
│ │ │ ├── test800
│ │ │ ├── test801
│ │ │ ├── test802
│ │ │ ├── test803
│ │ │ ├── test804
│ │ │ ├── test805
│ │ │ ├── test806
│ │ │ ├── test807
│ │ │ ├── test808
│ │ │ ├── test809
│ │ │ ├── test81
│ │ │ ├── test810
│ │ │ ├── test811
│ │ │ ├── test812
│ │ │ ├── test813
│ │ │ ├── test814
│ │ │ ├── test815
│ │ │ ├── test816
│ │ │ ├── test817
│ │ │ ├── test818
│ │ │ ├── test819
│ │ │ ├── test82
│ │ │ ├── test820
│ │ │ ├── test821
│ │ │ ├── test822
│ │ │ ├── test823
│ │ │ ├── test824
│ │ │ ├── test825
│ │ │ ├── test826
│ │ │ ├── test827
│ │ │ ├── test828
│ │ │ ├── test829
│ │ │ ├── test83
│ │ │ ├── test830
│ │ │ ├── test831
│ │ │ ├── test832
│ │ │ ├── test833
│ │ │ ├── test834
│ │ │ ├── test835
│ │ │ ├── test836
│ │ │ ├── test837
│ │ │ ├── test838
│ │ │ ├── test839
│ │ │ ├── test84
│ │ │ ├── test840
│ │ │ ├── test841
│ │ │ ├── test842
│ │ │ ├── test843
│ │ │ ├── test844
│ │ │ ├── test845
│ │ │ ├── test846
│ │ │ ├── test85
│ │ │ ├── test850
│ │ │ ├── test851
│ │ │ ├── test852
│ │ │ ├── test853
│ │ │ ├── test854
│ │ │ ├── test855
│ │ │ ├── test856
│ │ │ ├── test857
│ │ │ ├── test858
│ │ │ ├── test859
│ │ │ ├── test86
│ │ │ ├── test860
│ │ │ ├── test861
│ │ │ ├── test862
│ │ │ ├── test863
│ │ │ ├── test864
│ │ │ ├── test865
│ │ │ ├── test866
│ │ │ ├── test867
│ │ │ ├── test868
│ │ │ ├── test869
│ │ │ ├── test87
│ │ │ ├── test870
│ │ │ ├── test871
│ │ │ ├── test872
│ │ │ ├── test873
│ │ │ ├── test874
│ │ │ ├── test875
│ │ │ ├── test876
│ │ │ ├── test877
│ │ │ ├── test878
│ │ │ ├── test879
│ │ │ ├── test88
│ │ │ ├── test880
│ │ │ ├── test881
│ │ │ ├── test882
│ │ │ ├── test883
│ │ │ ├── test884
│ │ │ ├── test885
│ │ │ ├── test886
│ │ │ ├── test887
│ │ │ ├── test888
│ │ │ ├── test889
│ │ │ ├── test89
│ │ │ ├── test890
│ │ │ ├── test891
│ │ │ ├── test9
│ │ │ ├── test90
│ │ │ ├── test900
│ │ │ ├── test901
│ │ │ ├── test902
│ │ │ ├── test903
│ │ │ ├── test904
│ │ │ ├── test905
│ │ │ ├── test906
│ │ │ ├── test907
│ │ │ ├── test908
│ │ │ ├── test909
│ │ │ ├── test91
│ │ │ ├── test910
│ │ │ ├── test911
│ │ │ ├── test912
│ │ │ ├── test913
│ │ │ ├── test914
│ │ │ ├── test915
│ │ │ ├── test916
│ │ │ ├── test917
│ │ │ ├── test918
│ │ │ ├── test919
│ │ │ ├── test92
│ │ │ ├── test920
│ │ │ ├── test921
│ │ │ ├── test922
│ │ │ ├── test923
│ │ │ ├── test924
│ │ │ ├── test925
│ │ │ ├── test926
│ │ │ ├── test927
│ │ │ ├── test928
│ │ │ ├── test929
│ │ │ ├── test93
│ │ │ ├── test930
│ │ │ ├── test931
│ │ │ ├── test932
│ │ │ ├── test933
│ │ │ ├── test934
│ │ │ ├── test935
│ │ │ ├── test936
│ │ │ ├── test937
│ │ │ ├── test938
│ │ │ ├── test939
│ │ │ ├── test94
│ │ │ ├── test940
│ │ │ ├── test941
│ │ │ ├── test942
│ │ │ ├── test943
│ │ │ ├── test944
│ │ │ ├── test945
│ │ │ ├── test946
│ │ │ ├── test947
│ │ │ ├── test948
│ │ │ ├── test949
│ │ │ ├── test95
│ │ │ ├── test950
│ │ │ ├── test951
│ │ │ ├── test952
│ │ │ ├── test96
│ │ │ ├── test97
│ │ │ ├── test98
│ │ │ └── test99
│ │ ├── dictserver.py
│ │ ├── directories.pm
│ │ ├── extern-scan.pl
│ │ ├── ftp.pm
│ │ ├── ftpserver.pl
│ │ ├── getpart.pm
│ │ ├── http2-server.pl
│ │ ├── http_pipe.py
│ │ ├── httpserver.pl
│ │ ├── libtest/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── chkhostname.c
│ │ │ ├── first.c
│ │ │ ├── lib1500.c
│ │ │ ├── lib1501.c
│ │ │ ├── lib1502.c
│ │ │ ├── lib1506.c
│ │ │ ├── lib1507.c
│ │ │ ├── lib1508.c
│ │ │ ├── lib1509.c
│ │ │ ├── lib1510.c
│ │ │ ├── lib1511.c
│ │ │ ├── lib1512.c
│ │ │ ├── lib1513.c
│ │ │ ├── lib1514.c
│ │ │ ├── lib1515.c
│ │ │ ├── lib1517.c
│ │ │ ├── lib1520.c
│ │ │ ├── lib1521.c
│ │ │ ├── lib1525.c
│ │ │ ├── lib1526.c
│ │ │ ├── lib1527.c
│ │ │ ├── lib1528.c
│ │ │ ├── lib1529.c
│ │ │ ├── lib1530.c
│ │ │ ├── lib1531.c
│ │ │ ├── lib1532.c
│ │ │ ├── lib1533.c
│ │ │ ├── lib1534.c
│ │ │ ├── lib1535.c
│ │ │ ├── lib1536.c
│ │ │ ├── lib1537.c
│ │ │ ├── lib1538.c
│ │ │ ├── lib1540.c
│ │ │ ├── lib1550.c
│ │ │ ├── lib1551.c
│ │ │ ├── lib1552.c
│ │ │ ├── lib1553.c
│ │ │ ├── lib1554.c
│ │ │ ├── lib1555.c
│ │ │ ├── lib1556.c
│ │ │ ├── lib1900.c
│ │ │ ├── lib500.c
│ │ │ ├── lib501.c
│ │ │ ├── lib502.c
│ │ │ ├── lib503.c
│ │ │ ├── lib504.c
│ │ │ ├── lib505.c
│ │ │ ├── lib506.c
│ │ │ ├── lib507.c
│ │ │ ├── lib508.c
│ │ │ ├── lib509.c
│ │ │ ├── lib510.c
│ │ │ ├── lib511.c
│ │ │ ├── lib512.c
│ │ │ ├── lib513.c
│ │ │ ├── lib514.c
│ │ │ ├── lib515.c
│ │ │ ├── lib516.c
│ │ │ ├── lib517.c
│ │ │ ├── lib518.c
│ │ │ ├── lib519.c
│ │ │ ├── lib520.c
│ │ │ ├── lib521.c
│ │ │ ├── lib523.c
│ │ │ ├── lib524.c
│ │ │ ├── lib525.c
│ │ │ ├── lib526.c
│ │ │ ├── lib530.c
│ │ │ ├── lib533.c
│ │ │ ├── lib536.c
│ │ │ ├── lib537.c
│ │ │ ├── lib539.c
│ │ │ ├── lib540.c
│ │ │ ├── lib541.c
│ │ │ ├── lib542.c
│ │ │ ├── lib543.c
│ │ │ ├── lib544.c
│ │ │ ├── lib547.c
│ │ │ ├── lib549.c
│ │ │ ├── lib552.c
│ │ │ ├── lib553.c
│ │ │ ├── lib554.c
│ │ │ ├── lib555.c
│ │ │ ├── lib556.c
│ │ │ ├── lib557.c
│ │ │ ├── lib558.c
│ │ │ ├── lib559.c
│ │ │ ├── lib560.c
│ │ │ ├── lib562.c
│ │ │ ├── lib564.c
│ │ │ ├── lib566.c
│ │ │ ├── lib567.c
│ │ │ ├── lib568.c
│ │ │ ├── lib569.c
│ │ │ ├── lib570.c
│ │ │ ├── lib571.c
│ │ │ ├── lib572.c
│ │ │ ├── lib573.c
│ │ │ ├── lib574.c
│ │ │ ├── lib575.c
│ │ │ ├── lib576.c
│ │ │ ├── lib578.c
│ │ │ ├── lib579.c
│ │ │ ├── lib582.c
│ │ │ ├── lib583.c
│ │ │ ├── lib586.c
│ │ │ ├── lib589.c
│ │ │ ├── lib590.c
│ │ │ ├── lib591.c
│ │ │ ├── lib597.c
│ │ │ ├── lib598.c
│ │ │ ├── lib599.c
│ │ │ ├── lib643.c
│ │ │ ├── lib650.c
│ │ │ ├── lib651.c
│ │ │ ├── lib652.c
│ │ │ ├── lib653.c
│ │ │ ├── lib654.c
│ │ │ ├── lib655.c
│ │ │ ├── libauthretry.c
│ │ │ ├── libntlmconnect.c
│ │ │ ├── mk-lib1521.pl
│ │ │ ├── notexists.pl
│ │ │ ├── sethostname.c
│ │ │ ├── sethostname.h
│ │ │ ├── stub_gssapi.c
│ │ │ ├── stub_gssapi.h
│ │ │ ├── test.h
│ │ │ ├── test1013.pl
│ │ │ ├── test1022.pl
│ │ │ ├── test307.pl
│ │ │ ├── test610.pl
│ │ │ ├── test613.pl
│ │ │ ├── test75.pl
│ │ │ ├── testtrace.c
│ │ │ ├── testtrace.h
│ │ │ ├── testutil.c
│ │ │ └── testutil.h
│ │ ├── manpage-scan.pl
│ │ ├── mem-include-scan.pl
│ │ ├── memanalyze.pl
│ │ ├── negtelnetserver.py
│ │ ├── nroff-scan.pl
│ │ ├── pathhelp.pm
│ │ ├── python_dependencies/
│ │ │ └── impacket/
│ │ │ ├── __init__.py
│ │ │ ├── nmb.py
│ │ │ ├── nt_errors.py
│ │ │ ├── ntlm.py
│ │ │ ├── smb.py
│ │ │ ├── smb3.py
│ │ │ ├── smb3structs.py
│ │ │ ├── smbserver.py
│ │ │ ├── spnego.py
│ │ │ ├── structure.py
│ │ │ ├── uuid.py
│ │ │ └── version.py
│ │ ├── rtspserver.pl
│ │ ├── runtests.1
│ │ ├── runtests.pl
│ │ ├── secureserver.pl
│ │ ├── server/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── base64.pl
│ │ │ ├── fake_ntlm.c
│ │ │ ├── getpart.c
│ │ │ ├── getpart.h
│ │ │ ├── resolve.c
│ │ │ ├── rtspd.c
│ │ │ ├── server_setup.h
│ │ │ ├── server_sockaddr.h
│ │ │ ├── sockfilt.c
│ │ │ ├── sws.c
│ │ │ ├── testpart.c
│ │ │ ├── tftp.h
│ │ │ ├── tftpd.c
│ │ │ ├── util.c
│ │ │ └── util.h
│ │ ├── serverhelp.pm
│ │ ├── smbserver.py
│ │ ├── sshhelp.pm
│ │ ├── sshserver.pl
│ │ ├── stunnel.pem
│ │ ├── symbol-scan.pl
│ │ ├── testcurl.1
│ │ ├── testcurl.pl
│ │ ├── tftpserver.pl
│ │ ├── unit/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── README
│ │ │ ├── curlcheck.h
│ │ │ ├── unit1300.c
│ │ │ ├── unit1301.c
│ │ │ ├── unit1302.c
│ │ │ ├── unit1303.c
│ │ │ ├── unit1304.c
│ │ │ ├── unit1305.c
│ │ │ ├── unit1307.c
│ │ │ ├── unit1308.c
│ │ │ ├── unit1309.c
│ │ │ ├── unit1323.c
│ │ │ ├── unit1330.c
│ │ │ ├── unit1394.c
│ │ │ ├── unit1395.c
│ │ │ ├── unit1396.c
│ │ │ ├── unit1397.c
│ │ │ ├── unit1398.c
│ │ │ ├── unit1399.c
│ │ │ ├── unit1600.c
│ │ │ ├── unit1601.c
│ │ │ ├── unit1602.c
│ │ │ ├── unit1603.c
│ │ │ ├── unit1604.c
│ │ │ ├── unit1605.c
│ │ │ ├── unit1606.c
│ │ │ └── unit1607.c
│ │ ├── valgrind.pm
│ │ └── valgrind.supp
│ └── winbuild/
│ ├── BUILD.WINDOWS.txt
│ ├── Makefile.vc
│ ├── MakefileBuild.vc
│ └── gen_resp_file.bat
├── curlcpp/
│ ├── .gitignore
│ ├── CMake/
│ │ └── curlcppConfig.cmake.in
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── bii/
│ │ ├── layout.bii
│ │ ├── policies.bii
│ │ └── settings.bii
│ ├── biicode.conf
│ ├── include/
│ │ ├── cookie.h
│ │ ├── cookie_date.h
│ │ ├── cookie_datetime.h
│ │ ├── cookie_time.h
│ │ ├── curl_config.h
│ │ ├── curl_cookie.h
│ │ ├── curl_easy.h
│ │ ├── curl_easy_info.h
│ │ ├── curl_exception.h
│ │ ├── curl_form.h
│ │ ├── curl_global.h
│ │ ├── curl_header.h
│ │ ├── curl_info.h
│ │ ├── curl_interface.h
│ │ ├── curl_ios.h
│ │ ├── curl_multi.h
│ │ ├── curl_option.h
│ │ ├── curl_pair.h
│ │ ├── curl_receiver.h
│ │ ├── curl_sender.h
│ │ ├── curl_share.h
│ │ └── curl_utility.h
│ ├── src/
│ │ ├── CMakeLists.txt
│ │ ├── cookie.cpp
│ │ ├── cookie_date.cpp
│ │ ├── cookie_datetime.cpp
│ │ ├── cookie_time.cpp
│ │ ├── curl_cookie.cpp
│ │ ├── curl_easy.cpp
│ │ ├── curl_exception.cpp
│ │ ├── curl_form.cpp
│ │ ├── curl_global.cpp
│ │ ├── curl_header.cpp
│ │ ├── curl_info.cpp
│ │ ├── curl_multi.cpp
│ │ └── curl_share.cpp
│ └── test/
│ ├── cookie.cpp
│ ├── custom_request.cpp
│ ├── easy.cpp
│ ├── easy_info.cpp
│ ├── header.cpp
│ └── recv_header.cpp
├── date/
│ ├── LICENSE.txt
│ ├── README.md
│ ├── include/
│ │ └── date/
│ │ ├── chrono_io.h
│ │ ├── date.h
│ │ ├── ios.h
│ │ ├── ios.mm
│ │ ├── islamic.h
│ │ ├── iso_week.h
│ │ ├── julian.h
│ │ ├── ptz.h
│ │ ├── tz.h
│ │ └── tz_private.h
│ ├── src/
│ │ └── tz.cpp
│ └── tzdata/
│ ├── CONTRIBUTING
│ ├── LICENSE
│ ├── Makefile
│ ├── NEWS
│ ├── README
│ ├── africa
│ ├── antarctica
│ ├── asia
│ ├── australasia
│ ├── backward
│ ├── backzone
│ ├── calendars
│ ├── checklinks.awk
│ ├── checktab.awk
│ ├── etcetera
│ ├── europe
│ ├── factory
│ ├── iso3166.tab
│ ├── leap-seconds.list
│ ├── leapseconds
│ ├── leapseconds.awk
│ ├── northamerica
│ ├── pacificnew
│ ├── southamerica
│ ├── systemv
│ ├── theory.html
│ ├── version
│ ├── windowsZones.xml
│ ├── yearistype.sh
│ ├── zishrink.awk
│ ├── zone.tab
│ ├── zone1970.tab
│ └── zoneinfo2tdf.pl
├── nlohmannjson/
│ └── json.hpp
├── pugixml/
│ ├── pugiconfig.hpp
│ ├── pugixml.cpp
│ └── pugixml.hpp
├── sqlite/
│ ├── sqlite3.c
│ └── sqlite3.h
├── sqlite_modern_cpp/
│ ├── sqlite_modern_cpp/
│ │ ├── errors.h
│ │ ├── lists/
│ │ │ └── error_codes.h
│ │ ├── log.h
│ │ ├── sqlcipher.h
│ │ └── utility/
│ │ ├── function_traits.h
│ │ ├── uncaught_exceptions.h
│ │ ├── utf16_utf8.h
│ │ └── variant.h
│ └── sqlite_modern_cpp.h
└── stduuid/
└── uuid.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto
================================================
FILE: .gitignore
================================================
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.7.0)
project(cppchallenger)
if (UNIX)
message(status "** Setting GCC flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1z -fexceptions -g -Wall")
elseif(WIN32)
message(status "** Setting MSVC flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /std:c++latest")
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
endif()
message(status "** CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
set(INCLUDE_PATH "${CMAKE_SOURCE_DIR}/include")
set(LIBS_PATH "${CMAKE_SOURCE_DIR}/libs")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
add_subdirectory(libs/ZipLib)
add_subdirectory(libs/PDF-Writer)
add_subdirectory(libs/PngWriter)
add_subdirectory(libs/cryptopp)
add_subdirectory(libs/curl)
add_subdirectory(libs/curlcpp)
add_subdirectory(chapter01/problem_01)
add_subdirectory(chapter01/problem_02)
add_subdirectory(chapter01/problem_03)
add_subdirectory(chapter01/problem_04)
add_subdirectory(chapter01/problem_05)
add_subdirectory(chapter01/problem_06)
add_subdirectory(chapter01/problem_07)
add_subdirectory(chapter01/problem_08)
add_subdirectory(chapter01/problem_09)
add_subdirectory(chapter01/problem_10)
add_subdirectory(chapter01/problem_11)
add_subdirectory(chapter01/problem_12)
add_subdirectory(chapter01/problem_13)
add_subdirectory(chapter01/problem_14)
add_subdirectory(chapter02/problem_15)
add_subdirectory(chapter02/problem_16)
add_subdirectory(chapter02/problem_17)
add_subdirectory(chapter02/problem_18)
add_subdirectory(chapter02/problem_19)
add_subdirectory(chapter02/problem_20)
add_subdirectory(chapter02/problem_21)
add_subdirectory(chapter02/problem_22)
add_subdirectory(chapter03/problem_23)
add_subdirectory(chapter03/problem_24)
add_subdirectory(chapter03/problem_25)
add_subdirectory(chapter03/problem_26)
add_subdirectory(chapter03/problem_27)
add_subdirectory(chapter03/problem_28)
add_subdirectory(chapter03/problem_29)
add_subdirectory(chapter03/problem_30)
add_subdirectory(chapter03/problem_31)
add_subdirectory(chapter04/problem_32)
add_subdirectory(chapter04/problem_33)
add_subdirectory(chapter04/problem_34)
add_subdirectory(chapter04/problem_35)
add_subdirectory(chapter04/problem_36)
add_subdirectory(chapter04/problem_37)
add_subdirectory(chapter04/problem_38)
add_subdirectory(chapter05/problem_39)
add_subdirectory(chapter05/problem_40)
add_subdirectory(chapter05/problem_41)
add_subdirectory(chapter05/problem_42)
add_subdirectory(chapter05/problem_43)
add_subdirectory(chapter05/problem_44)
add_subdirectory(chapter06/problem_45)
add_subdirectory(chapter06/problem_46)
add_subdirectory(chapter06/problem_47)
add_subdirectory(chapter06/problem_48)
add_subdirectory(chapter06/problem_49)
add_subdirectory(chapter06/problem_50)
add_subdirectory(chapter06/problem_51)
add_subdirectory(chapter06/problem_52)
add_subdirectory(chapter06/problem_53)
add_subdirectory(chapter06/problem_54)
add_subdirectory(chapter06/problem_55)
add_subdirectory(chapter06/problem_56)
add_subdirectory(chapter06/problem_57)
add_subdirectory(chapter06/problem_58)
add_subdirectory(chapter06/problem_59)
add_subdirectory(chapter06/problem_60)
add_subdirectory(chapter07/problem_61)
add_subdirectory(chapter07/problem_62)
add_subdirectory(chapter07/problem_63)
add_subdirectory(chapter07/problem_64)
add_subdirectory(chapter07/problem_65)
add_subdirectory(chapter07/problem_66)
add_subdirectory(chapter08/problem_67)
add_subdirectory(chapter08/problem_68)
add_subdirectory(chapter08/problem_69)
add_subdirectory(chapter08/problem_70)
add_subdirectory(chapter08/problem_71)
add_subdirectory(chapter08/problem_72)
add_subdirectory(chapter09/problem_73)
add_subdirectory(chapter09/problem_74)
add_subdirectory(chapter09/problem_75)
add_subdirectory(chapter09/problem_76)
add_subdirectory(chapter09/problem_77)
add_subdirectory(chapter09/problem_78)
add_subdirectory(chapter10/problem_79)
add_subdirectory(chapter10/problem_80)
add_subdirectory(chapter10/problem_81)
add_subdirectory(chapter10/problem_82)
add_subdirectory(chapter10/problem_83)
add_subdirectory(chapter10/problem_84)
add_subdirectory(chapter10/problem_85)
add_subdirectory(chapter10/problem_86)
add_subdirectory(chapter10/problem_87)
add_subdirectory(chapter11/problem_88)
add_subdirectory(chapter11/problem_89)
add_subdirectory(chapter11/problem_90)
add_subdirectory(chapter11/problem_91)
add_subdirectory(chapter11/problem_92)
add_subdirectory(chapter11/problem_93)
add_subdirectory(chapter11/problem_94)
add_subdirectory(chapter12/problem_95)
add_subdirectory(chapter12/problem_96c)
add_subdirectory(chapter12/problem_96s)
add_subdirectory(chapter12/problem_97)
add_subdirectory(chapter12/problem_98)
add_subdirectory(chapter12/problem_99)
add_subdirectory(chapter12/problem_9a)
================================================
FILE: Chapter01/problem_01/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_01)
add_executable(problem_01 main.cpp)
set_target_properties (problem_01 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_01/main.cpp
================================================
#include <iostream>
int main()
{
unsigned int limit = 0;
std::cout << "Upper limit:";
std::cin >> limit;
unsigned long long sum = 0;
for (unsigned int i = 3; i < limit; ++i)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
std::cout << "sum=" << sum << std::endl;
}
================================================
FILE: Chapter01/problem_02/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_02)
add_executable(problem_02 main.cpp)
set_target_properties (problem_02 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_02/main.cpp
================================================
#include <iostream>
unsigned int gcd(unsigned int const a, unsigned int const b)
{
return b == 0 ? a : gcd(b, a % b);
}
unsigned int gcd2(unsigned int a, unsigned int b)
{
while (b != 0)
{
unsigned int r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
std::cout << "Input numbers:";
unsigned int a, b;
std::cin >> a >> b;
std::cout
<< "rec gcd(" << a << ", " << b << ")="
<< gcd(a, b) << std::endl;
std::cout
<< " gcd(" << a << ", " << b << ")="
<< gcd2(a, b) << std::endl;
}
================================================
FILE: Chapter01/problem_03/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_03)
add_executable(problem_03 main.cpp)
set_target_properties (problem_03 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_03/main.cpp
================================================
#include <iostream>
#include <numeric>
#include <vector>
int gcd(int const a, int const b)
{
return b == 0 ? a : gcd(b, a % b);
}
int lcm(int const a, int const b)
{
int h = gcd(a, b);
return h ? (a * (b / h)) : 0;
}
template<class InputIt>
int lcmr(InputIt first, InputIt last)
{
return std::accumulate(first, last, 1, lcm);
}
int main()
{
int n = 0;
std::cout << "Input count:";
std::cin >> n;
std::vector<int> numbers;
for (int i = 0; i < n; ++i)
{
int v{ 0 };
std::cin >> v;
numbers.push_back(v);
}
std::cout
<< "lcm="
<< lcmr(std::begin(numbers), std::end(numbers))
<< std::endl;
}
================================================
FILE: Chapter01/problem_04/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_04)
add_executable(problem_04 main.cpp)
set_target_properties (problem_04 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_04/main.cpp
================================================
#include <iostream>
bool is_prime(int const num)
{
if (num <= 3)
{
return num > 1;
}
else if (num % 2 == 0 || num % 3 == 0)
{
return false;
}
else
{
for (int i = 5; i * i <= num; i += 6)
{
if (num % i == 0 || num % (i + 2) == 0)
{
return false;
}
}
return true;
}
}
int main()
{
int limit = 0;
std::cout << "Upper limit:";
std::cin >> limit;
for (int i = limit; i > 1; i--)
{
if (is_prime(i))
{
std::cout << "Largest prime:" << i << std::endl;
return 0;
}
}
}
================================================
FILE: Chapter01/problem_05/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_05)
add_executable(problem_05 main.cpp)
set_target_properties (problem_05 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_05/main.cpp
================================================
#include <iostream>
bool is_prime(int const num)
{
if (num <= 3)
{
return num > 1;
}
else if (num % 2 == 0 || num % 3 == 0)
{
return false;
}
else
{
for (int i = 5; i * i <= num; i += 6)
{
if (num % i == 0 || num % (i + 2) == 0)
{
return false;
}
}
return true;
}
}
int main()
{
int limit = 0;
std::cout << "Upper limit:";
std::cin >> limit;
for (int n = 2; n <= limit; n++)
{
if (is_prime(n) && is_prime(n + 6))
{
std::cout << n << "," << n + 6 << std::endl;
}
}
}
================================================
FILE: Chapter01/problem_06/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_06)
add_executable(problem_06 main.cpp)
set_target_properties (problem_06 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_06/main.cpp
================================================
#include <iostream>
#include <cmath>
int sum_proper_divisors(int const number)
{
int result = 1;
for (int i = 2; i <= std::sqrt(number); i++)
{
if (number%i == 0)
{
result += (i == (number / i)) ? i : (i + number / i);
}
}
return result;
}
void print_abundant(int const limit)
{
for (int number = 10; number <= limit; ++number)
{
auto sum = sum_proper_divisors(number);
if (sum > number)
{
std::cout
<< number
<< ", abundance=" << sum - number << std::endl;
}
}
}
int main()
{
int limit = 0;
std::cout << "Upper limit:";
std::cin >> limit;
print_abundant(limit);
}
================================================
FILE: Chapter01/problem_07/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_07)
add_executable(problem_07 main.cpp)
set_target_properties (problem_07 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_07/main.cpp
================================================
#include <iostream>
#include <set>
#include <cmath>
int sum_proper_divisors(int const number)
{
int result = 1;
for (int i = 2; i <= std::sqrt(number); i++)
{
if (number%i == 0)
{
result += (i == (number / i)) ? i : (i + number / i);
}
}
return result;
}
void print_amicables(int const limit)
{
for (int number = 4; number < limit; ++number)
{
auto sum1 = sum_proper_divisors(number);
if (sum1 < limit)
{
auto sum2 = sum_proper_divisors(sum1);
if (sum2 == number && number != sum1)
{
std::cout << number << "," << sum1 << std::endl;
}
}
}
}
void print_amicables_once(int const limit)
{
std::set<int> printed;
for (int number = 4; number < limit; ++number)
{
if (printed.find(number) != printed.end()) continue;
auto sum1 = sum_proper_divisors(number);
if (sum1 < limit)
{
auto sum2 = sum_proper_divisors(sum1);
if (sum2 == number && number != sum1)
{
printed.insert(number);
printed.insert(sum1);
std::cout << number << "," << sum1 << std::endl;
}
}
}
}
int main()
{
print_amicables(1000000);
print_amicables_once(1000000);
}
================================================
FILE: Chapter01/problem_08/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_08)
add_executable(problem_08 main.cpp)
set_target_properties (problem_08 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_08/main.cpp
================================================
#include <iostream>
#include <vector>
#include <numeric>
#include <cmath>
#include <chrono>
template <typename Time = std::chrono::microseconds,
typename Clock = std::chrono::high_resolution_clock>
struct perf_timer
{
template <typename F, typename... Args>
static Time duration(F&& f, Args... args)
{
auto start = Clock::now();
std::invoke(std::forward<F>(f), std::forward<Args>(args)...);
auto end = Clock::now();
return std::chrono::duration_cast<Time>(end - start);
}
};
void print_narcissistics_1(bool const printResults)
{
for (int a = 1; a <= 9; a++)
{
for (int b = 0; b <= 9; b++)
{
for (int c = 0; c <= 9; c++)
{
auto abc = a * 100 + b * 10 + c;
auto arm = a * a * a + b * b * b + c * c * c;
if (abc == arm)
{
if (printResults) std::cout << arm << std::endl;
}
}
}
}
}
void print_narcissistics_2(bool const printResults)
{
for (int i = 100; i <= 1000; ++i)
{
int arm = 0;
int n = i;
while (n > 0)
{
auto d = n % 10;
n = n / 10;
arm += d*d*d;
}
if (i == arm)
{
if (printResults) std::cout << arm << std::endl;
}
}
}
void print_narcissistics_3(int const limit, bool const printResults)
{
for (int i = 1; i <= limit; ++i)
{
std::vector<int> digits;
int n = i;
while (n > 0)
{
digits.push_back(n % 10);
n = n / 10;
}
int arm = std::accumulate(
std::begin(digits), std::end(digits),
0,
[s = digits.size()](int const sum, int const digit) {return sum + static_cast<int>(std::pow(digit, s)); });
if (i == arm)
{
if (printResults) std::cout << arm << std::endl;
}
}
}
int main()
{
print_narcissistics_1(true);
print_narcissistics_2(true);
print_narcissistics_3(1000, true);
auto t1 = perf_timer<>::duration([]() { for (int i = 0; i < 10000; ++i) print_narcissistics_1(false); });
std::cout << std::chrono::duration<double, std::milli>(t1).count() << "ms" << std::endl;
auto t2 = perf_timer<>::duration([]() { for (int i = 0; i < 10000; ++i) print_narcissistics_2(false); });
std::cout << std::chrono::duration<double, std::milli>(t2).count() << "ms" << std::endl;
auto t3 = perf_timer<>::duration([]() { for (int i = 0; i < 10000; ++i) print_narcissistics_3(1000, false); });
std::cout << std::chrono::duration<double, std::milli>(t3).count() << "ms" << std::endl;
}
================================================
FILE: Chapter01/problem_09/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_08)
add_executable(problem_09 main.cpp)
set_target_properties (problem_09 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_09/main.cpp
================================================
#include <iostream>
#include <cmath>
#include <vector>
#include <iterator>
#include <algorithm>
std::vector<unsigned long long> prime_factors(unsigned long long n)
{
std::vector<unsigned long long> factors;
// print the number of 2s that divide n
while (n % 2 == 0)
{
factors.push_back(2);
n = n / 2;
}
for (unsigned long long i = 3; i <= std::sqrt(n); i += 2)
{
// while i divides n, print i and divide n
while (n%i == 0)
{
factors.push_back(i);
n = n / i;
}
}
// n is a prime number greater than 2
if (n > 2)
factors.push_back(n);
return factors;
}
int main()
{
unsigned long long number = 0;
std::cout << "number:";
std::cin >> number;
auto factors = prime_factors(number);
std::copy(
std::begin(factors), std::end(factors),
std::ostream_iterator<unsigned long long>(std::cout, " "));
}
================================================
FILE: Chapter01/problem_10/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_10)
add_executable(problem_10 main.cpp)
set_target_properties (problem_10 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_10/main.cpp
================================================
#include <iostream>
#include <bitset>
#include <string>
unsigned int gray_encode(unsigned int const num)
{
return num ^ (num >> 1);
}
unsigned int gray_decode(unsigned int gray)
{
for (unsigned int bit = 1U << 31; bit > 1; bit >>= 1)
{
if (gray & bit) gray ^= bit >> 1;
}
return gray;
}
std::string to_binary(unsigned int value, int const digits)
{
return std::bitset<32>(value).to_string().substr(32-digits, digits);
}
int main()
{
std::cout << "Number\tBinary\tGray\tDecoded\n";
std::cout << "------\t------\t----\t-------\n";
for (unsigned int n = 0; n < 32; ++n)
{
auto encg = gray_encode(n);
auto decg = gray_decode(encg);
std::cout
<< n << "\t" << to_binary(n, 5) << "\t"
<< to_binary(encg, 5) << "\t" << decg << "\n";
}
}
================================================
FILE: Chapter01/problem_11/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_11)
add_executable(problem_11 main.cpp)
set_target_properties (problem_11 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_11/main.cpp
================================================
#include <iostream>
#include <string>
#include <vector>
std::string to_roman(unsigned int value)
{
std::vector<std::pair<unsigned int, char const*>> roman
{
{ 1000, "M" },{ 900, "CM" },
{ 500, "D" },{ 400, "CD" },
{ 100, "C" },{ 90, "XC" },
{ 50, "L" },{ 40, "XL" },
{ 10, "X" },{ 9, "IX" },
{ 5, "V" },{ 4, "IV" },
{ 1, "I" }
};
std::string result;
for (auto const & kvp : roman)
{
while (value >= kvp.first)
{
result += kvp.second;
value -= kvp.first;
}
}
return result;
}
int main()
{
for(int i = 1; i <= 100; ++i)
{
std::cout << i << "\t" << to_roman(i) << std::endl;
}
int number = 0;
std::cout << "number:";
std::cin >> number;
std::cout << to_roman(number) << std::endl;
}
================================================
FILE: Chapter01/problem_12/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_12)
add_executable(problem_12 main.cpp)
set_target_properties (problem_12 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_12/main.cpp
================================================
#include <iostream>
#include <vector>
std::pair<unsigned long long, long> longest_collatz_uncached(unsigned long long const limit)
{
long length = 0;
unsigned long long number = 0;
for (unsigned long long i = 2; i <= limit; i++)
{
auto n = i;
long steps = 0;
while (n != 1)
{
if ((n % 2) == 0)
n = n / 2;
else
n = n * 3 + 1;
steps++;
}
if (steps > length)
{
length = steps;
number = i;
}
}
return std::make_pair(number, length);
}
std::pair<unsigned long long, long> longest_collatz(unsigned long long const limit)
{
long length = 0;
unsigned long long number = 0;
std::vector<int> cache(limit + 1, 0);
for (unsigned long long i = 2; i <= limit; i++)
{
auto n = i;
long steps = 0;
while (n != 1 && n >= i)
{
if ((n % 2) == 0)
n = n / 2;
else
n = n * 3 + 1;
steps++;
}
cache[i] = steps + cache[n];
if (cache[i] > length)
{
length = cache[i];
number = i;
}
}
return std::make_pair(number, length);
}
int main()
{
struct test_data
{
unsigned long long limit;
unsigned long long start;
long steps;
};
std::vector<test_data> data
{
{ 10ULL, 9ULL, 19 },
{ 100ULL, 97ULL, 118 },
{ 1000ULL, 871ULL, 178 },
{ 10000ULL, 6171ULL, 263 },
{ 100000ULL, 77031ULL, 350 },
{ 1000000ULL, 837799ULL, 524 },
{ 10000000ULL, 8400511ULL, 685 },
{ 100000000ULL, 63728127ULL, 949 }
};
for (auto const & d : data)
{
auto result = longest_collatz(d.limit);
if (result.first != d.start || result.second != d.steps)
std::cout << "error on limit " << d.limit << std::endl;
else
std::cout
<< "less than : " << d.limit << std::endl
<< "starting number: " << result.first << std::endl
<< "sequence length: " << result.second << std::endl;
}
}
================================================
FILE: Chapter01/problem_13/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_13)
add_executable(problem_13 main.cpp)
set_target_properties (problem_13 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_13/main.cpp
================================================
#include <iostream>
#include <random>
#include <algorithm>
#include <array>
template <
typename E = std::mt19937,
typename D = std::uniform_real_distribution<>>
double compute_pi(E& engine, D& dist,
int const samples = 1000000)
{
auto hit = 0;
for (auto i = 0; i<samples; i++)
{
auto x = dist(engine);
auto y = dist(engine);
if (y <= std::sqrt(1 - std::pow(x, 2))) hit += 1;
}
return 4.0 * hit / samples;
}
int main()
{
std::random_device rd;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
auto eng = std::mt19937{ seq };
auto dist = std::uniform_real_distribution<>{ 0, 1 };
for (auto j = 0; j < 10; j++)
{
std::cout << compute_pi(eng, dist) << std::endl;
}
}
================================================
FILE: Chapter01/problem_14/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_14)
add_executable(problem_14 main.cpp)
set_target_properties (problem_14 PROPERTIES FOLDER "01.Math")
================================================
FILE: Chapter01/problem_14/main.cpp
================================================
#include <iostream>
#include <string>
#include <algorithm>
#include <numeric>
#include <string_view>
#include <assert.h>
bool validate_isbn_10(std::string_view isbn)
{
auto valid = false;
if (isbn.size() == 10 &&
std::count_if(std::begin(isbn), std::end(isbn), isdigit) == 10)
{
auto w = 10;
auto sum = std::accumulate(
std::begin(isbn), std::end(isbn), 0,
[&w](int const total, char const c) {
return total + w-- * (c - '0'); });
valid = !(sum % 11);
}
return valid;
}
int main()
{
assert(validate_isbn_10("0306406152"));
assert(!validate_isbn_10("0306406151"));
std::string isbn;
std::cout << "isbn:";
std::cin >> isbn;
std::cout << "valid: " << validate_isbn_10(isbn) << std::endl;
}
================================================
FILE: Chapter02/problem_15/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_15)
add_executable(problem_15 main.cpp)
set_target_properties (problem_15 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_15/main.cpp
================================================
#include <iostream>
#include <array>
#include <sstream>
#include <assert.h>
class ipv4
{
std::array<unsigned char, 4> data;
public:
constexpr ipv4() :data{ {0} } {}
constexpr ipv4(unsigned char const a, unsigned char const b,
unsigned char const c, unsigned char const d):
data{{a,b,c,d}} {}
explicit constexpr ipv4(unsigned long a) :
data{ { static_cast<unsigned char>((a >> 24) & 0xFF),
static_cast<unsigned char>((a >> 16) & 0xFF),
static_cast<unsigned char>((a >> 8) & 0xFF),
static_cast<unsigned char>(a & 0xFF) } } {}
ipv4(ipv4 const & other) noexcept : data(other.data) {}
ipv4& operator=(ipv4 const & other) noexcept
{
data = other.data;
return *this;
}
std::string to_string() const
{
std::stringstream sstr;
sstr << *this;
return sstr.str();
}
constexpr unsigned long to_ulong() const noexcept
{
return
(static_cast<unsigned long>(data[0]) << 24) |
(static_cast<unsigned long>(data[1]) << 16) |
(static_cast<unsigned long>(data[2]) << 8) |
static_cast<unsigned long>(data[3]);
}
friend std::ostream& operator<<(std::ostream& os, const ipv4& a)
{
os << static_cast<int>(a.data[0]) << '.'
<< static_cast<int>(a.data[1]) << '.'
<< static_cast<int>(a.data[2]) << '.'
<< static_cast<int>(a.data[3]);
return os;
}
friend std::istream& operator>>(std::istream& is, ipv4& a)
{
char d1, d2, d3;
int b1, b2, b3, b4;
is >> b1 >> d1 >> b2 >> d2 >> b3 >> d3 >> b4;
if (d1 == '.' && d2 == '.' && d3 == '.')
a = ipv4(b1, b2, b3, b4);
else
is.setstate(std::ios_base::failbit);
return is;
}
};
int main()
{
ipv4 a(168, 192, 0, 1);
std::cout << a << std::endl;
std::cout << a.to_string() << std::endl;
ipv4 b = a;
ipv4 c;
c = b;
ipv4 ip;
std::cout << ip << std::endl;
std::cin >> ip;
if(!std::cin.fail())
std::cout << ip << std::endl;
}
================================================
FILE: Chapter02/problem_16/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_16)
add_executable(problem_16 main.cpp)
set_target_properties (problem_16 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_16/main.cpp
================================================
#include <iostream>
#include <array>
#include <sstream>
class ipv4
{
std::array<unsigned char, 4> data;
public:
constexpr ipv4() :data{ { 0 } } {}
constexpr ipv4(unsigned char const a, unsigned char const b,
unsigned char const c, unsigned char const d) :
data{ { a,b,c,d } } {}
explicit constexpr ipv4(unsigned long a) :
data{ { static_cast<unsigned char>((a >> 24) & 0xFF),
static_cast<unsigned char>((a >> 16) & 0xFF),
static_cast<unsigned char>((a >> 8) & 0xFF),
static_cast<unsigned char>(a & 0xFF) } } {}
ipv4(ipv4 const & other) noexcept : data(other.data) {}
ipv4& operator=(ipv4 const & other) noexcept
{
data = other.data;
return *this;
}
constexpr unsigned long to_ulong() const noexcept
{
return
(static_cast<unsigned long>(data[0]) << 24) |
(static_cast<unsigned long>(data[1]) << 16) |
(static_cast<unsigned long>(data[2]) << 8) |
static_cast<unsigned long>(data[3]);
}
std::string to_string() const
{
std::stringstream sstr;
sstr << *this;
return sstr.str();
}
constexpr bool is_loopback() const noexcept
{
return (to_ulong() & 0xFF000000) == 0x7F000000;
}
constexpr bool is_unspecified() const noexcept
{
return to_ulong() == 0;
}
constexpr bool is_class_a() const noexcept
{
return (to_ulong() & 0x80000000) == 0;
}
constexpr bool is_class_b() const noexcept
{
return (to_ulong() & 0xC0000000) == 0x80000000;
}
constexpr bool is_class_c() const noexcept
{
return (to_ulong() & 0xE0000000) == 0xC0000000;
}
constexpr bool is_multicast() const noexcept
{
return (to_ulong() & 0xF0000000) == 0xE0000000;
}
ipv4& operator++()
{
*this = ipv4(1 + to_ulong());
return *this;
}
ipv4& operator++(int)
{
ipv4 result(*this);
++(*this);
return *this;
}
friend bool operator==(ipv4 const & a1, ipv4 const & a2) noexcept
{
return a1.data == a2.data;
}
friend bool operator!=(ipv4 const & a1, ipv4 const & a2) noexcept
{
return !(a1 == a2);
}
friend bool operator<(ipv4 const & a1, ipv4 const & a2) noexcept
{
return a1.to_ulong() < a2.to_ulong();
}
friend bool operator>(ipv4 const & a1, ipv4 const & a2) noexcept
{
return a2 < a1;
}
friend bool operator<=(ipv4 const & a1, ipv4 const & a2) noexcept
{
return !(a1 > a2);
}
friend bool operator>=(ipv4 const & a1, ipv4 const & a2) noexcept
{
return !(a1 < a2);
}
friend std::ostream& operator<<(std::ostream& os, const ipv4& a)
{
os << static_cast<int>(a.data[0]) << '.'
<< static_cast<int>(a.data[1]) << '.'
<< static_cast<int>(a.data[2]) << '.'
<< static_cast<int>(a.data[3]);
return os;
}
friend std::istream& operator>>(std::istream& is, ipv4& a)
{
char d1, d2, d3;
int b1, b2, b3, b4;
is >> b1 >> d1 >> b2 >> d2 >> b3 >> d3 >> b4;
if (d1 == '.' && d2 == '.' && d3 == '.')
a = ipv4(b1, b2, b3, b4);
else
is.setstate(std::ios_base::failbit);
return is;
}
};
int main()
{
std::cout << "input range: ";
ipv4 a1, a2;
std::cin >> a1 >> a2;
if (a2 > a1)
{
for (ipv4 a = a1; a <= a2; a++)
{
std::cout << a << std::endl;
}
}
else
{
std::cerr << "invalid range!" << std::endl;
}
}
================================================
FILE: Chapter02/problem_17/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_17)
add_executable(problem_17 main.cpp)
set_target_properties (problem_17 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_17/main.cpp
================================================
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
template <class T, size_t R, size_t C>
class array2d
{
typedef T value_type;
typedef value_type* iterator;
typedef value_type const* const_iterator;
std::vector<T> arr;
public:
array2d() :arr(R*C) {}
explicit array2d(std::initializer_list<T> l):arr(l) {}
constexpr T* data() noexcept { return arr.data(); }
constexpr T const * data() const noexcept { return arr.data(); }
constexpr T& at(size_t const r, size_t const c)
{
return arr.at(r*C + c);
}
constexpr T const & at(size_t const r, size_t const c) const
{
return arr.at(r*C + c);
}
constexpr T& operator() (size_t const r, size_t const c)
{
return arr[r*C + c];
}
constexpr T const & operator() (size_t const r, size_t const c) const
{
return arr[r*C + c];
}
constexpr bool empty() const noexcept
{
return R == 0 || C == 0;
}
constexpr size_t size(int const rank) const
{
if (rank == 1) return R;
else if (rank == 2) return C;
throw std::out_of_range("Rank is out of range!");
}
void fill(T const & value)
{
std::fill(std::begin(arr), std::end(arr), value);
}
void swap(array2d & other) noexcept
{
arr.swap(other.arr);
}
const_iterator begin() const { return arr.data(); }
const_iterator end() const { return arr.data() + arr.size(); }
iterator begin() { return arr.data(); }
iterator end() { return arr.data() + arr.size(); }
};
template <class T, size_t R, size_t C>
void print_array2d(array2d<T, R, C> const & arr)
{
for (int i = 0; i < R; ++i)
{
for (int j = 0; j < C; ++j)
{
std::cout << arr.at(i, j) << ' ';
}
std::cout << std::endl;
}
}
int main()
{
{
std::cout << "test fill" << std::endl;
array2d<int, 2, 3> a;
a.fill(1);
print_array2d(a);
}
{
std::cout << "test operator()" << std::endl;
array2d<int, 2, 3> a;
for (size_t i = 0; i < a.size(1); ++i)
{
for (size_t j = 0; j < a.size(2); ++j)
{
a(i, j) = 1 + i * 3 + j;
}
}
print_array2d(a);
}
{
std::cout << "test move semantics" << std::endl;
array2d<int, 2, 3> a{10,20,30,40,50,60};
print_array2d(a);
array2d<int, 2, 3> b(std::move(a));
print_array2d(b);
}
{
std::cout << "test swap" << std::endl;
array2d<int, 2, 3> a { 1,2,3,4,5,6 };
array2d<int, 2, 3> b { 10,20,30,40,50,60 };
print_array2d(a);
print_array2d(b);
a.swap(b);
print_array2d(a);
print_array2d(b);
}
{
std::cout << "test capacity" << std::endl;
array2d<int, 2, 3> const a { 1,2,3,4,5,6 };
for (size_t i = 0; i < a.size(1); ++i)
{
for (size_t j = 0; j < a.size(2); ++j)
{
std::cout << a(i, j) << ' ';
}
std::cout << std::endl;
}
}
{
std::cout << "test iterators" << std::endl;
array2d<int, 2, 3> const a{ 1,2,3,4,5,6 };
for (auto const e : a)
{
std::cout << e << ' ';
}
std::cout << std::endl;
std::copy(
std::begin(a), std::end(a),
std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
}
}
================================================
FILE: Chapter02/problem_18/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_18)
add_executable(problem_18 main.cpp)
set_target_properties (problem_18 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_18/main.cpp
================================================
#include <iostream>
#include <functional>
template <typename T>
T minimum(T const a, T const b) { return a < b ? a : b; }
template <typename T1, typename... T>
T1 minimum(T1 a, T... args)
{
return minimum(a, minimum(args...));
}
template <class Compare, typename T>
T minimumc(Compare comp, T const a, T const b) { return comp(a, b) ? a : b; }
template <class Compare, typename T1, typename... T>
T1 minimumc(Compare comp, T1 a, T... args)
{
return minimumc(comp, a, minimumc(comp, args...));
}
int main()
{
auto x = minimum(5, 4, 2, 3);
std::cout << x << std::endl;
auto y = minimumc(std::less<>(), 3, 2, 1, 0);
std::cout << y << std::endl;
}
================================================
FILE: Chapter02/problem_19/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_19)
add_executable(problem_19 main.cpp)
set_target_properties (problem_19 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_19/main.cpp
================================================
#include <iostream>
#include <cstdlib>
#include <vector>
#include <iterator>
#include <list>
template<typename C, typename... Args>
void push_back(C& c, Args&&... args)
{
(c.push_back(args), ...);
}
int main()
{
std::vector<int> v;
push_back(v, 1, 2, 3, 4);
std::copy(std::begin(v), std::end(v),
std::ostream_iterator<int>(std::cout, " "));
std::list<int> l;
push_back(l, 1, 2, 3, 4);
std::copy(std::begin(l), std::end(l),
std::ostream_iterator<int>(std::cout, " "));
}
================================================
FILE: Chapter02/problem_20/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_20)
add_executable(problem_20 main.cpp)
set_target_properties (problem_20 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_20/main.cpp
================================================
#include <iostream>
#include <vector>
#include <array>
#include <list>
#include <assert.h>
template<class C, class T>
bool contains(C const & c, T const & value)
{
return std::end(c) != std::find(std::begin(c), std::end(c), value);
}
template<class C, class... T>
bool contains_any(C const & c, T &&... value)
{
return (... || contains(c, value));
}
template<class C, class... T>
bool contains_all(C const & c, T &&... value)
{
return (... && contains(c, value));
}
template<class C, class... T>
bool contains_none(C const & c, T &&... value)
{
return !contains_any(c, std::forward<T>(value)...);
}
int main()
{
std::vector<int> v{ 1,2,3,4,5,6 };
std::array<int, 6> a{ { 1,2,3,4,5,6 } };
std::list<int> l{ 1,2,3,4,5,6 };
assert(contains(v, 3));
assert(contains(a, 3));
assert(contains(l, 3));
assert(!contains(v, 30));
assert(!contains(v, 30));
assert(!contains(v, 30));
assert(contains_any(v, 0, 3, 30));
assert(contains_any(a, 0, 3, 30));
assert(contains_any(l, 0, 3, 30));
assert(!contains_any(v, 0, 30));
assert(!contains_any(a, 0, 30));
assert(!contains_any(l, 0, 30));
assert(contains_all(v, 1, 3, 6));
assert(contains_all(a, 1, 3, 6));
assert(contains_all(l, 1, 3, 6));
assert(!contains_all(v, 0, 1));
assert(!contains_all(a, 0, 1));
assert(!contains_all(l, 0, 1));
assert(contains_none(v, 0, 7));
assert(contains_none(a, 0, 7));
assert(contains_none(l, 0, 7));
assert(!contains_none(v, 0, 6, 7));
assert(!contains_none(a, 0, 6, 7));
assert(!contains_none(l, 0, 6, 7));
}
================================================
FILE: Chapter02/problem_21/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_21)
add_executable(problem_21 main.cpp)
set_target_properties (problem_21 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_21/main.cpp
================================================
#ifdef _WIN32
#include <windows.h>
#else
typedef void *HANDLE;
#define DWORD unsigned long
#ifdef _LP64
#define LONG_PTR long long
#define ULONG_PTR unsigned long long
#else
#define LONG_PTR long
#define ULONG_PTR unsigned long
#endif
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
struct SECURITY_ATTRIBUTES
{
DWORD nLength;
void* lpSecurityDescriptor;
int bInheritHandle;
};
struct OVERLAPPED
{
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
} DUMMYSTRUCTNAME;
void* Pointer;
} DUMMYUNIONNAME;
HANDLE hEvent;
};
int CloseHandle(HANDLE hObject) {return 0;}
HANDLE CreateFile(char const *,
DWORD,
DWORD,
SECURITY_ATTRIBUTES*,
DWORD,
DWORD,
HANDLE)
{return INVALID_HANDLE_VALUE;}
int ReadFile(HANDLE,
void*,
DWORD,
DWORD *,
OVERLAPPED*)
{return 0;}
#define GENERIC_READ 0x80000000L
#define GENERIC_WRITE 0x40000000L
#define CREATE_NEW 1
#define CREATE_ALWAYS 2
#define OPEN_EXISTING 3
#define OPEN_ALWAYS 4
#define TRUNCATE_EXISTING 5
#define FILE_SHARE_READ 1
#define FILE_ATTRIBUTE_NORMAL 0x00000080
#endif
#include <algorithm>
#include <vector>
template <typename Traits>
class unique_handle
{
using pointer = typename Traits::pointer;
pointer m_value;
public:
unique_handle(unique_handle const &) = delete;
unique_handle& operator=(unique_handle const &) = delete;
explicit unique_handle(pointer value = Traits::invalid()) noexcept
:m_value{ value }
{}
unique_handle(unique_handle && other) noexcept
: m_value{ other.release() }
{}
unique_handle& operator=(unique_handle && other) noexcept
{
if (this != &other)
{
reset(other.release());
}
return *this;
}
~unique_handle() noexcept
{
Traits::close(m_value);
}
explicit operator bool() const noexcept
{
return m_value != Traits::invalid();
}
pointer get() const noexcept
{
return m_value;
}
pointer release() noexcept
{
auto value = m_value;
m_value = Traits::invalid();
return value;
}
bool reset(pointer value = Traits::invalid()) noexcept
{
if (m_value != value)
{
Traits::close(m_value);
m_value = value;
}
return static_cast<bool>(*this);
}
void swap(unique_handle<Traits> & other) noexcept
{
std::swap(m_value, other.m_value);
}
};
template <typename Traits>
void swap(unique_handle<Traits> & left,
unique_handle<Traits> & right) noexcept
{
left.swap(right);
}
template <typename Traits>
bool operator==(
unique_handle<Traits> const & left,
unique_handle<Traits> const & right) noexcept
{
return left.get() == right.get();
}
template <typename Traits>
bool operator!=(
unique_handle<Traits> const & left,
unique_handle<Traits> const & right) noexcept
{
return left.get() != right.get();
}
struct null_handle_traits
{
using pointer = HANDLE;
static pointer invalid() noexcept
{
return nullptr;
}
static void close(pointer value) noexcept
{
CloseHandle(value);
}
};
struct invalid_handle_traits
{
using pointer = HANDLE;
static pointer invalid() noexcept
{
return INVALID_HANDLE_VALUE;
}
static void close(pointer value) noexcept
{
CloseHandle(value);
}
};
using null_handle = unique_handle<null_handle_traits>;
using invalid_handle = unique_handle<invalid_handle_traits>;
void function_that_throws()
{
throw std::runtime_error("an error has occurred");
}
void bad_handle_example()
{
bool condition1 = false;
bool condition2 = true;
HANDLE handle = CreateFile("sample.txt",
GENERIC_READ,
FILE_SHARE_READ,
nullptr,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
nullptr);
if (handle == INVALID_HANDLE_VALUE)
return;
if (condition1)
{
CloseHandle(handle);
return;
}
std::vector<char> buffer(1024);
unsigned long bytesRead = 0;
ReadFile(handle, buffer.data(), buffer.size(), &bytesRead, nullptr);
if (condition2)
{
// oops, forgot to close handle
return;
}
// throws exception; the next line will not execute
function_that_throws();
CloseHandle(handle);
}
void good_handle_example()
{
bool condition1 = false;
bool condition2 = true;
invalid_handle handle{
CreateFile("sample.txt",
GENERIC_READ,
FILE_SHARE_READ,
nullptr,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
nullptr) };
if (!handle) return;
if (condition1) return;
std::vector<char> buffer(1024);
unsigned long bytesRead = 0;
ReadFile(handle.get(),
buffer.data(),
buffer.size(),
&bytesRead,
nullptr);
if (condition2) return;
function_that_throws();
}
int main()
{
try
{
bad_handle_example();
}
catch (...) {}
try
{
good_handle_example();
}
catch (...) {}
return 0;
}
================================================
FILE: Chapter02/problem_22/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_22)
add_executable(problem_22 main.cpp)
set_target_properties (problem_22 PROPERTIES FOLDER "02.Language")
================================================
FILE: Chapter02/problem_22/main.cpp
================================================
#include <cmath>
#include <assert.h>
bool are_equal(double const d1, double const d2, double const epsilon = 0.001)
{
return std::fabs(d1 - d2) < epsilon;
}
namespace temperature
{
enum class scale
{
celsius,
fahrenheit,
kelvin
};
template <scale S>
class quantity
{
const double amount;
public:
constexpr explicit quantity(double const a) : amount(a) {}
explicit operator double() const { return amount; }
};
template <scale S>
inline bool operator==(quantity<S> const & lhs, quantity<S> const & rhs)
{
return are_equal(static_cast<double>(lhs), static_cast<double>(rhs));
}
template <scale S>
inline bool operator!=(quantity<S> const & lhs, quantity<S> const & rhs)
{
return !(lhs == rhs);
}
template <scale S>
inline bool operator< (quantity<S> const & lhs, quantity<S> const & rhs)
{
return static_cast<double>(lhs) < static_cast<double>(rhs);
}
template <scale S>
inline bool operator> (quantity<S> const & lhs, quantity<S> const & rhs)
{
return rhs < lhs;
}
template <scale S>
inline bool operator<=(quantity<S> const & lhs, quantity<S> const & rhs)
{
return !(lhs > rhs);
}
template <scale S>
inline bool operator>=(quantity<S> const & lhs, quantity<S> const & rhs)
{
return !(lhs < rhs);
}
template <scale S>
constexpr quantity<S> operator+(quantity<S> const &q1, quantity<S> const &q2)
{
return quantity<S>(static_cast<double>(q1) + static_cast<double>(q2));
}
template <scale S>
constexpr quantity<S> operator-(quantity<S> const &q1, quantity<S> const &q2)
{
return quantity<S>(static_cast<double>(q1) - static_cast<double>(q2));
}
template <scale S, scale R>
struct conversion_traits
{
static double convert(double const value) = delete;
};
template <>
struct conversion_traits<scale::celsius, scale::kelvin>
{
static double convert(double const value)
{
return value + 273.15;
}
};
template <>
struct conversion_traits<scale::kelvin, scale::celsius>
{
static double convert(double const value)
{
return value - 273.15;
}
};
template <>
struct conversion_traits<scale::celsius, scale::fahrenheit>
{
static double convert(double const value)
{
return (value * 9) / 5 + 32;;
}
};
template <>
struct conversion_traits<scale::fahrenheit, scale::celsius>
{
static double convert(double const value)
{
return (value - 32) * 5 / 9;
}
};
template <>
struct conversion_traits<scale::fahrenheit, scale::kelvin>
{
static double convert(double const value)
{
return (value + 459.67) * 5 / 9;
}
};
template <>
struct conversion_traits<scale::kelvin, scale::fahrenheit>
{
static double convert(double const value)
{
return (value * 9) / 5 - 459.67;
}
};
template <scale R, scale S>
constexpr quantity<R> temperature_cast(quantity<S> const q)
{
return quantity<R>(conversion_traits<S, R>::convert(static_cast<double>(q)));
}
namespace temperature_scale_literals
{
constexpr quantity<scale::celsius> operator "" _deg(long double const amount)
{
return quantity<scale::celsius> {static_cast<double>(amount)};
}
constexpr quantity<scale::fahrenheit> operator "" _f(long double const amount)
{
return quantity<scale::fahrenheit> {static_cast<double>(amount)};
}
constexpr quantity<scale::kelvin> operator "" _k(long double const amount)
{
return quantity<scale::kelvin> {static_cast<double>(amount)};
}
}
}
int main()
{
using namespace temperature;
using namespace temperature_scale_literals;
auto t1{ 36.5_deg };
auto t2{ 79.0_f };
auto t3{ 100.0_k };
{
auto tf = temperature_cast<scale::fahrenheit>(t1);
auto tc = temperature_cast<scale::celsius>(tf);
assert(t1 == tc);
}
{
auto tk = temperature_cast<scale::kelvin>(t1);
auto tc = temperature_cast<scale::celsius>(tk);
assert(t1 == tc);
}
{
auto tc = temperature_cast<scale::celsius>(t2);
auto tf = temperature_cast<scale::fahrenheit>(tc);
assert(t2 == tf);
}
{
auto tk = temperature_cast<scale::kelvin>(t2);
auto tf = temperature_cast<scale::fahrenheit>(tk);
assert(t2 == tf);
}
{
auto tc = temperature_cast<scale::celsius>(t3);
auto tk = temperature_cast<scale::kelvin>(tc);
assert(t3 == tk);
}
{
auto tf = temperature_cast<scale::fahrenheit>(t3);
auto tk = temperature_cast<scale::kelvin>(tf);
assert(t3 == tk);
}
}
================================================
FILE: Chapter03/problem_23/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_23)
add_executable(problem_23 main.cpp)
set_target_properties (problem_23 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_23/main.cpp
================================================
#include <string>
#include <sstream>
#include <iomanip>
#include <vector>
#include <array>
#include <assert.h>
template <typename Iter>
std::string bytes_to_hexstr(Iter begin, Iter end, bool const uppercase = false)
{
std::ostringstream oss;
if(uppercase)
oss.setf(std::ios_base::uppercase);
for (; begin != end; ++begin)
oss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(*begin);
return oss.str();
}
template <typename C>
std::string bytes_to_hexstr(C const & c, bool const uppercase = false)
{
return bytes_to_hexstr(std::cbegin(c), std::cend(c), uppercase);
}
int main()
{
std::vector<unsigned char> v{ 0xBA, 0xAD, 0xF0, 0x0D };
std::array<unsigned char, 6> a{{ 1,2,3,4,5,6 }};
unsigned char buf[5] = {0x11, 0x22, 0x33, 0x44, 0x55};
assert(bytes_to_hexstr(v, true) == "BAADF00D");
assert(bytes_to_hexstr(a, true) == "010203040506");
assert(bytes_to_hexstr(buf, true) == "1122334455");
assert(bytes_to_hexstr(v) == "baadf00d");
assert(bytes_to_hexstr(a) == "010203040506");
assert(bytes_to_hexstr(buf) == "1122334455");
}
================================================
FILE: Chapter03/problem_24/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_24)
add_executable(problem_24 main.cpp)
set_target_properties (problem_24 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_24/main.cpp
================================================
#include <string>
#include <string_view>
#include <sstream>
#include <vector>
#include <array>
#include <assert.h>
unsigned char hexchar_to_int(char const ch)
{
if (ch >= '0' && ch <= '9') return ch - '0';
if (ch >= 'A' && ch <= 'F') return ch - 'A' + 10;
if (ch >= 'a' && ch <= 'f') return ch - 'a' + 10;
throw std::invalid_argument("Invalid hexadecimal character");
}
std::vector<unsigned char> hexstr_to_bytes(std::string_view str)
{
std::vector<unsigned char> result;
for (size_t i = 0; i < str.size(); i += 2)
{
result.push_back(
(hexchar_to_int(str[i]) << 4) | hexchar_to_int(str[i+1]));
}
return result;
}
int main()
{
std::vector<unsigned char> expected{ 0xBA, 0xAD, 0xF0, 0x0D, 0x42 };
assert(hexstr_to_bytes("BAADF00D42") == expected);
assert(hexstr_to_bytes("BaaDf00d42") == expected);
}
================================================
FILE: Chapter03/problem_25/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_25)
add_executable(problem_25 main.cpp)
set_target_properties (problem_25 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_25/main.cpp
================================================
#include <string>
#include <sstream>
#include <cctype>
#include <assert.h>
template <class Elem>
using tstring = std::basic_string<Elem, std::char_traits<Elem>, std::allocator<Elem>>;
template <class Elem>
using tstringstream = std::basic_stringstream<Elem, std::char_traits<Elem>, std::allocator<Elem>>;
template <class Elem>
tstring<Elem> capitalize(tstring<Elem> const & text)
{
tstringstream<Elem> result;
bool newWord = true;
for (auto const ch : text)
{
newWord = newWord || std::ispunct(ch) || std::isspace(ch);
if (std::isalpha(ch))
{
if (newWord)
{
result << static_cast<Elem>(std::toupper(ch));
newWord = false;
}
else
result << static_cast<Elem>(std::tolower(ch));
}
else result << ch;
}
return result.str();
}
int main()
{
using namespace std::string_literals;
std::string text = "THIS IS an ExamplE, should wORk!";
std::string expected = "This Is An Example, Should Work!";
assert(expected == capitalize(text));
assert(
L"The C++ Challenger"s ==
capitalize(L"the c++ challenger"s));
assert(
L"This Is An Example, Should Work!"s ==
capitalize(L"THIS IS an ExamplE, should wORk!"s));
}
================================================
FILE: Chapter03/problem_26/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_26)
add_executable(problem_26 main.cpp)
set_target_properties (problem_26 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_26/main.cpp
================================================
#include <string>
#include <iterator>
#include <sstream>
#include <vector>
#include <array>
#include <list>
#include <assert.h>
template <typename Iter>
std::string join_strings(Iter begin, Iter end, char const * const separator)
{
std::ostringstream os;
std::copy(begin, end-1, std::ostream_iterator<std::string>(os, separator));
os << *(end-1);
return os.str();
}
template <typename C>
std::string join_strings(C const & c, char const * const separator)
{
if (c.size() == 0) return std::string{};
return join_strings(std::begin(c), std::end(c), separator);
}
int main()
{
using namespace std::string_literals;
std::vector<std::string> v1{ "this","is","an","example" };
std::vector<std::string> v2{ "example" };
std::vector<std::string> v3{ };
assert(
join_strings(v1, " ") == "this is an example"s);
assert(
join_strings(v2, " ") == "example"s);
assert(
join_strings(v3, " ") == ""s);
std::array<std::string, 4> a1{ {"this","is","an","example"} };
std::array<std::string, 1> a2{ {"example"} };
std::array<std::string, 0> a3{};
assert(
join_strings(a1, " ") == "this is an example"s);
assert(
join_strings(a2, " ") == "example"s);
assert(
join_strings(a3, " ") == ""s);
}
================================================
FILE: Chapter03/problem_27/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_27)
add_executable(problem_27 main.cpp)
set_target_properties (problem_27 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_27/main.cpp
================================================
#include <string>
#include <sstream>
#include <vector>
#include <assert.h>
template <class Elem>
using tstring = std::basic_string<Elem, std::char_traits<Elem>, std::allocator<Elem>>;
template <class Elem>
using tstringstream = std::basic_stringstream<Elem, std::char_traits<Elem>, std::allocator<Elem>>;
template<typename Elem>
inline std::vector<tstring<Elem>> split(tstring<Elem> text, Elem const delimiter)
{
auto sstr = tstringstream<Elem>{ text };
auto tokens = std::vector<tstring<Elem>>{};
auto token = tstring<Elem>{};
while (std::getline(sstr, token, delimiter))
{
if (!token.empty()) tokens.push_back(token);
}
return tokens;
}
template<typename Elem>
inline std::vector<tstring<Elem>> split(tstring<Elem> text, tstring<Elem> const & delimiters)
{
auto tokens = std::vector<tstring<Elem>>{};
size_t pos, prev_pos = 0;
while ((pos = text.find_first_of(delimiters, prev_pos)) != std::string::npos)
{
if (pos > prev_pos)
tokens.push_back(text.substr(prev_pos, pos - prev_pos));
prev_pos = pos + 1;
}
if (prev_pos< text.length())
tokens.push_back(text.substr(prev_pos, std::string::npos));
return tokens;
}
int main()
{
using namespace std::string_literals;
std::vector<std::string> expected{"this", "is", "a", "sample"};
assert(expected == split("this is a sample"s, ' '));
assert(expected == split("this,is a.sample!!"s, ",.! "s));
}
================================================
FILE: Chapter03/problem_28/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_28)
add_executable(problem_28 main.cpp)
set_target_properties (problem_28 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_28/main.cpp
================================================
#include <string>
#include <string_view>
#include <vector>
#include <assert.h>
std::string longest_palindrome(std::string_view str)
{
size_t const len = str.size();
size_t longestBegin = 0;
size_t maxLen = 1;
std::vector<bool> table(len * len, false);
for (size_t i = 0; i < len; i++)
{
table[i*len + i] = true;
}
for (size_t i = 0; i < len - 1; i++)
{
if (str[i] == str[i + 1])
{
table[i*len + i + 1] = true;
if (maxLen < 2)
{
longestBegin = i;
maxLen = 2;
}
}
}
for (size_t k = 3; k <= len; k++)
{
for (size_t i = 0; i < len - k + 1; i++)
{
size_t j = i + k - 1;
if (str[i] == str[j] && table[(i + 1)*len + j - 1])
{
table[i*len +j] = true;
if (maxLen < k)
{
longestBegin = i;
maxLen = k;
}
}
}
}
return std::string(str.substr(longestBegin, maxLen));
}
int main()
{
using namespace std::string_literals;
assert(longest_palindrome("sahararahnide") == "hararah");
assert(longest_palindrome("level") == "level");
assert(longest_palindrome("s") == "s");
assert(longest_palindrome("aabbcc") == "aa");
assert(longest_palindrome("abab") == "aba");
}
================================================
FILE: Chapter03/problem_29/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_29)
add_executable(problem_29 main.cpp)
set_target_properties (problem_29 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_29/main.cpp
================================================
#include <string>
#include <string_view>
#include <regex>
#include <assert.h>
bool validate_license_plate_format(std::string_view str)
{
std::regex rx(R"([A-Z]{3}-[A-Z]{2} \d{3,4})");
return std::regex_match(str.data(), rx);
}
std::vector<std::string> extract_license_plate_numbers(std::string const & str)
{
std::regex rx(R"(([A-Z]{3}-[A-Z]{2} \d{3,4})*)");
std::smatch match;
std::vector<std::string> results;
for(auto i = std::sregex_iterator(std::cbegin(str), std::cend(str), rx);
i != std::sregex_iterator(); ++i)
{
if((*i)[1].matched)
results.push_back(i->str());
}
return results;
}
int main()
{
assert(validate_license_plate_format("ABC-DE 123"));
assert(validate_license_plate_format("ABC-DE 1234"));
assert(!validate_license_plate_format("ABC-DE 12345"));
assert(!validate_license_plate_format("abc-de 1234"));
std::vector<std::string> expected{"AAA-AA 123", "ABC-DE 1234", "XYZ-WW 0001"};
std::string text("AAA-AA 123qwe-ty 1234 ABC-DE 123456..XYZ-WW 0001");
assert(expected == extract_license_plate_numbers(text));
}
================================================
FILE: Chapter03/problem_30/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_30)
if(BOOST_OPTIONAL)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_OPTIONAL)
endif()
add_executable(problem_30 main.cpp)
set_target_properties (problem_30 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_30/main.cpp
================================================
#include <string>
#include <string_view>
#include <regex>
#include <assert.h>
#ifdef USE_BOOST_OPTIONAL
# include <boost/optional.hpp>
using boost::optional;
#else
# include <optional>
using std::optional;
#endif
struct uri_parts
{
std::string protocol;
std::string domain;
optional<int> port;
optional<std::string> path;
optional<std::string> query;
optional<std::string> fragment;
};
optional<uri_parts> parse_uri(std::string uri)
{
std::regex rx(R"(^(\w+):\/\/([\w.-]+)(:(\d+))?([\w\/\.]+)?(\?([\w=&]*)(#?(\w+))?)?$)");
auto matches = std::smatch{};
if (std::regex_match(uri, matches, rx))
{
if (matches[1].matched && matches[2].matched)
{
uri_parts parts;
parts.protocol = matches[1].str();
parts.domain = matches[2].str();
if(matches[4].matched)
parts.port = std::stoi(matches[4]);
if (matches[5].matched)
parts.path = matches[5];
if (matches[7].matched)
parts.query = matches[7];
if (matches[9].matched)
parts.fragment = matches[9];
return parts;
}
}
return {};
}
int main()
{
auto p1 = parse_uri("https://packt.com");
assert(p1);
assert(p1->protocol == "https");
assert(p1->domain == "packt.com");
assert(!p1->port);
assert(!p1->path);
assert(!p1->query);
assert(!p1->fragment);
auto p2 = parse_uri("https://bbc.com:80/en/index.html?lite=true#ui");
assert(p2);
assert(p2->protocol == "https");
assert(p2->domain == "bbc.com");
assert(p2->port == 80);
assert(p2->path.value() == "/en/index.html");
assert(p2->query.value() == "lite=true");
assert(p2->fragment.value() == "ui");
}
================================================
FILE: Chapter03/problem_31/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_31)
add_executable(problem_31 main.cpp)
set_target_properties (problem_31 PROPERTIES FOLDER "03.Strings")
================================================
FILE: Chapter03/problem_31/main.cpp
================================================
#include <string>
#include <string_view>
#include <regex>
#include <assert.h>
std::string transform_date(std::string_view text)
{
auto rx = std::regex{ R"((\d{1,2})(\.|-|/)(\d{1,2})(\.|-|/)(\d{4}))" };
return std::regex_replace(text.data(), rx, R"($5-$3-$1)");
}
int main()
{
using namespace std::string_literals;
assert(
transform_date("today is 01.12.2017!"s) ==
"today is 2017-12-01!"s);
}
================================================
FILE: Chapter04/problem_32/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_32)
add_executable(problem_32 main.cpp)
set_target_properties (problem_32 PROPERTIES FOLDER "04.Streams")
================================================
FILE: Chapter04/problem_32/main.cpp
================================================
#include <string>
#include <iostream>
#include <cmath>
unsigned int number_of_digits(unsigned int const i)
{
return i > 0 ? (int)log10((double)i) + 1 : 1;
}
void print_pascal_triangle(int const n)
{
for (int i = 0; i < n; i++)
{
auto x = 1;
std::cout << std::string((n - i - 1)*(n / 2), ' ');
for (int j = 0; j <= i; j++)
{
auto y = x;
x = x * (i - j) / (j + 1);
auto maxlen = number_of_digits(x) - 1;
std::cout << y << std::string(n - 1 - maxlen - n%2, ' ');
}
std::cout << std::endl;
}
}
int main()
{
int n = 0;
std::cout << "Levels (up to 10): ";
std::cin >> n;
if (n > 10)
std::cout << "Value too large" << std::endl;
else
print_pascal_triangle(n);
}
================================================
FILE: Chapter04/problem_33/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_33)
add_executable(problem_33 main.cpp)
set_target_properties (problem_33 PROPERTIES FOLDER "04.Streams")
================================================
FILE: Chapter04/problem_33/main.cpp
================================================
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <algorithm>
enum class procstatus {suspended, running};
std::string status_to_string(procstatus const status)
{
if (status == procstatus::suspended) return "suspended";
else return "running";
}
enum class platforms {p32bit, p64bit};
std::string platform_to_string(platforms const platform)
{
if (platform == platforms::p32bit) return "32-bit";
else return "64-bit";
}
struct procinfo
{
int id;
std::string name;
procstatus status;
std::string account;
size_t memory;
platforms platform;
};
void print_processes(std::vector<procinfo> processes)
{
std::sort(
std::begin(processes), std::end(processes),
[](procinfo const & p1, procinfo const & p2) {
return p1.name < p2.name; });
for (auto const & pi : processes)
{
std::cout << std::left << std::setw(25) << std::setfill(' ')
<< pi.name;
std::cout << std::left << std::setw(8) << std::setfill(' ')
<< pi.id;
std::cout << std::left << std::setw(12) << std::setfill(' ')
<< status_to_string(pi.status);
std::cout << std::left << std::setw(15) << std::setfill(' ')
<< pi.account;
std::cout << std::right << std::setw(10) << std::setfill(' ')
<< (int)(pi.memory/1024);
std::cout << std::left << ' ' << platform_to_string(pi.platform);
std::cout << std::endl;
}
}
int main()
{
using namespace std::string_literals;
std::vector<procinfo> processes
{
{512, "cmd.exe"s, procstatus::running, "SYSTEM"s, 148293, platforms::p64bit },
{1044, "chrome.exe"s, procstatus::running, "marius.bancila"s, 25180454, platforms::p32bit},
{7108, "explorer.exe"s, procstatus::running, "marius.bancila"s, 2952943, platforms::p64bit },
{10100, "chrome.exe"s, procstatus::running, "marius.bancila"s, 227756123, platforms::p32bit},
{22456, "skype.exe"s, procstatus::suspended, "marius.bancila"s, 16870123, platforms::p64bit },
};
print_processes(processes);
}
================================================
FILE: Chapter04/problem_34/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_34)
if(BOOST_FILESYSTEM)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_FILESYSTEM)
else()
if(MSVC)
add_definitions(-DFILESYSTEM_EXPERIMENTAL)
endif()
endif()
add_executable(problem_34 main.cpp)
if(BOOST_FILESYSTEM)
if(UNIX)
find_package(Boost COMPONENTS system filesystem REQUIRED)
target_link_libraries(problem_34 ${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY})
endif()
endif()
add_custom_command(TARGET problem_34 PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_SOURCE_DIR}/sample34.txt $<TARGET_FILE_DIR:problem_34>)
add_custom_command(TARGET problem_34 PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_SOURCE_DIR}/sample34.txt ${CMAKE_CURRENT_BINARY_DIR})
set_target_properties (problem_34 PROPERTIES FOLDER "04.Streams")
================================================
FILE: Chapter04/problem_34/main.cpp
================================================
#include <fstream>
#include <string>
#ifdef USE_BOOST_FILESYSTEM
# include <boost/filesystem/path.hpp>
# include <boost/filesystem/operations.hpp>
namespace fs = boost::filesystem;
#else
# include <filesystem>
# ifdef FILESYSTEM_EXPERIMENTAL
namespace fs = std::experimental::filesystem;
# else
namespace fs = std::filesystem;
# endif
#endif
void remove_empty_lines(fs::path filepath)
{
std::ifstream filein(filepath.native(), std::ios::in);
if (!filein.is_open())
throw std::runtime_error("cannot open input file");
auto temppath = fs::temp_directory_path() / "temp.txt";
std::ofstream fileout(temppath.native(), std::ios::out | std::ios::trunc);
if (!fileout.is_open())
throw std::runtime_error("cannot create temporary file");
std::string line;
while (std::getline(filein, line))
{
if (line.length() > 0 &&
line.find_first_not_of(' ') != line.npos)
{
fileout << line << '\n';
}
}
filein.close();
fileout.close();
fs::remove(filepath);
fs::rename(temppath, filepath);
}
int main()
{
remove_empty_lines("sample34.txt");
}
================================================
FILE: Chapter04/problem_34/sample34.txt
================================================
If
BY RUDYARD KIPLING
If you can keep your head when all about you
Are losing theirs and blaming it on you,
If you can trust yourself when all men doubt you,
But make allowance for their doubting too;
If you can wait and not be tired by waiting,
Or being lied about, dont deal in lies,
Or being hated, dont give way to hating,
And yet dont look too good, nor talk too wise:
If you can dream-and not make dreams your master;
If you can think-and not make thoughts your aim;
If you can meet with Triumph and Disaster
And treat those two impostors just the same;
If you can bear to hear the truth youve spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to, broken,
And stoop and build em up with worn-out tools:
If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breathe a word about your loss;
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: Hold on!
If you can talk with crowds and keep your virtue,
Or walk with Kings-nor lose the common touch,
If neither foes nor loving friends can hurt you,
If all men count with you, but none too much;
If you can fill the unforgiving minute
With sixty seconds worth of distance run,
Yours is the Earth and everything thats in it,
And-which is more-youll be a Man, my son!
================================================
FILE: Chapter04/problem_35/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_35)
if(BOOST_FILESYSTEM)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_FILESYSTEM)
else()
if(MSVC)
add_definitions(-DFILESYSTEM_EXPERIMENTAL)
endif()
endif()
add_executable(problem_35 main.cpp)
if(BOOST_FILESYSTEM)
if(UNIX)
find_package(Boost COMPONENTS system filesystem REQUIRED)
target_link_libraries(problem_35 ${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY})
endif()
endif()
set_target_properties (problem_35 PROPERTIES FOLDER "04.Streams")
================================================
FILE: Chapter04/problem_35/main.cpp
================================================
#include <iostream>
#include <numeric>
#include <string>
#ifdef USE_BOOST_FILESYSTEM
# include <boost/filesystem/path.hpp>
# include <boost/filesystem/operations.hpp>
namespace fs = boost::filesystem;
#else
# include <filesystem>
# ifdef FILESYSTEM_EXPERIMENTAL
namespace fs = std::experimental::filesystem;
# else
namespace fs = std::filesystem;
# endif
#endif
std::uintmax_t get_directory_size(
fs::path const & dir,
bool const follow_symlinks = false)
{
#ifdef USE_BOOST_FILESYSTEM
auto iterator = fs::recursive_directory_iterator(
dir,
follow_symlinks ? fs::symlink_option::recurse : fs::symlink_option::none);
#else
auto iterator = fs::recursive_directory_iterator(
dir,
follow_symlinks ? fs::directory_options::follow_directory_symlink : fs::directory_options::none);
#endif
return std::accumulate(
fs::begin(iterator), fs::end(iterator),
0ull,
[](std::uintmax_t const total,
fs::directory_entry const & entry) {
return total + (fs::is_regular_file(entry) ?
fs::file_size(entry.path()) : 0);
});
}
int main()
{
std::string path;
std::cout << "Path: ";
std::cin >> path;
std::cout << "Size: " << get_directory_size(path) << std::endl;
}
================================================
FILE: Chapter04/problem_36/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_36)
if(BOOST_FILESYSTEM)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_FILESYSTEM)
else()
if(MSVC)
add_definitions(-DFILESYSTEM_EXPERIMENTAL)
endif()
endif()
add_executable(problem_36 main.cpp)
if(BOOST_FILESYSTEM)
if(UNIX)
find_package(Boost COMPONENTS system filesystem REQUIRED)
target_link_libraries(problem_36 ${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY})
endif()
endif()
set_target_properties (problem_36 PROPERTIES FOLDER "04.Streams")
================================================
FILE: Chapter04/problem_36/main.cpp
================================================
#include <iostream>
#include <chrono>
#ifdef USE_BOOST_FILESYSTEM
# include <boost/filesystem/path.hpp>
# include <boost/filesystem/operations.hpp>
namespace fs = boost::filesystem;
#else
# include <filesystem>
# ifdef FILESYSTEM_EXPERIMENTAL
namespace fs = std::experimental::filesystem;
# else
namespace fs = std::filesystem;
# endif
#endif
namespace ch = std::chrono;
template <typename Duration>
bool is_older_than(fs::path const & path, Duration const duration)
{
auto lastwrite = fs::last_write_time(path);
#ifdef USE_BOOST_FILESYSTEM
auto ftimeduration = ch::system_clock::from_time_t(lastwrite).time_since_epoch();
#else
auto ftimeduration = lastwrite.time_since_epoch();
#endif
auto nowduration = (ch::system_clock::now() - duration).time_since_epoch();
return ch::duration_cast<Duration>(nowduration - ftimeduration).count() > 0;
}
template <typename Duration>
void remove_files_older_than(fs::path const & path, Duration const duration)
{
try
{
if (fs::exists(path))
{
if (is_older_than(path, duration))
{
fs::remove(path);
}
else if(fs::is_directory(path))
{
for (auto const & entry : fs::directory_iterator(path))
{
remove_files_older_than(entry.path(), duration);
}
}
}
}
catch (std::exception const & ex)
{
std::cerr << ex.what() << std::endl;
}
}
int main()
{
using namespace std::chrono_literals;
#ifdef _WIN32
auto path = R"(..\Test\)";
#else
auto path = R"(../Test/)";
#endif
remove_files_older_than(path, 1h + 20min);
}
================================================
FILE: Chapter04/problem_37/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_37)
if(BOOST_FILESYSTEM)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_FILESYSTEM)
else()
if(MSVC)
add_definitions(-DFILESYSTEM_EXPERIMENTAL)
endif()
endif()
add_executable(problem_37 main.cpp)
if(BOOST_FILESYSTEM)
if(UNIX)
find_package(Boost COMPONENTS system filesystem REQUIRED)
target_link_libraries(problem_37 ${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY})
endif()
endif()
set_target_properties (problem_37 PROPERTIES FOLDER "04.Streams")
================================================
FILE: Chapter04/problem_37/main.cpp
================================================
#include <iostream>
#include <regex>
#include <vector>
#include <string>
#include <string_view>
#include <functional>
#ifdef USE_BOOST_FILESYSTEM
# include <boost/filesystem/path.hpp>
# include <boost/filesystem/operations.hpp>
namespace fs = boost::filesystem;
#else
# include <filesystem>
# ifdef FILESYSTEM_EXPERIMENTAL
namespace fs = std::experimental::filesystem;
# else
namespace fs = std::filesystem;
# endif
#endif
std::vector<fs::directory_entry> find_files(
fs::path const & path,
std::string_view regex)
{
std::vector<fs::directory_entry> result;
std::regex rx(regex.data());
std::copy_if(
fs::recursive_directory_iterator(path),
fs::recursive_directory_iterator(),
std::back_inserter(result),
[&rx](fs::directory_entry const & entry) {
return fs::is_regular_file(entry.path()) &&
std::regex_match(entry.path().filename().string(), rx);
});
return result;
}
int main()
{
auto dir = fs::temp_directory_path();
auto pattern = R"(wct[0-9a-zA-Z]{3}\.tmp)";
auto result = find_files(dir, pattern);
for (auto const & entry : result)
{
std::cout << entry.path().string() << std::endl;
}
}
================================================
FILE: Chapter04/problem_38/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_38)
include_directories(${LIBS_PATH}/stduuid)
if(BOOST_FILESYSTEM)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_FILESYSTEM)
else()
if(MSVC)
add_definitions(-DFILESYSTEM_EXPERIMENTAL)
endif()
endif()
add_executable(problem_38 main.cpp)
if(BOOST_FILESYSTEM)
if(UNIX)
find_package(Boost COMPONENTS system filesystem REQUIRED)
target_link_libraries(problem_38 ${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY})
endif()
endif()
set_target_properties (problem_38 PROPERTIES FOLDER "04.Streams")
================================================
FILE: Chapter04/problem_38/main.cpp
================================================
#include <iostream>
#include <fstream>
#include "uuid.h"
#ifdef USE_BOOST_FILESYSTEM
# include <boost/filesystem/path.hpp>
# include <boost/filesystem/operations.hpp>
namespace fs = boost::filesystem;
#else
# include <filesystem>
# ifdef FILESYSTEM_EXPERIMENTAL
namespace fs = std::experimental::filesystem;
# else
namespace fs = std::filesystem;
# endif
#endif
class logger
{
fs::path logpath;
std::ofstream logfile;
public:
logger()
{
auto name = uuids::to_string(uuids::uuid_random_generator{}());
logpath = fs::temp_directory_path() / (name + ".tmp");
logfile.open(logpath.c_str(), std::ios::out|std::ios::trunc);
}
~logger() noexcept
{
try {
if(logfile.is_open())
logfile.close();
if (!logpath.empty())
fs::remove(logpath);
}
catch (...) {
}
}
void persist(fs::path const & path)
{
logfile.close();
fs::rename(logpath, path);
logpath.clear();
}
logger& operator<<(std::string_view message)
{
logfile << message.data() << '\n';
return *this;
}
};
int main()
{
logger log;
try
{
log << "this is a line" << "and this is another one";
throw std::runtime_error("error");
}
catch (...)
{
log.persist(R"(lastlog.txt)");
}
}
================================================
FILE: Chapter05/problem_39/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_39)
add_executable(problem_39 main.cpp)
set_target_properties (problem_39 PROPERTIES FOLDER "05.Datetime")
================================================
FILE: Chapter05/problem_39/main.cpp
================================================
#include <iostream>
#include <chrono>
#include <thread>
template <typename Time = std::chrono::microseconds,
typename Clock = std::chrono::high_resolution_clock>
struct perf_timer
{
template <typename F, typename... Args>
static Time duration(F&& f, Args... args)
{
auto start = Clock::now();
std::invoke(std::forward<F>(f), std::forward<Args>(args)...);
auto end = Clock::now();
return std::chrono::duration_cast<Time>(end - start);
}
};
using namespace std::chrono_literals;
void f()
{
// simulate work
std::this_thread::sleep_for(2s);
}
void g(int const a, int const b)
{
// simulate work
std::this_thread::sleep_for(1s);
}
int main()
{
auto t1 = perf_timer<std::chrono::microseconds>::duration(f);
auto t2 = perf_timer<std::chrono::milliseconds>::duration(g, 1, 2);
auto total = std::chrono::duration<double, std::nano>(t1 + t2).count();
std::cout << total << std::endl;
}
================================================
FILE: Chapter05/problem_40/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_40)
include_directories(${LIBS_PATH}/date/include/date)
add_executable(problem_40 main.cpp)
set_target_properties (problem_40 PROPERTIES FOLDER "05.Datetime")
================================================
FILE: Chapter05/problem_40/main.cpp
================================================
#include <iostream>
#include "date.h"
inline int number_of_days(
int const y1, unsigned int const m1, unsigned int const d1,
int const y2, unsigned int const m2, unsigned int const d2)
{
using namespace date;
return (sys_days{ year{ y1 } / month{ m1 } / day{ d1 } } -
sys_days{ year{ y2 } / month{ m2 } / day{ d2 } }).count();
}
inline int number_of_days(date::sys_days const & first,
date::sys_days const & last)
{
return (last - first).count();
}
int main()
{
unsigned int y1 = 0, m1 = 0, d1 = 0;
std::cout << "First date" << std::endl;
std::cout << "Year:"; std::cin >> y1;
std::cout << "Month:"; std::cin >> m1;
std::cout << "Date:"; std::cin >> d1;
std::cout << "Second date" << std::endl;
unsigned int y2 = 0, m2 = 0, d2 = 0;
std::cout << "Year:"; std::cin >> y2;
std::cout << "Month:"; std::cin >> m2;
std::cout << "Date:"; std::cin >> d2;
std::cout << "Days between:" << number_of_days(y1, m1, d1, y2, m2, d2) << std::endl;
using namespace date::literals;
std::cout << "Days between:" << number_of_days(2018_y/jun/1, 15_d/sep/2018) << std::endl;
}
================================================
FILE: Chapter05/problem_41/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_41)
include_directories(${LIBS_PATH}/date/include/date)
add_executable(problem_41 main.cpp)
set_target_properties (problem_41 PROPERTIES FOLDER "05.Datetime")
================================================
FILE: Chapter05/problem_41/main.cpp
================================================
#include <iostream>
#include "date.h"
#include "iso_week.h"
unsigned int week_day(int const y, unsigned int const m, unsigned int const d)
{
using namespace date;
if(m < 1 || m > 12 || d < 1 || d > 31) return 0;
auto const dt = date::year_month_day{ year{ y }, month{ m }, day{ d } };
auto const tiso = iso_week::year_weeknum_weekday{ dt };
return (unsigned int)tiso.weekday();
}
int main()
{
int y = 0;
unsigned int m = 0, d = 0;
std::cout << "Year:"; std::cin >> y;
std::cout << "Month:"; std::cin >> m;
std::cout << "Day:"; std::cin >> d;
std::cout << "Day of week:" << week_day(y, m, d) << std::endl;
}
================================================
FILE: Chapter05/problem_42/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_42)
include_directories(${LIBS_PATH}/date/include/date)
add_executable(problem_42 main.cpp)
set_target_properties (problem_42 PROPERTIES FOLDER "05.Datetime")
================================================
FILE: Chapter05/problem_42/main.cpp
================================================
#include <iostream>
#include "date.h"
#include "iso_week.h"
unsigned int calendar_week(int const y, unsigned int const m, unsigned int const d)
{
using namespace date;
if(m < 1 || m > 12 || d < 1 || d > 31) return 0;
auto const dt = date::year_month_day{ year{ y }, month{ m }, day{ d } };
auto const tiso = iso_week::year_weeknum_weekday{ dt };
return (unsigned int)tiso.weeknum();
}
int day_of_year(int const y, unsigned int const m, unsigned int const d)
{
using namespace date;
if(m < 1 || m > 12 || d < 1 || d > 31) return 0;
return (sys_days{ year{ y } / month{ m } / day{ d } } -
sys_days{ year{ y } / jan / 0 }).count();
}
int main()
{
int y = 0;
unsigned int m = 0, d = 0;
std::cout << "Year:"; std::cin >> y;
std::cout << "Month:"; std::cin >> m;
std::cout << "Day:"; std::cin >> d;
std::cout << "Calendar week:" << calendar_week(y, m, d) << std::endl;
std::cout << "Day of year:" << day_of_year(y, m, d) << std::endl;
}
================================================
FILE: Chapter05/problem_43/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_43)
add_definitions(-DINSTALL=${LIBS_PATH}/date)
include_directories(${LIBS_PATH}/date/include/date)
include_directories(${LIBS_PATH}/date/include)
add_executable(problem_43 ${LIBS_PATH}/date/src/tz.cpp main.cpp)
set_target_properties (problem_43 PROPERTIES FOLDER "05.Datetime")
================================================
FILE: Chapter05/problem_43/main.cpp
================================================
#include <iostream>
#include <string>
#include <vector>
#include <string_view>
#include <iomanip>
#include "date.h"
#include "tz.h"
namespace ch = std::chrono;
struct user
{
std::string Name;
date::time_zone const * Zone;
user(std::string_view name, std::string_view zone)
: Name{name.data()}, Zone(date::locate_zone(zone.data()))
{
}
};
template <class Duration, class TimeZonePtr>
void print_meeting_times(
date::zoned_time<Duration, TimeZonePtr> const & time,
std::vector<user> const & users)
{
std::cout
<< std::left << std::setw(15) << std::setfill(' ')
<< "Local time: "
<< time << std::endl;
for (auto const & user : users)
{
std::cout
<< std::left << std::setw(15) << std::setfill(' ')
<< user.Name
<< date::zoned_time<Duration, TimeZonePtr>(user.Zone, time)
<< std::endl;
}
}
int main()
{
std::vector<user> users{
user{ "Ildiko", "Europe/Budapest" },
user{ "Jens", "Europe/Berlin" },
user{ "Jane", "America/New_York" }
};
unsigned int h, m;
std::cout << "Hour:"; std::cin >> h;
std::cout << "Minutes:"; std::cin >> m;
date::year_month_day today = date::floor<date::days>(ch::system_clock::now());
auto localtime = date::zoned_time<std::chrono::minutes>(
date::current_zone(),
static_cast<date::local_days>(today) + ch::hours{ h } +ch::minutes{ m });
print_meeting_times(localtime, users);
}
================================================
FILE: Chapter05/problem_44/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_44)
include_directories(${LIBS_PATH}/date/include/date)
add_executable(problem_44 main.cpp)
set_target_properties (problem_44 PROPERTIES FOLDER "05.Datetime")
================================================
FILE: Chapter05/problem_44/main.cpp
================================================
#include <iostream>
#include <iomanip>
#include "date.h"
#include "iso_week.h"
unsigned int week_day(int const y, unsigned int const m, unsigned int const d)
{
using namespace date;
if(m < 1 || m > 12 || d < 1 || d > 31) return 0;
auto const dt = date::year_month_day{ year{ y }, month{ m }, day{ d } };
auto const tiso = iso_week::year_weeknum_weekday{ dt };
return (unsigned int)tiso.weekday();
}
void print_month_calendar(int const y, unsigned int m)
{
using namespace date;
std::cout << "Mon Tue Wed Thu Fri Sat Sun" << std::endl;
auto first_day_weekday = week_day(y, m, 1);
auto last_day = (unsigned int)year_month_day_last(
year{ y }, month_day_last{ month{ m } }).day();
unsigned int index = 1;
for (unsigned int day = 1; day < first_day_weekday; ++day, ++index)
{
std::cout << " ";
}
for (unsigned int day = 1; day <= last_day; ++day)
{
std::cout
<< std::right << std::setfill(' ') << std::setw(3)
<< day << ' ';
if (index++ % 7 == 0)
std::cout << std::endl;
}
std::cout << std::endl;
}
int main()
{
unsigned int y = 0, m = 0;
std::cout << "Year:"; std::cin >> y;
std::cout << "Month:"; std::cin >> m;
print_month_calendar(y, m);
}
================================================
FILE: Chapter06/problem_45/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_45)
add_executable(problem_45 main.cpp)
set_target_properties (problem_45 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_45/main.cpp
================================================
#include <iostream>
#include <vector>
#include <algorithm>
#include <assert.h>
template <class T,
class Compare = std::less<typename std::vector<T>::value_type>>
class priority_queue
{
typedef typename std::vector<T>::value_type value_type;
typedef typename std::vector<T>::size_type size_type;
typedef typename std::vector<T>::reference reference;
typedef typename std::vector<T>::const_reference const_reference;
public:
bool empty() const noexcept { return data.empty(); }
size_type size() const noexcept { return data.size(); }
void push(value_type const & value)
{
data.push_back(value);
std::push_heap(std::begin(data), std::end(data), comparer);
}
void pop()
{
std::pop_heap(std::begin(data), std::end(data), comparer);
data.pop_back();
}
const_reference top() const { return data.front(); }
void swap(priority_queue& other) noexcept
{
swap(data, other.data);
swap(comparer, other.comparer);
}
private:
std::vector<T> data;
Compare comparer;
};
template< class T, class Compare>
void swap(
priority_queue<T, Compare>& lhs,
priority_queue<T, Compare>& rhs) noexcept(noexcept(lhs.swap(rhs)))
{
lhs.swap(rhs);
}
int main()
{
priority_queue<int> q;
for (int i : {1, 5, 3, 1, 13, 21, 8})
{
q.push(i);
}
assert(!q.empty());
assert(q.size() == 7);
while (!q.empty())
{
std::cout << q.top() << ' ';
q.pop();
}
}
================================================
FILE: Chapter06/problem_46/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_46)
add_executable(problem_46 main.cpp)
set_target_properties (problem_46 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_46/main.cpp
================================================
#include <iostream>
#include <vector>
#include <assert.h>
template <class T>
class circular_buffer;
template <class T>
class circular_buffer_iterator
{
typedef circular_buffer_iterator self_type;
typedef T value_type;
typedef T& reference;
typedef T const& const_reference;
typedef T* pointer;
typedef std::random_access_iterator_tag iterator_category;
typedef ptrdiff_t difference_type;
public:
circular_buffer_iterator(circular_buffer<T> const & buf, size_t const pos, bool const last) :
buffer_(buf), index_(pos), last_(last)
{}
self_type & operator++ ()
{
if (last_)
throw std::out_of_range("Iterator cannot be incremented past the end of range.");
index_ = (index_ + 1) % buffer_.data_.size();
last_ = index_ == buffer_.next_pos();
return *this;
}
self_type operator++ (int)
{
self_type tmp = *this;
++*this;
return tmp;
}
bool operator== (self_type const & other) const
{
assert(compatible(other));
return index_ == other.index_ && last_ == other.last_;
}
bool operator!= (self_type const & other) const
{
return !(*this == other);
}
const_reference operator* () const
{
return buffer_.data_[index_];
}
const_reference operator-> () const
{
return buffer_.data_[index_];
}
private:
bool compatible(self_type const & other) const
{
return &buffer_ == &other.buffer_;
}
circular_buffer<T> const & buffer_;
size_t index_;
bool last_;
};
template <class T>
class circular_buffer
{
typedef circular_buffer_iterator<T> const_iterator;
circular_buffer() = delete;
public:
explicit circular_buffer(size_t const size) :data_(size)
{}
bool clear() noexcept { head_ = -1; size_ = 0; }
bool empty() const noexcept { return size_ == 0; }
bool full() const noexcept { return size_ == data_.size(); }
size_t capacity() const noexcept { return data_.size(); }
size_t size() const noexcept { return size_; }
void push(T const item)
{
head_ = next_pos();
data_[head_] = item;
if (size_ < data_.size()) size_++;
}
T pop()
{
if (empty()) throw std::runtime_error("empty buffer");
auto pos = first_pos();
size_--;
return data_[pos];
}
const_iterator begin() const
{
return const_iterator(*this, first_pos(), empty());
}
const_iterator end() const
{
return const_iterator(*this, next_pos(), true);
}
private:
std::vector<T> data_;
size_t head_ = -1;
size_t size_ = 0;
size_t next_pos() const noexcept { return size_ == 0 ? 0 : (head_ + 1) % data_.size(); }
size_t first_pos() const noexcept { return size_ == 0 ? 0 : (head_ + data_.size() - size_ + 1) % data_.size(); }
friend class circular_buffer_iterator<T>;
};
template <typename T>
void print(circular_buffer<T> & buf)
{
for (auto & e : buf)
{
std::cout << e << ' ';
}
std::cout << std::endl;
}
int main()
{
circular_buffer<int> cbuf(5);
assert(cbuf.empty());
assert(!cbuf.full());
assert(cbuf.size() == 0);
print(cbuf);
cbuf.push(1);
cbuf.push(2);
cbuf.push(3);
assert(!cbuf.empty());
assert(!cbuf.full());
assert(cbuf.size() == 3);
print(cbuf);
auto item = cbuf.pop();
assert(item == 1);
assert(!cbuf.empty());
assert(!cbuf.full());
assert(cbuf.size() == 2);
cbuf.push(4);
cbuf.push(5);
cbuf.push(6);
assert(!cbuf.empty());
assert(cbuf.full());
assert(cbuf.size() == 5);
print(cbuf);
cbuf.push(7);
cbuf.push(8);
assert(!cbuf.empty());
assert(cbuf.full());
assert(cbuf.size() == 5);
print(cbuf);
item = cbuf.pop();
assert(item == 4);
item = cbuf.pop();
assert(item == 5);
item = cbuf.pop();
assert(item == 6);
assert(!cbuf.empty());
assert(!cbuf.full());
assert(cbuf.size() == 2);
print(cbuf);
item = cbuf.pop();
assert(item == 7);
item = cbuf.pop();
assert(item == 8);
assert(cbuf.empty());
assert(!cbuf.full());
assert(cbuf.size() == 0);
print(cbuf);
cbuf.push(9);
assert(!cbuf.empty());
assert(!cbuf.full());
assert(cbuf.size() == 1);
print(cbuf);
}
================================================
FILE: Chapter06/problem_47/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_47)
add_executable(problem_47 main.cpp)
set_target_properties (problem_47 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_47/main.cpp
================================================
#include <vector>
#include <iostream>
#include <algorithm>
#include <thread>
#include <chrono>
#include <mutex>
#include <iterator>
template <typename T>
class double_buffer
{
typedef T value_type;
typedef T& reference;
typedef T const & const_reference;
typedef T* pointer;
public:
explicit double_buffer(size_t const size) :
rdbuf(size), wrbuf(size)
{}
size_t size() const noexcept { return rdbuf.size(); }
void write(T const * const ptr, size_t const size)
{
std::unique_lock<std::mutex> lock(mt);
auto length = std::min(size, wrbuf.size());
std::copy(ptr, ptr + length, std::begin(wrbuf));
wrbuf.swap(rdbuf);
}
template <class Output>
void read(Output it) const
{
std::unique_lock<std::mutex> lock(mt);
std::copy(std::cbegin(rdbuf), std::cend(rdbuf), it);
}
pointer data() const
{
std::unique_lock<std::mutex> lock(mt);
return rdbuf.data();
}
reference operator[](size_t const pos)
{
std::unique_lock<std::mutex> lock(mt);
return rdbuf[pos];
}
const_reference operator[](size_t const pos) const
{
std::unique_lock<std::mutex> lock(mt);
return rdbuf[pos];
}
void swap(double_buffer other)
{
std::swap(rdbuf, other.rdbuf);
std::swap(wrbuf, other.wrbuf);
}
private:
std::vector<T> rdbuf;
std::vector<T> wrbuf;
mutable std::mutex mt;
};
template <typename T>
void print_buffer(double_buffer<T> const & buf)
{
buf.read(std::ostream_iterator<T>(std::cout, " "));
std::cout << std::endl;
}
int main()
{
double_buffer<int> buf(10);
std::thread t([&buf]() {
for (int i = 1; i < 1000; i += 10)
{
int data[] = { i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6,i + 7,i + 8,i + 9 };
buf.write(data, 10);
using namespace std::chrono_literals;
std::this_thread::sleep_for(100ms);
}
});
auto start = std::chrono::system_clock::now();
do
{
print_buffer(buf);
using namespace std::chrono_literals;
std::this_thread::sleep_for(150ms);
} while (std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now() - start).count() < 12);
t.join();
}
================================================
FILE: Chapter06/problem_48/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_48)
add_executable(problem_48 main.cpp)
set_target_properties (problem_48 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_48/main.cpp
================================================
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
template <typename T>
std::vector<std::pair<T, size_t>> find_most_frequent(std::vector<T> const & range)
{
std::map<T, size_t> counts;
for (auto const & e : range) counts[e]++;
auto maxelem = std::max_element(
std::cbegin(counts), std::cend(counts),
[](auto const & e1, auto const & e2) {
return e1.second < e2.second;
});
std::vector<std::pair<T, size_t>> result;
std::copy_if(
std::begin(counts), std::end(counts),
std::back_inserter(result),
[maxelem](auto const & kvp) {
return kvp.second == maxelem->second;
});
return result;
}
int main()
{
auto range = std::vector<int>{1,1,3,5,8,13,3,5,8,8,5};
auto result = find_most_frequent(range);
for (auto const & e : result)
{
std::cout << e.first << " : " << e.second << std::endl;
}
}
================================================
FILE: Chapter06/problem_49/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_49)
add_executable(problem_49 main.cpp)
set_target_properties (problem_49 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_49/main.cpp
================================================
#include <iostream>
#include <map>
#include <algorithm>
#include <numeric>
#include <iomanip>
#include <string>
#include <string_view>
std::map<char, double> analyze_text(std::string_view text)
{
std::map<char, double> frequencies;
for (char ch = 'a'; ch <= 'z'; ch++)
frequencies[ch] = 0;
for (auto ch : text)
{
if (isalpha(ch))
frequencies[tolower(ch)]++;
}
auto total = std::accumulate(
std::cbegin(frequencies), std::cend(frequencies),
0ull,
[](auto const sum, auto const & kvp) {
return sum + static_cast<unsigned long long>(kvp.second);
});
std::for_each(
std::begin(frequencies), std::end(frequencies),
[total](auto & kvp) {
kvp.second = (100.0 * kvp.second) / total;
});
return frequencies;
}
int main()
{
auto result = analyze_text(R"(Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.)");
for (auto const & kvp : result)
{
std::cout
<< kvp.first << " : "
<< std::fixed
<< std::setw(5) << std::setfill(' ')
<< std::setprecision(2) << kvp.second << std::endl;
}
}
================================================
FILE: Chapter06/problem_50/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_50)
add_executable(problem_50 main.cpp)
set_target_properties (problem_50 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_50/main.cpp
================================================
#include <string>
#include <string_view>
#include <vector>
#include <iostream>
#include <algorithm>
bool starts_with(std::string_view str, std::string_view prefix)
{
return str.find(prefix) == 0;
}
template <typename InputIt>
std::vector<std::string> filter_numbers(
InputIt begin, InputIt end,
std::string const & countryCode)
{
std::vector<std::string> result;
std::copy_if(
begin, end,
std::back_inserter(result),
[countryCode](auto const & number) {
return starts_with(number, countryCode) ||
starts_with(number, "+" + countryCode);
});
return result;
}
std::vector<std::string> filter_numbers(
std::vector<std::string> const & numbers,
std::string const & countryCode)
{
return filter_numbers(
std::cbegin(numbers), std::cend(numbers),
countryCode);
}
int main()
{
std::vector<std::string> numbers{
"+40744909080",
"44 7520 112233",
"+44 7555 123456",
"40 7200 123456",
"7555 123456"
};
auto result = filter_numbers(numbers, "44");
for (auto const & number : result)
{
std::cout << number << std::endl;
}
}
================================================
FILE: Chapter06/problem_51/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_51)
add_executable(problem_51 main.cpp)
set_target_properties (problem_51 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_51/main.cpp
================================================
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
bool starts_with(std::string_view str, std::string_view prefix)
{
return str.find(prefix) == 0;
}
void normalize_phone_numbers(
std::vector<std::string>& numbers,
std::string const & countryCode)
{
std::transform(
std::cbegin(numbers), std::cend(numbers),
std::begin(numbers),
[countryCode](std::string const & number) {
std::string result;
if (number.size() > 0)
{
if (number[0] == '0')
result = "+" + countryCode + number.substr(1);
else if (starts_with(number, countryCode))
result = "+" + number;
else if (starts_with(number, "+" + countryCode))
result = number;
else
result = "+" + countryCode + number;
}
result.erase(
std::remove_if(
std::begin(result), std::end(result),
[](const char ch) {return isspace(ch); }),
std::end(result));
return result;
});
}
int main()
{
std::vector<std::string> numbers{
"07555 123456",
"07555123456",
"+44 7555 123456",
"44 7555 123456",
"7555 123456"
};
normalize_phone_numbers(numbers, "44");
for (auto const & number : numbers)
{
std::cout << number << std::endl;
}
}
================================================
FILE: Chapter06/problem_52/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_52)
add_executable(problem_52 main.cpp)
set_target_properties (problem_52 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_52/main.cpp
================================================
#include <iostream>
#include <string>
#include <algorithm>
void print_permutations(std::string str)
{
std::sort(std::begin(str), std::end(str));
do
{
std::cout << str << std::endl;
} while (std::next_permutation(std::begin(str), std::end(str)));
}
void next_permutation(std::string str, std::string perm)
{
if (str.empty()) std::cout << perm << std::endl;
else
{
for (size_t i = 0; i < str.size(); ++i)
{
next_permutation(str.substr(1), perm + str[0]);
std::rotate(std::begin(str), std::begin(str) + 1, std::end(str));
}
}
}
void print_permutations_recursive(std::string str)
{
next_permutation(str, "");
}
int main()
{
std::cout << "non-recursive version" << std::endl;
print_permutations("main");
std::cout << "recursive version" << std::endl;
print_permutations_recursive("main");
}
================================================
FILE: Chapter06/problem_53/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_53)
add_executable(problem_53 main.cpp)
set_target_properties (problem_53 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_53/main.cpp
================================================
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#include <iomanip>
struct movie
{
int id;
std::string title;
std::vector<int> ratings;
};
double truncated_mean(std::vector<int> values, double const percentage)
{
std::sort(std::begin(values), std::end(values));
auto remove_count = static_cast<size_t>(values.size() * percentage + 0.5);
values.erase(std::begin(values), std::begin(values) + remove_count);
values.erase(std::end(values) - remove_count, std::end(values));
auto total = std::accumulate(
std::cbegin(values), std::cend(values),
0ull,
[](auto const sum, auto const e) {
return sum + e; });
return static_cast<double>(total) / values.size();
}
void print_movie_ratings(std::vector<movie> const & movies)
{
for (auto const & m : movies)
{
std::cout
<< m.title << " : "
<< std::fixed << std::setprecision(1)
<< truncated_mean(m.ratings, 0.05) << std::endl;
}
}
int main()
{
std::vector<movie> movies
{
{ 101, "The Matrix",{ 10, 9, 10, 9, 9, 8, 7, 10, 5, 9, 9, 8 } },
{ 102, "Gladiator",{ 10, 5, 7, 8, 9, 8, 9, 10, 10, 5, 9, 8, 10 } },
{ 103, "Interstellar",{ 10, 10, 10, 9, 3, 8, 8, 9, 6, 4, 7, 10 } }
};
print_movie_ratings(movies);
}
================================================
FILE: Chapter06/problem_54/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_54)
add_executable(problem_54 main.cpp)
set_target_properties (problem_54 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_54/main.cpp
================================================
#include <iostream>
#include <vector>
template <typename Input, typename Output>
void pairwise(Input begin, Input end, Output result)
{
auto it = begin;
while (it != end)
{
auto v1 = *it++; if (it == end) break;
auto v2 = *it++;
result++ = std::make_pair(v1, v2);
}
}
template <typename T>
std::vector<std::pair<T, T>> pairwise(std::vector<T> const & range)
{
std::vector<std::pair<T, T>> result;
pairwise(std::begin(range), std::end(range),
std::back_inserter(result));
return result;
}
int main()
{
std::vector<int> v{ 1, 1, 3, 5, 8, 13, 21 };
auto result = pairwise(v);
for (auto const & p : result)
{
std::cout << '{' << p.first << ',' << p.second << '}' << std::endl;
}
}
================================================
FILE: Chapter06/problem_55/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_55)
add_executable(problem_55 main.cpp)
set_target_properties (problem_55 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_55/main.cpp
================================================
#include <iostream>
#include <vector>
template <typename Input1, typename Input2, typename Output>
void zip(
Input1 begin1, Input1 end1,
Input2 begin2, Input2 end2,
Output result)
{
auto it1 = begin1;
auto it2 = begin2;
while (it1 != end1 && it2 != end2)
{
result++ = std::make_pair(*it1++, *it2++);
}
}
template <typename T, typename U>
std::vector<std::pair<T, U>> zip(
std::vector<T> const & range1,
std::vector<U> const & range2)
{
std::vector<std::pair<T, U>> result;
zip(
std::begin(range1), std::end(range1),
std::begin(range2), std::end(range2),
std::back_inserter(result));
return result;
}
int main()
{
std::vector<int> v1{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
std::vector<int> v2{ 1, 1, 3, 5, 8, 13, 21 };
auto result = zip(v1, v2);
for (auto const & p : result)
{
std::cout << '{' << p.first << ',' << p.second << '}' << std::endl;
}
}
================================================
FILE: Chapter06/problem_56/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_56)
add_executable(problem_56 main.cpp)
set_target_properties (problem_56 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_56/main.cpp
================================================
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
template <
typename T, typename A, typename F,
typename R = typename std::decay<typename std::result_of<typename std::decay<F>::type&(typename std::vector<T, A>::const_reference)>::type>::type>
std::vector<R> select(std::vector<T, A> const & c, F&& f)
{
std::vector<R> v;
std::transform(
std::cbegin(c), std::cend(c),
std::back_inserter(v),
std::forward<F>(f));
return v;
}
struct book
{
int id;
std::string title;
std::string author;
};
int main()
{
std::vector<book> books{
{101, "The C++ Programming Language", "Bjarne Stroustrup"},
{203, "Effective Modern C++", "Scott Meyers"},
{404, "The Modern C++ Programming Cookbook", "Marius Bancila"}};
auto titles = select(books, [](book const & b) {return b.title; });
for (auto const & title : titles)
{
std::cout << title << std::endl;
}
}
================================================
FILE: Chapter06/problem_57/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_57)
add_executable(problem_57 main.cpp)
set_target_properties (problem_57 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_57/main.cpp
================================================
#include <iostream>
#include <vector>
#include <array>
#include <functional>
#include <numeric>
#include <random>
#include <array>
#include <stack>
#include <chrono>
#include <assert.h>
template <class RandomIt>
RandomIt partition(RandomIt first, RandomIt last)
{
auto pivot = *first;
auto i = first + 1;
auto j = last - 1;
while (i <= j)
{
while (i <= j && *i <= pivot) i++;
while (i <= j && *j > pivot) j--;
if (i < j) std::iter_swap(i, j);
}
std::iter_swap(i - 1, first);
return i - 1;
}
template <class RandomIt, class Compare>
RandomIt partitionc(RandomIt first, RandomIt last, Compare comp)
{
auto pivot = *first;
auto i = first + 1;
auto j = last - 1;
while (i <= j)
{
while (i <= j && comp(*i, pivot)) i++;
while (i <= j && !comp(*j, pivot)) j--;
if (i < j) std::iter_swap(i, j);
}
std::iter_swap(i - 1, first);
return i - 1;
}
template <class RandomIt>
void quicksorti(RandomIt first, RandomIt last)
{
std::stack<std::pair<RandomIt, RandomIt>> st;
st.push(std::make_pair(first, last));
while (!st.empty())
{
auto iters = st.top();
st.pop();
if (iters.second - iters.first < 2) continue;
auto p = partition(iters.first, iters.second);
st.push(std::make_pair(iters.first, p));
st.push(std::make_pair(p+1, iters.second));
}
}
template <class RandomIt>
void quicksort(RandomIt first, RandomIt last)
{
if (first < last)
{
auto p = partition(first, last);
quicksort(first, p);
quicksort(p + 1, last);
}
}
template <class RandomIt, class Compare>
void quicksort(RandomIt first, RandomIt last, Compare comp)
{
if (first < last)
{
auto p = partitionc(first, last, comp);
quicksort(first, p, comp);
quicksort(p + 1, last, comp);
}
}
template <class RandomIt>
void print(RandomIt first, RandomIt last)
{
for (auto it = first; it < last; ++it)
{
std::cout << *it << ' ';
}
std::cout << std::endl;
}
int main()
{
{
std::vector<int> v{ 1, 5,3,8,6,2,9,7,4 };
quicksort(std::begin(v), std::end(v));
print(std::begin(v), std::end(v));
}
{
std::array<int, 9> a{ 1,2,3,4,5,6,7,8,9 };
quicksort(std::begin(a), std::end(a));
print(std::begin(a), std::end(a));
}
{
int a[]{ 9,8,7,6,5,4,3,2,1 };
quicksort(std::begin(a), std::end(a));
print(std::begin(a), std::end(a));
}
{
std::vector<int> v{ 1,5,3,8,6,2,9,7,4 };
quicksort(std::begin(v), std::end(v), std::greater_equal<>());
print(std::begin(v), std::end(v));
}
{
std::array<int, 9> a{ 1,2,3,4,5,6,7,8,9 };
quicksort(std::begin(a), std::end(a), std::greater_equal<>());
print(std::begin(a), std::end(a));
}
{
int a[]{ 9,8,7,6,5,4,3,2,1 };
quicksort(std::begin(a), std::end(a), std::greater_equal<>());
print(std::begin(a), std::end(a));
}
{
std::vector<int> v{ 1, 5,3,8,6,2,9,7,4 };
quicksorti(std::begin(v), std::end(v));
print(std::begin(v), std::end(v));
}
{
const size_t count = 1000000;
std::vector<int> data(count);
std::random_device rd;
std::mt19937 mt;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
mt.seed(seq);
std::uniform_int_distribution<> ud(1, 1000);
std::cout << "generating..." << std::endl;
std::generate_n(std::begin(data), count, [&mt, &ud]() {return ud(mt); });
auto d1 = data;
auto d2 = data;
std::cout << "sorting..." << std::endl;
auto start1 = std::chrono::system_clock::now();
quicksort(std::begin(d1), std::end(d1));
auto end1 = std::chrono::system_clock::now();
auto t1 = std::chrono::duration_cast<std::chrono::milliseconds>(end1 - start1);
std::cout << "time: " << t1.count() << "ms" << std::endl;
std::cout << "sorting..." << std::endl;
auto start2 = std::chrono::system_clock::now();
quicksorti(std::begin(d2), std::end(d2));
auto end2 = std::chrono::system_clock::now();
auto t2 = std::chrono::duration_cast<std::chrono::milliseconds>(end2 - start2);
std::cout << "time: " << t2.count() << "ms" << std::endl;
assert(d1 == d2);
}
}
================================================
FILE: Chapter06/problem_58/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_58)
add_executable(problem_58 main.cpp)
set_target_properties (problem_58 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_58/main.cpp
================================================
#include <iostream>
#include <queue>
#include <set>
#include <algorithm>
#include <vector>
#include <map>
#include <numeric>
#include <string>
template <typename Vertex = int, typename Weight = double>
class graph
{
public:
typedef Vertex vertex_type;
typedef Weight weight_type;
typedef std::pair<Vertex, Weight> neighbor_type;
typedef std::vector<neighbor_type> neighbor_list_type;
public:
void add_edge(Vertex const source, Vertex const target, Weight const weight, bool const bidirectional = true)
{
adjacency_list[source].push_back(std::make_pair(target, weight));
adjacency_list[target].push_back(std::make_pair(source, weight));
}
size_t vertex_count() const { return adjacency_list.size(); }
std::vector<Vertex> verteces() const
{
std::vector<Vertex> keys;
for (auto const & kvp : adjacency_list)
keys.push_back(kvp.first);
return keys;
}
neighbor_list_type const & neighbors(Vertex const & v) const
{
auto pos = adjacency_list.find(v);
if (pos == adjacency_list.end())
throw std::runtime_error("vertex not found");
return pos->second;
}
constexpr static Weight Infinity = std::numeric_limits<Weight>::infinity();
private:
std::map<vertex_type, neighbor_list_type> adjacency_list;
};
template <typename Vertex, typename Weight>
void shortest_path(
graph<Vertex, Weight> const & g,
Vertex const source,
std::map<Vertex, Weight>& min_distance,
std::map<Vertex, Vertex>& previous)
{
auto const n = g.vertex_count();
auto const verteces = g.verteces();
min_distance.clear();
for (auto const & v : verteces)
min_distance[v] = graph<Vertex, Weight>::Infinity;
min_distance[source] = 0;
previous.clear();
std::set<std::pair<Weight, Vertex> > vertex_queue;
vertex_queue.insert(std::make_pair(min_distance[source], source));
while (!vertex_queue.empty())
{
auto dist = vertex_queue.begin()->first;
auto u = vertex_queue.begin()->second;
vertex_queue.erase(std::begin(vertex_queue));
auto const & neighbors = g.neighbors(u);
for (auto const & neighbor : neighbors)
{
auto v = neighbor.first;
auto w = neighbor.second;
auto dist_via_u = dist + w;
if (dist_via_u < min_distance[v])
{
vertex_queue.erase(std::make_pair(min_distance[v], v));
min_distance[v] = dist_via_u;
previous[v] = u;
vertex_queue.insert(std::make_pair(min_distance[v], v));
}
}
}
}
template <typename Vertex>
void build_path(
std::map<Vertex, Vertex> const & prev, Vertex const v,
std::vector<Vertex> & result)
{
result.push_back(v);
auto pos = prev.find(v);
if (pos == std::end(prev))
return;
build_path(prev, pos->second, result);
}
template <typename Vertex>
std::vector<Vertex> build_path(
std::map<Vertex, Vertex> const & prev, Vertex const v)
{
std::vector<Vertex> result;
build_path(prev, v, result);
std::reverse(std::begin(result), std::end(result));
return result;
}
template <typename Vertex>
void print_path(std::vector<Vertex> const & path)
{
for (size_t i = 0; i < path.size(); ++i)
{
std::cout << path[i];
if (i < path.size() - 1)
std::cout << " -> ";
}
}
graph<char, double> make_graph()
{
graph<char, double> g;
g.add_edge('A', 'B', 4);
g.add_edge('A', 'H', 8);
g.add_edge('B', 'C', 8);
g.add_edge('B', 'H', 11);
g.add_edge('C', 'D', 7);
g.add_edge('C', 'F', 4);
g.add_edge('C', 'J', 2);
g.add_edge('D', 'E', 9);
g.add_edge('D', 'F', 14);
g.add_edge('E', 'F', 10);
g.add_edge('F', 'G', 2);
g.add_edge('G', 'J', 6);
g.add_edge('G', 'H', 1);
g.add_edge('H', 'J', 7);
return g;
}
graph<char, double> make_graph_wiki()
{
graph<char, double> g;
g.add_edge('A', 'B', 7);
g.add_edge('A', 'C', 9);
g.add_edge('A', 'F', 14);
g.add_edge('B', 'C', 10);
g.add_edge('B', 'D', 15);
g.add_edge('C', 'D', 11);
g.add_edge('C', 'F', 2);
g.add_edge('D', 'E', 6);
g.add_edge('E', 'F', 9);
return g;
}
graph<std::string, double> make_graph_map()
{
graph<std::string, double> g;
g.add_edge("London", "Reading", 41);
g.add_edge("London", "Oxford", 57);
g.add_edge("Reading", "Swindon", 40);
g.add_edge("Swindon", "Bristol", 40);
g.add_edge("Oxford", "Swindon", 30);
g.add_edge("London", "Southampton", 80);
g.add_edge("Southampton", "Bournemouth", 33);
g.add_edge("Bournemouth", "Exeter", 89);
g.add_edge("Bristol", "Exeter", 83);
g.add_edge("Bristol", "Bath", 12);
g.add_edge("Swindon", "Bath", 35);
g.add_edge("Reading", "Southampton", 50);
return g;
}
int main()
{
{
auto g = make_graph();
char source = 'A';
std::map<char, double> min_distance;
std::map<char, char> previous;
shortest_path(g, source, min_distance, previous);
for (auto const & kvp : min_distance)
{
std::cout << source << " -> " << kvp.first << " : "
<< kvp.second << '\t';
print_path(build_path(previous, kvp.first));
std::cout << std::endl;
}
}
{
auto g = make_graph_wiki();
char source = 'A';
std::map<char, double> min_distance;
std::map<char, char> previous;
shortest_path(g, source, min_distance, previous);
for (auto const & kvp : min_distance)
{
std::cout << source << " -> " << kvp.first << " : "
<< kvp.second << '\t';
print_path(build_path(previous, kvp.first));
std::cout << std::endl;
}
}
{
auto g = make_graph_map();
std::string source = "London";
std::map<std::string, double> min_distance;
std::map<std::string, std::string> previous;
shortest_path(g, source, min_distance, previous);
for (auto const & kvp : min_distance)
{
std::cout << source << " -> " << kvp.first << " : "
<< kvp.second << '\t';
print_path(build_path(previous, kvp.first));
std::cout << std::endl;
}
}
}
================================================
FILE: Chapter06/problem_59/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_59)
add_executable(problem_59 main.cpp)
set_target_properties (problem_59 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_59/main.cpp
================================================
#include <iostream>
#include <string>
#include <sstream>
#include <string_view>
#include <random>
#include <algorithm>
#include <array>
#include <iomanip>
class weasel
{
std::string target;
std::uniform_int_distribution<> chardist;
std::uniform_real_distribution<> ratedist;
std::mt19937 mt;
std::string const allowed_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
public:
weasel(std::string_view t) :
target(t),
chardist(0, 26),
ratedist(0, 100)
{
std::random_device rd;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
mt.seed(seq);
}
void run(int const copies)
{
auto parent = make_random();
int step = 1;
std::cout << std::left << std::setw(5) << std::setfill(' ') << step << parent << std::endl;
do
{
std::vector<std::string> children;
std::generate_n(
std::back_inserter(children),
copies,
[parent, this]() {return mutate(parent, 5); });
parent = *std::max_element(
std::begin(children), std::end(children),
[this](std::string_view c1, std::string_view c2) {return fitness(c1) < fitness(c2); });
std::cout << std::setw(5) << std::setfill(' ') << step << parent << std::endl;
step++;
} while (parent != target);
}
private:
weasel() = delete;
double fitness(std::string_view candidate)
{
int score = 0;
for (size_t i = 0; i < candidate.size(); ++i)
{
if (candidate[i] == target[i])
score++;
}
return score;
}
std::string mutate(std::string_view parent, double const rate)
{
std::stringstream sstr;
for (auto const c : parent)
{
auto nc = ratedist(mt) > rate ? c : allowed_chars[chardist(mt)];
sstr << nc;
}
return sstr.str();
}
std::string make_random()
{
std::stringstream sstr;
for (size_t i = 0; i < target.size(); ++i)
{
sstr << allowed_chars[chardist(mt)];
}
return sstr.str();
}
};
int main()
{
weasel w("METHINKS IT IS LIKE A WEASEL");
w.run(100);
}
================================================
FILE: Chapter06/problem_60/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_60)
add_executable(problem_60 main.cpp)
set_target_properties (problem_60 PROPERTIES FOLDER "06.AlgorithmsDataStructures")
================================================
FILE: Chapter06/problem_60/main.cpp
================================================
#include <iostream>
#include <vector>
#include <random>
#include <array>
#include <thread>
#include <chrono>
class universe
{
private:
universe() = delete;
public:
enum class seed
{
random,
ten_cell_row,
small_explorer,
explorer
};
public:
universe(size_t const width, size_t const height):
rows(height), columns(width),grid(width * height), dist(0, 4)
{
std::random_device rd;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
mt.seed(seq);
}
void run(
seed const s,
int const generations,
std::chrono::milliseconds const ms = std::chrono::milliseconds(100))
{
reset();
initialize(s);
display();
int i = 0;
do
{
next_generation();
display();
using namespace std::chrono_literals;
std::this_thread::sleep_for(ms);
} while (i++ < generations || generations == 0);
}
private:
void next_generation()
{
std::vector<unsigned char> newgrid(grid.size());
for (size_t r = 0; r < rows; ++r)
{
for (size_t c = 0; c < columns; ++c)
{
auto count = count_neighbors(r, c);
if (cell(c, r) == alive)
{
newgrid[r * columns + c] = (count == 2 || count == 3) ? alive : dead;
}
else
{
newgrid[r * columns + c] = (count == 3) ? alive : dead;
}
}
}
grid.swap(newgrid);
}
void reset_display()
{
#ifdef _WIN32
system("cls");
#endif
}
void display()
{
reset_display();
for (size_t r = 0; r < rows; ++r)
{
for (size_t c = 0; c < columns; ++c)
{
std::cout << (cell(c, r) ? '*' : ' ');
}
std::cout << std::endl;
}
}
void initialize(seed const s)
{
if (s == seed::small_explorer)
{
auto mr = rows / 2;
auto mc = columns / 2;
cell(mc, mr) = alive;
cell(mc - 1, mr + 1) = alive;
cell(mc, mr + 1) = alive;
cell(mc + 1, mr + 1) = alive;
cell(mc - 1, mr + 2) = alive;
cell(mc + 1, mr + 2) = alive;
cell(mc, mr + 3) = alive;
}
else if (s == seed::explorer)
{
auto mr = rows / 2;
auto mc = columns / 2;
cell(mc - 2, mr - 2) = alive;
cell(mc , mr - 2) = alive;
cell(mc + 2, mr - 2) = alive;
cell(mc - 2, mr - 1) = alive;
cell(mc + 2, mr - 1) = alive;
cell(mc - 2, mr ) = alive;
cell(mc + 2, mr ) = alive;
cell(mc - 2, mr + 1) = alive;
cell(mc + 2, mr + 1) = alive;
cell(mc - 2, mr + 2) = alive;
cell(mc , mr - 2) = alive;
cell(mc + 2, mr + 2) = alive;
}
else if (s == seed::ten_cell_row)
{
for (size_t c = columns / 2 - 5; c < columns / 2 + 5; c++)
cell(c, rows / 2) = alive;
}
else
{
for (size_t r = 0; r < rows; ++r)
{
for (size_t c = 0; c < columns; ++c)
{
cell(c, r) = dist(mt) == 0 ? alive : dead;
}
}
}
}
void reset()
{
for (size_t r = 0; r < rows; ++r)
{
for (size_t c = 0; c < columns; ++c)
{
cell(c, r) = dead;
}
}
}
int count_alive() { return 0; }
template<typename T1, typename... T>
auto count_alive(T1 s, T... ts) { return s + count_alive(ts...); }
int count_neighbors(size_t const row, size_t const col)
{
if (row == 0 && col == 0)
return count_alive(cell(1, 0), cell(1,1), cell(0, 1));
if (row == 0 && col == columns - 1)
return count_alive(cell(columns - 2, 0), cell(columns - 2, 1), cell(columns - 1, 1));
if (row == rows - 1 && col == 0)
return count_alive(cell(0, rows - 2), cell(1, rows - 2), cell(1, rows - 1));
if (row == rows - 1 && col == columns - 1)
return count_alive(cell(columns - 1, rows - 2), cell(columns - 2, rows - 2), cell(columns - 2, rows - 1));
if (row == 0 && col > 0 && col < columns - 1)
return count_alive(cell(col - 1, 0), cell(col - 1, 1), cell(col, 1), cell(col + 1, 1), cell(col + 1, 0));
if (row == rows - 1 && col > 0 && col < columns - 1)
return count_alive(cell(col - 1, row), cell(col - 1, row - 1), cell(col, row - 1), cell(col + 1, row - 1), cell(col + 1, row));
if (col == 0 && row > 0 && row < rows - 1)
return count_alive(cell(0, row - 1), cell(1, row - 1), cell(1, row), cell(1, row + 1), cell(0, row + 1));
if (col == columns - 1 && row > 0 && row < rows - 1)
return count_alive(cell(col, row - 1), cell(col - 1, row - 1), cell(col - 1, row), cell(col - 1, row + 1), cell(col, row + 1));
return count_alive(cell(col - 1, row - 1), cell(col, row - 1), cell(col + 1, row - 1), cell(col + 1, row), cell(col + 1, row + 1), cell(col, row + 1), cell(col - 1, row + 1), cell(col - 1, row));
}
unsigned char& cell(size_t const col, size_t const row)
{
return grid[row * columns + col];
}
private:
size_t rows;
size_t columns;
std::vector<unsigned char> grid;
const unsigned char alive = 1;
const unsigned char dead = 0;
std::uniform_int_distribution<> dist;
std::mt19937 mt;
};
int main()
{
using namespace std::chrono_literals;
universe u(50, 20);
u.run(universe::seed::random, 100, 100ms);
}
================================================
FILE: Chapter07/problem_61/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_61)
add_executable(problem_61 main.cpp)
set_target_properties (problem_61 PROPERTIES FOLDER "07.Concurrency")
================================================
FILE: Chapter07/problem_61/main.cpp
================================================
#include <iostream>
#include <vector>
#include <array>
#include <algorithm>
#include <functional>
#include <random>
#include <chrono>
#include <thread>
#include <assert.h>
template <typename T, typename F>
std::vector<T> alter(std::vector<T> data, F&& f)
{
std::transform(
std::begin(data), std::end(data), std::begin(data),
std::forward<F>(f));
return data;
}
template <typename T, typename F>
std::vector<T> palter(std::vector<T> data, F&& f)
{
if (data.size() <= 10000)
{
std::transform(
std::begin(data), std::end(data), std::begin(data),
std::forward<F>(f));
}
else
{
std::vector<std::thread> threads;
int thread_count = std::thread::hardware_concurrency();
auto first = std::begin(data);
auto last = first;
auto size = data.size() / thread_count;
for (int i = 0; i < thread_count; ++i)
{
first = last;
last = i == thread_count - 1 ? std::end(data) : first + size;
threads.emplace_back([first, last, &f]() {
std::transform(first, last, first,
std::forward<F>(f));
});
}
for (int i = 0; i < thread_count; ++i)
threads[i].join();
}
return data;
}
template <typename RandomAccessIterator, typename F>
void ptransform(RandomAccessIterator begin, RandomAccessIterator end, F&& f)
{
auto size = std::distance(begin, end);
if (size <= 10000)
{
std::transform(begin, end, begin, std::forward<F>(f));
}
else
{
std::vector<std::thread> threads;
int thread_count = 10;
auto first = begin;
auto last = first;
size /= thread_count;
for (int i = 0; i < thread_count; ++i)
{
first = last;
if (i == thread_count - 1) last = end;
else std::advance(last, size);
threads.emplace_back([first, last, &f]() {
std::transform(first, last, first, std::forward<F>(f));
});
}
for (auto & t : threads) t.join();
}
}
template <typename T, typename F>
std::vector<T> palter2(std::vector<T> data, F&& f)
{
ptransform(
std::begin(data), std::end(data),
std::forward<F>(f));
return data;
}
int main()
{
const size_t count = 10000000;
std::vector<int> data(count);
std::random_device rd;
std::mt19937 mt;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
mt.seed(seq);
std::uniform_int_distribution<> ud(1, 100);
std::generate_n(std::begin(data), count, [&mt, &ud]() {return ud(mt); });
auto start = std::chrono::system_clock::now();
auto r1 = alter(data, [](int const e) {return e * e; });
auto end = std::chrono::system_clock::now();
auto t1 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "time: " << t1.count() << "ms" << std::endl;
start = std::chrono::system_clock::now();
auto r2 = palter(data, [](int const e) {return e * e; });
end = std::chrono::system_clock::now();
auto t2 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "time: " << t2.count() << "ms" << std::endl;
start = std::chrono::system_clock::now();
auto r3 = palter2(data, [](int const e) {return e * e; });
end = std::chrono::system_clock::now();
auto t3 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "time: " << t3.count() << "ms" << std::endl;
assert(r1 == r2);
assert(r1 == r3);
}
================================================
FILE: Chapter07/problem_62/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_62)
add_executable(problem_62 main.cpp)
set_target_properties (problem_62 PROPERTIES FOLDER "07.Concurrency")
================================================
FILE: Chapter07/problem_62/main.cpp
================================================
#include <iostream>
#include <vector>
#include <array>
#include <algorithm>
#include <functional>
#include <random>
#include <chrono>
#include <thread>
#include <assert.h>
template <typename Iterator, typename F>
auto sprocess(Iterator begin, Iterator end, F&& f)
{
return std::forward<F>(f)(begin, end);
}
template <typename Iterator>
auto smin(Iterator begin, Iterator end)
{
return sprocess(begin, end,
[](auto b, auto e){return *std::min_element(b, e);});
}
template <typename Iterator>
auto smax(Iterator begin, Iterator end)
{
return sprocess(begin, end,
[](auto b, auto e){return *std::max_element(b, e);});
}
template <typename Iterator, typename F>
auto pprocess(Iterator begin, Iterator end, F&& f)
{
auto size = std::distance(begin, end);
if (size <= 10000)
{
return std::forward<F>(f)(begin, end);
}
else
{
int thread_count = std::thread::hardware_concurrency();
std::vector<std::thread> threads;
std::vector<typename std::iterator_traits<Iterator>::value_type> mins(thread_count);
auto first = begin;
auto last = first;
size /= thread_count;
for (int i = 0; i < thread_count; ++i)
{
first = last;
if (i == thread_count - 1) last = end;
else std::advance(last, size);
threads.emplace_back([first, last, &f, &r=mins[i]]() {
r = std::forward<F>(f)(first, last);
});
}
for (auto & t : threads) t.join();
return std::forward<F>(f)(std::begin(mins), std::end(mins));
}
}
template <typename Iterator>
auto pmin(Iterator begin, Iterator end)
{
return pprocess(begin, end,
[](auto b, auto e){return *std::min_element(b, e);});
}
template <typename Iterator>
auto pmax(Iterator begin, Iterator end)
{
return pprocess(begin, end,
[](auto b, auto e){return *std::max_element(b, e);});
}
int main()
{
const size_t count = 10000000;
std::vector<int> data(count);
std::random_device rd;
std::mt19937 mt;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
mt.seed(seq);
std::uniform_int_distribution<> ud(1, 1000);
std::generate_n(std::begin(data), count, [&mt, &ud]() {return ud(mt); });
{
std::cout << "minimum element" << std::endl;
auto start = std::chrono::system_clock::now();
auto r1 = smin(std::begin(data), std::end(data));
auto end = std::chrono::system_clock::now();
auto t1 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "seq time: " << t1.count() << "ms" << std::endl;
start = std::chrono::system_clock::now();
auto r2 = pmin(std::begin(data), std::end(data));
end = std::chrono::system_clock::now();
auto t2 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "par time: " << t2.count() << "ms" << std::endl;
assert(r1 == r2);
}
{
std::cout << "maximum element" << std::endl;
auto start = std::chrono::system_clock::now();
auto r1 = smax(std::begin(data), std::end(data));
auto end = std::chrono::system_clock::now();
auto t1 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "seq time: " << t1.count() << "ms" << std::endl;
start = std::chrono::system_clock::now();
auto r2 = pmax(std::begin(data), std::end(data));
end = std::chrono::system_clock::now();
auto t2 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "par time: " << t2.count() << "ms" << std::endl;
assert(r1 == r2);
}
}
================================================
FILE: Chapter07/problem_63/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_63)
add_executable(problem_63 main.cpp)
set_target_properties (problem_63 PROPERTIES FOLDER "07.Concurrency")
================================================
FILE: Chapter07/problem_63/main.cpp
================================================
#include <iostream>
#include <vector>
#include <array>
#include <algorithm>
#include <functional>
#include <random>
#include <chrono>
#include <future>
#include <assert.h>
template <typename Iterator, typename F>
auto sprocess(Iterator begin, Iterator end, F&& f)
{
return std::forward<F>(f)(begin, end);
}
template <typename Iterator>
auto smin(Iterator begin, Iterator end)
{
return sprocess(begin, end,
[](auto b, auto e){return *std::min_element(b, e);});
}
template <typename Iterator>
auto smax(Iterator begin, Iterator end)
{
return sprocess(begin, end,
[](auto b, auto e){return *std::max_element(b, e);});
}
template <typename Iterator, typename F>
auto pprocess(Iterator begin, Iterator end, F&& f)
{
auto size = std::distance(begin, end);
if (size <= 10000)
{
return std::forward<F>(f)(begin, end);
}
else
{
int task_count = std::thread::hardware_concurrency();
std::vector<std::future<typename std::iterator_traits<Iterator>::value_type>> tasks;
auto first = begin;
auto last = first;
size /= task_count;
for (int i = 0; i < task_count; ++i)
{
first = last;
if (i == task_count - 1) last = end;
else std::advance(last, size);
tasks.emplace_back(std::async(
std::launch::async,
[first, last, &f]() {
return std::forward<F>(f)(first, last);
}));
}
std::vector<typename std::iterator_traits<Iterator>::value_type> mins;
for (auto & t : tasks)
mins.push_back(t.get());
return std::forward<F>(f)(std::begin(mins), std::end(mins));
}
}
template <typename Iterator>
auto pmin(Iterator begin, Iterator end)
{
return pprocess(begin, end,
[](auto b, auto e){return *std::min_element(b, e);});
}
template <typename Iterator>
auto pmax(Iterator begin, Iterator end)
{
return pprocess(begin, end,
[](auto b, auto e){return *std::max_element(b, e);});
}
int main()
{
const size_t count = 10000000;
std::vector<int> data(count);
std::random_device rd;
std::mt19937 mt;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
mt.seed(seq);
std::uniform_int_distribution<> ud(1, 1000);
std::generate_n(std::begin(data), count, [&mt, &ud]() {return ud(mt); });
{
std::cout << "minimum element" << std::endl;
auto start = std::chrono::system_clock::now();
auto r1 = smin(std::begin(data), std::end(data));
auto end = std::chrono::system_clock::now();
auto t1 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "seq time: " << t1.count() << "ms" << std::endl;
start = std::chrono::system_clock::now();
auto r2 = pmin(std::begin(data), std::end(data));
end = std::chrono::system_clock::now();
auto t2 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "par time: " << t2.count() << "ms" << std::endl;
assert(r1 == r2);
}
{
std::cout << "maximum element" << std::endl;
auto start = std::chrono::system_clock::now();
auto r1 = smax(std::begin(data), std::end(data));
auto end = std::chrono::system_clock::now();
auto t1 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "seq time: " << t1.count() << "ms" << std::endl;
start = std::chrono::system_clock::now();
auto r2 = pmax(std::begin(data), std::end(data));
end = std::chrono::system_clock::now();
auto t2 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "par time: " << t2.count() << "ms" << std::endl;
assert(r1 == r2);
}
}
================================================
FILE: Chapter07/problem_64/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_64)
add_executable(problem_64 main.cpp)
set_target_properties (problem_64 PROPERTIES FOLDER "07.Concurrency")
================================================
FILE: Chapter07/problem_64/main.cpp
================================================
#include <iostream>
#include <vector>
#include <array>
#include <functional>
#include <chrono>
#include <assert.h>
#include <random>
#include <future>
template <class RandomIt>
RandomIt partition(RandomIt first, RandomIt last)
{
auto pivot = *first;
auto i = first + 1;
auto j = last - 1;
while (i <= j)
{
while (i <= j && *i <= pivot) i++;
while (i <= j && *j > pivot) j--;
if (i < j) std::iter_swap(i, j);
}
std::iter_swap(i - 1, first);
return i - 1;
}
template <class RandomIt, class Compare>
RandomIt partitionc(RandomIt first, RandomIt last, Compare comp)
{
auto pivot = *first;
auto i = first + 1;
auto j = last - 1;
while (i <= j)
{
while (i <= j && comp(*i, pivot)) i++;
while (i <= j && !comp(*j, pivot)) j--;
if (i < j) std::iter_swap(i, j);
}
std::iter_swap(i - 1, first);
return i - 1;
}
template <class RandomIt>
void quicksort(RandomIt first, RandomIt last)
{
if (first < last)
{
auto p = partition(first, last);
quicksort(first, p);
quicksort(p + 1, last);
}
}
template <class RandomIt, class Compare>
void quicksort(RandomIt first, RandomIt last, Compare comp)
{
if (first < last)
{
auto p = partitionc(first, last, comp);
quicksort(first, p, comp);
quicksort(p + 1, last, comp);
}
}
template <class RandomIt>
void pquicksort(RandomIt first, RandomIt last)
{
if (first < last)
{
auto p = partition(first, last);
if(last - first <= 100000)
{
pquicksort(first, p);
pquicksort(p + 1, last);
}
else
{
auto f1 = std::async(std::launch::async,
[first, p](){ pquicksort(first, p);});
auto f2 = std::async(std::launch::async,
[last, p]() { pquicksort(p+1, last);});
f1.wait();
f2.wait();
}
}
}
int main()
{
const size_t count = 1000000;
std::vector<int> data(count);
std::random_device rd;
std::mt19937 mt;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
mt.seed(seq);
std::uniform_int_distribution<> ud(1, 1000);
std::cout << "generating..." << std::endl;
std::generate_n(std::begin(data), count, [&mt, &ud]() {return ud(mt); });
auto d1 = data;
auto d2 = data;
std::cout << "sorting..." << std::endl;
auto start = std::chrono::system_clock::now();
quicksort(std::begin(d1), std::end(d1));
auto end = std::chrono::system_clock::now();
auto t1 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "time: " << t1.count() << "ms" << std::endl;
start = std::chrono::system_clock::now();
pquicksort(std::begin(d2), std::end(d2));
end = std::chrono::system_clock::now();
auto t2 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
std::cout << "time: " << t2.count() << "ms" << std::endl;
std::cout << "verifying..." << std::endl;
assert(d1 == d2);
}
================================================
FILE: Chapter07/problem_65/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_65)
add_executable(problem_65 main.cpp)
set_target_properties (problem_65 PROPERTIES FOLDER "07.Concurrency")
================================================
FILE: Chapter07/problem_65/main.cpp
================================================
#include <iostream>
#include <vector>
#include <chrono>
#include <random>
#include <thread>
#include <string_view>
#include <mutex>
#include <string>
class logger
{
protected:
logger() {}
public:
static logger& instance()
{
static logger lg;
return lg;
}
logger(logger const &) = delete;
logger& operator=(logger const &) = delete;
void log(std::string_view message)
{
std::lock_guard<std::mutex> lock(mt);
std::cout << "LOG: " << message << std::endl;
}
private:
std::mutex mt;
};
int main()
{
std::vector<std::thread> modules;
for(int id = 1; id <= 5; ++id)
{
modules.emplace_back([id](){
std::random_device rd;
std::mt19937 mt(rd());
std::uniform_int_distribution<> ud(100, 1000);
logger::instance().log("module " + std::to_string(id) + " started");
std::this_thread::sleep_for(std::chrono::milliseconds(ud(mt)));
logger::instance().log("module " + std::to_string(id) + " finished");
});
}
for(auto & m : modules) m.join();
}
================================================
FILE: Chapter07/problem_66/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_66)
add_executable(problem_66 main.cpp)
set_target_properties (problem_66 PROPERTIES FOLDER "07.Concurrency")
================================================
FILE: Chapter07/problem_66/main.cpp
================================================
#include <iostream>
#include <vector>
#include <chrono>
#include <random>
#include <thread>
#include <string_view>
#include <mutex>
#include <condition_variable>
#include <queue>
#include <string>
#include <array>
class logger
{
protected:
logger() {}
public:
static logger& instance()
{
static logger lg;
return lg;
}
logger(logger const &) = delete;
logger& operator=(logger const &) = delete;
void log(std::string_view message)
{
std::lock_guard<std::mutex> lock(mt);
std::cout << "LOG: " << message << std::endl;
}
private:
std::mutex mt;
};
class ticketing_machine
{
public:
ticketing_machine(int const start) : last_ticket(start), first_ticket(start) {}
int next() { return last_ticket++; }
int last() const { return last_ticket - 1; }
void reset() { last_ticket = first_ticket; }
private:
int first_ticket;
int last_ticket;
};
class customer
{
public:
customer(int const no) : number(no)
{}
int ticket_number() const noexcept { return number; }
private:
int number;
friend bool operator<(customer const & l, customer const & r);
};
bool operator<(customer const & l, customer const & r)
{
return l.number > r.number;
}
int main()
{
std::priority_queue<customer> customers;
bool store_open = true;
std::mutex mt;
std::condition_variable cv;
std::vector<std::thread> desks;
for (int i = 1; i <= 3; ++i)
{
desks.emplace_back([i, &store_open, &mt, &cv, &customers]() {
std::random_device rd;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
std::mt19937 eng(seq);
std::uniform_int_distribution<> ud(2000, 3000);
logger::instance().log("desk " + std::to_string(i) + " open");
while (store_open || !customers.empty())
{
std::unique_lock<std::mutex> locker(mt);
cv.wait_for(locker, std::chrono::seconds(1),
[&customers]() {return !customers.empty(); });
if (!customers.empty())
{
auto const c = customers.top();
customers.pop();
logger::instance().log("[-] desk " + std::to_string(i) + " handling customer " + std::to_string(c.ticket_number()));
logger::instance().log("[=] queue size: " + std::to_string(customers.size()));
locker.unlock();
cv.notify_one();
std::this_thread::sleep_for(std::chrono::milliseconds(ud(eng)));
logger::instance().log("[ ] desk " + std::to_string(i) + " done with customer " + std::to_string(c.ticket_number()));
}
}
logger::instance().log("desk " + std::to_string(i) + " closed");
});
}
std::thread store([&store_open, &customers, &mt, &cv]() {
ticketing_machine tm(100);
std::random_device rd;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
std::mt19937 eng(seq);
std::uniform_int_distribution<> ud(200, 500);
for (int i = 1; i <= 25; ++i)
{
customer c(tm.next());
customers.push(c);
logger::instance().log("[+] new customer with ticket " + std::to_string(c.ticket_number()));
logger::instance().log("[=] queue size: " + std::to_string(customers.size()));
cv.notify_one();
std::this_thread::sleep_for(std::chrono::milliseconds(ud(eng)));
}
store_open = false;
});
store.join();
for (auto & desk : desks) desk.join();
}
================================================
FILE: Chapter08/problem_67/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_67)
add_executable(problem_67 main.cpp)
set_target_properties (problem_67 PROPERTIES FOLDER "08.DesignPatterns")
================================================
FILE: Chapter08/problem_67/main.cpp
================================================
#include <string>
#include <string_view>
#include <memory>
#include <assert.h>
class password_validator
{
public:
virtual bool validate(std::string_view password) = 0;
virtual ~password_validator() {}
};
class length_validator final : public password_validator
{
public:
length_validator(unsigned int min_length):
length(min_length)
{}
virtual bool validate(std::string_view password) override
{
return password.length() >= length;
}
private:
unsigned int length;
};
class password_validator_decorator : public password_validator
{
public:
explicit password_validator_decorator(std::unique_ptr<password_validator> validator):
inner(std::move(validator))
{
}
virtual bool validate(std::string_view password) override
{
return inner->validate(password);
}
private:
std::unique_ptr<password_validator> inner;
};
class digit_password_validator final : public password_validator_decorator
{
public:
explicit digit_password_validator(std::unique_ptr<password_validator> validator):
password_validator_decorator(std::move(validator))
{
}
virtual bool validate(std::string_view password) override
{
if(!password_validator_decorator::validate(password))
return false;
return password.find_first_of("0123456789") != std::string::npos;
}
};
class case_password_validator final : public password_validator_decorator
{
public:
explicit case_password_validator(std::unique_ptr<password_validator> validator):
password_validator_decorator(std::move(validator))
{
}
virtual bool validate(std::string_view password) override
{
if(!password_validator_decorator::validate(password))
return false;
bool haslower = false;
bool hasupper = false;
for(size_t i = 0; i < password.length() && !(hasupper && haslower); ++i)
{
if(islower(password[i])) haslower = true;
else if(isupper(password[i])) hasupper = true;
}
return haslower && hasupper;
}
};
class symbol_password_validator final : public password_validator_decorator
{
public:
explicit symbol_password_validator(std::unique_ptr<password_validator> validator):
password_validator_decorator(std::move(validator))
{
}
virtual bool validate(std::string_view password) override
{
if(!password_validator_decorator::validate(password))
return false;
return password.find_first_of("!@#$%^&*(){}[]?<>") != std::string::npos;
}
};
int main()
{
{
auto validator = std::make_unique<length_validator>(8);
assert(validator->validate("abc123!@#"));
assert(!validator->validate("abc123"));
}
{
auto validator = std::make_unique<digit_password_validator>(
std::make_unique<length_validator>(8));
assert(validator->validate("abc123!@#"));
assert(!validator->validate("abcde!@#"));
}
{
auto validator = std::make_unique<case_password_validator>(
std::make_unique<digit_password_validator>(
std::make_unique<length_validator>(8)));
assert(validator->validate("Abc123!@#"));
assert(!validator->validate("abc123!@#"));
}
{
auto validator = std::make_unique<symbol_password_validator>(
std::make_unique<case_password_validator>(
std::make_unique<digit_password_validator>(
std::make_unique<length_validator>(8))));
assert(validator->validate("Abc123!@#"));
assert(!validator->validate("Abc123567"));
}
}
================================================
FILE: Chapter08/problem_68/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_68)
add_executable(problem_68 main.cpp)
set_target_properties (problem_68 PROPERTIES FOLDER "08.DesignPatterns")
================================================
FILE: Chapter08/problem_68/main.cpp
================================================
#include <iostream>
#include <string>
#include <memory>
#include <random>
#include <array>
#include <algorithm>
class password_generator
{
public:
virtual std::string generate() = 0;
virtual std::string allowed_chars() const = 0;
virtual size_t length() const = 0;
virtual void add(std::unique_ptr<password_generator> generator) = 0;
virtual ~password_generator(){}
};
class basic_password_generator : public password_generator
{
size_t len;
public:
explicit basic_password_generator(size_t const len) noexcept : len(len) {}
virtual std::string generate() override
{ throw std::runtime_error("not implemented"); }
virtual void add(std::unique_ptr<password_generator>) override
{ throw std::runtime_error("not implemented"); }
virtual size_t length() const noexcept override final
{return len;}
};
class digit_generator : public basic_password_generator
{
public:
explicit digit_generator(size_t const len) noexcept
: basic_password_generator(len) {}
virtual std::string allowed_chars() const override
{return "0123456789";}
};
class symbol_generator : public basic_password_generator
{
public:
explicit symbol_generator(size_t const len) noexcept
: basic_password_generator(len) {}
virtual std::string allowed_chars() const override
{return "!@#$%^&*(){}[]?<>";}
};
class upper_letter_generator : public basic_password_generator
{
public:
explicit upper_letter_generator(size_t const len) noexcept
: basic_password_generator(len) {}
virtual std::string allowed_chars() const override
{return "ABCDEFGHIJKLMNOPQRSTUVXYWZ";}
};
class lower_letter_generator : public basic_password_generator
{
public:
explicit lower_letter_generator(size_t const len) noexcept
: basic_password_generator(len) {}
virtual std::string allowed_chars() const override
{return "abcdefghijklmnopqrstuvxywz";}
};
class composite_password_generator : public password_generator
{
virtual std::string allowed_chars() const override
{ throw std::runtime_error("not implemented"); };
virtual size_t length() const override
{ throw std::runtime_error("not implemented"); };
public:
composite_password_generator()
{
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
eng.seed(seq);
}
virtual std::string generate() override
{
std::string password;
for(auto & generator : generators)
{
std::string chars = generator->allowed_chars();
std::uniform_int_distribution<> ud(0, static_cast<int>(chars.length() - 1));
for(size_t i = 0; i < generator->length(); ++i)
password += chars[ud(eng)];
}
std::shuffle(std::begin(password), std::end(password), eng);
return password;
}
virtual void add(std::unique_ptr<password_generator> generator) override
{
generators.push_back(std::move(generator));
}
private:
std::random_device rd;
std::mt19937 eng;
std::vector<std::unique_ptr<password_generator>> generators;
};
int main()
{
composite_password_generator generator;
generator.add(std::make_unique<symbol_generator>(2));
generator.add(std::make_unique<digit_generator>(2));
generator.add(std::make_unique<upper_letter_generator>(2));
generator.add(std::make_unique<lower_letter_generator>(4));
auto password = generator.generate();
std::cout << password << std::endl;
}
================================================
FILE: Chapter08/problem_69/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_69)
add_executable(problem_69 main.cpp)
set_target_properties (problem_69 PROPERTIES FOLDER "08.DesignPatterns")
================================================
FILE: Chapter08/problem_69/main.cpp
================================================
#include <iostream>
#include <string>
#include <sstream>
#include <string_view>
#include <random>
#include <array>
#include <map>
#include <memory>
#include <algorithm>
#include <numeric>
#include <assert.h>
enum class sex_type {female, male};
class social_number_generator
{
protected:
virtual int sex_digit(sex_type const sex) const noexcept = 0;
virtual int next_random(unsigned const year, unsigned const month, unsigned const day) = 0;
virtual int modulo_value() const noexcept = 0;
social_number_generator(int const min, int const max):ud(min, max)
{
std::random_device rd;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
eng.seed(seq);
}
public:
std::string generate(
sex_type const sex,
unsigned const year, unsigned const month, unsigned const day)
{
std::stringstream snumber;
snumber << sex_digit(sex);
snumber << year << month << day;
snumber << next_random(year, month, day);
auto number = snumber.str();
auto index = number.length();
auto sum = std::accumulate(std::begin(number), std::end(number), 0u,
[&index](unsigned int const s, char const c) {
return s + static_cast<unsigned int>(index-- * (c-'0'));});
auto rest = sum % modulo_value();
snumber << modulo_value() - rest;
return snumber.str();
}
virtual ~social_number_generator() {}
protected:
std::map<unsigned, int> cache;
std::mt19937 eng;
std::uniform_int_distribution<> ud;
};
class southeria_social_number_generator final : public social_number_generator
{
public:
southeria_social_number_generator():
social_number_generator(1000, 9999)
{
}
protected:
virtual int sex_digit(sex_type const sex) const noexcept override
{
if(sex == sex_type::female) return 1;
else return 2;
}
virtual int next_random(unsigned const year, unsigned const month, unsigned const day) override
{
auto key = year * 10000 + month * 100 + day;
while(true)
{
auto number = ud(eng);
auto pos = cache.find(number);
if(pos == std::end(cache))
{
cache[key] = number;
return number;
}
}
}
virtual int modulo_value() const noexcept override
{
return 11;
}
};
class northeria_social_number_generator final : public social_number_generator
{
public:
northeria_social_number_generator():
social_number_generator(10000, 99999)
{
}
protected:
virtual int sex_digit(sex_type const sex) const noexcept override
{
if(sex == sex_type::female) return 9;
else return 7;
}
virtual int next_random(unsigned const year, unsigned const month, unsigned const day) override
{
auto key = year * 10000 + month * 100 + day;
while(true)
{
auto number = ud(eng);
auto pos = cache.find(number);
if(pos == std::end(cache))
{
cache[key] = number;
return number;
}
}
}
virtual int modulo_value() const noexcept override
{
return 11;
}
};
class social_number_generator_factory
{
public:
social_number_generator_factory()
{
generators["northeria"] = std::make_unique<northeria_social_number_generator>();
generators["southeria"] = std::make_unique<southeria_social_number_generator>();
}
social_number_generator* get_generator(std::string_view country) const
{
auto it = generators.find(country.data());
if(it != std::end(generators))
return it->second.get();
throw std::runtime_error("invalid country");
}
private:
std::map<std::string, std::unique_ptr<social_number_generator>> generators;
};
int main()
{
social_number_generator_factory factory;
auto sn1 = factory.get_generator("northeria")->generate(sex_type::female, 2017, 12, 25);
auto sn2 = factory.get_generator("northeria")->generate(sex_type::female, 2017, 12, 25);
auto sn3 = factory.get_generator("northeria")->generate(sex_type::male, 2017, 12, 25);
auto ss1 = factory.get_generator("southeria")->generate(sex_type::female, 2017, 12, 25);
auto ss2 = factory.get_generator("southeria")->generate(sex_type::female, 2017, 12, 25);
auto ss3 = factory.get_generator("southeria")->generate(sex_type::male, 2017, 12, 25);
}
================================================
FILE: Chapter08/problem_70/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_70)
add_executable(problem_70 main.cpp)
set_target_properties (problem_70 PROPERTIES FOLDER "08.DesignPatterns")
================================================
FILE: Chapter08/problem_70/main.cpp
================================================
#include <iostream>
#include <string>
#include <string_view>
#include <memory>
class role
{
public:
virtual double approval_limit() const noexcept = 0;
virtual ~role() {}
};
class employee_role : public role
{
public:
virtual double approval_limit() const noexcept override
{
return 1000;
}
};
class team_manager_role : public role
{
public:
virtual double approval_limit() const noexcept override
{
return 10000;
}
};
class department_manager_role : public role
{
public:
virtual double approval_limit() const noexcept override
{
return 100000;
}
};
class president_role : public role
{
public:
virtual double approval_limit() const noexcept override
{
return std::numeric_limits<double>::max();
}
};
struct expense
{
double amount;
std::string description;
expense(double const amount, std::string_view desc):
amount(amount), description(desc)
{
}
};
class employee
{
public:
explicit employee(std::string_view name, std::unique_ptr<role> ownrole) :
name(name), own_role(std::move(ownrole))
{
}
void set_direct_manager(std::shared_ptr<employee> manager)
{
direct_manager = manager;
}
void approve(expense const & e)
{
if(e.amount <= own_role->approval_limit())
std::cout << name << " approved expense '" << e.description << "', cost=" << e.amount << std::endl;
else if(direct_manager != nullptr)
direct_manager->approve(e);
}
private:
std::string name;
std::unique_ptr<role> own_role;
std::shared_ptr<employee> direct_manager;
};
int main()
{
auto john = std::make_shared<employee>("john smith", std::make_unique<employee_role>());
auto robert = std::make_shared<employee>("robert booth", std::make_unique<team_manager_role>());
auto david = std::make_shared<employee>("david jones", std::make_unique<department_manager_role>());
auto cecil = std::make_shared<employee>("cecil williamson", std::make_unique<president_role>());
john->set_direct_manager(robert);
robert->set_direct_manager(david);
david->set_direct_manager(cecil);
john->approve(expense{500, "magazins"});
john->approve(expense{5000, "hotel accomodation"});
john->approve(expense{50000, "conference costs"});
john->approve(expense{200000, "new lorry"});
}
================================================
FILE: Chapter08/problem_71/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_71)
add_executable(problem_71 main.cpp)
set_target_properties (problem_71 PROPERTIES FOLDER "08.DesignPatterns")
================================================
FILE: Chapter08/problem_71/main.cpp
================================================
#include <iostream>
#include <string>
#include <string_view>
#include <vector>
#include <algorithm>
enum class collection_action
{
add,
remove,
clear,
assign
};
std::string to_string(collection_action const action)
{
switch(action)
{
case collection_action::add: return "add";
case collection_action::remove: return "remove";
case collection_action::clear: return "clear";
case collection_action::assign: return "assign";
}
}
struct collection_change_notification
{
collection_action action;
std::vector<size_t> item_indexes;
};
class collection_observer
{
public:
virtual void collection_changed(collection_change_notification notification) = 0;
virtual ~collection_observer(){}
};
template <typename T, class Allocator = std::allocator<T>>
class observable_vector final
{
typedef typename std::vector<T, Allocator>::size_type size_type;
public:
observable_vector() noexcept(noexcept(Allocator()))
: observable_vector( Allocator() ) {}
explicit observable_vector( const Allocator& alloc ) noexcept
: data(alloc){}
observable_vector( size_type count, const T& value, const Allocator& alloc = Allocator())
: data(count, value, alloc){}
explicit observable_vector( size_type count, const Allocator& alloc = Allocator() )
:data(count, alloc){}
observable_vector(observable_vector&& other) noexcept
:data(other.data){}
observable_vector(observable_vector&& other, const Allocator& alloc)
:data(other.data, alloc){}
observable_vector(std::initializer_list<T> init,
const Allocator& alloc = Allocator())
:data(init, alloc){}
template<class InputIt>
observable_vector(InputIt first, InputIt last, const Allocator& alloc = Allocator())
:data(first, last, alloc){}
observable_vector& operator=(observable_vector const & other)
{
if(this != &other)
{
data = other.data;
for(auto o : observers)
{
if(o != nullptr)
{
o->collection_changed({
collection_action::assign,
std::vector<size_t> {}
});
}
}
}
return *this;
}
observable_vector& operator=(observable_vector&& other)
{
if(this != &other)
{
data = std::move(other.data);
for(auto o : observers)
{
if(o != nullptr)
{
o->collection_changed({
collection_action::assign,
std::vector<size_t> {}
});
}
}
}
return *this;
}
void push_back(T&& value)
{
data.push_back(value);
for(auto o : observers)
{
if(o != nullptr)
{
o->collection_changed({
collection_action::add,
std::vector<size_t> {data.size()-1}
});
}
}
}
void pop_back()
{
data.pop_back();
for(auto o : observers)
{
if(o != nullptr)
{
o->collection_changed({
collection_action::remove,
std::vector<size_t> {data.size()+1}
});
}
}
}
void clear() noexcept
{
data.clear();
for(auto o : observers)
{
if(o != nullptr)
{
o->collection_changed({
collection_action::clear,
std::vector<size_t> {}
});
}
}
}
size_type size() const noexcept
{
return data.size();
}
[[nodiscard]] bool empty() const noexcept
{
return data.empty();
}
void add_observer(collection_observer * const o)
{
observers.push_back(o);
}
void remove_observer(collection_observer const * const o)
{
observers.erase(std::remove(std::begin(observers), std::end(observers), o),
std::end(observers));
}
private:
std::vector<T, Allocator> data;
std::vector<collection_observer*> observers;
};
class observer : public collection_observer
{
public:
virtual void collection_changed(collection_change_notification notification) override
{
std::cout << "action: " << to_string(notification.action);
if(!notification.item_indexes.empty())
{
std::cout << ", indexes: ";
for(auto i : notification.item_indexes)
std::cout << i << ' ';
}
std::cout << std::endl;
}
};
int main()
{
observable_vector<int> v;
observer o;
v.add_observer(&o);
v.push_back(1);
v.push_back(2);
v.pop_back();
v.clear();
v.remove_observer(&o);
v.push_back(3);
v.push_back(4);
v.add_observer(&o);
observable_vector<int> v2 {1,2,3};
v = v2;
v = observable_vector<int> {7,8,9};
}
================================================
FILE: Chapter08/problem_72/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_72)
add_executable(problem_72 main.cpp)
set_target_properties (problem_72 PROPERTIES FOLDER "08.DesignPatterns")
================================================
FILE: Chapter08/problem_72/main.cpp
================================================
#include <iostream>
#include <string>
#include <string_view>
#include <vector>
#include <cmath>
#include <assert.h>
inline bool are_equal(double const d1, double const d2, double const diff = 0.001)
{
return std::abs(d1 - d2) <= diff;
}
struct discount_type
{
virtual double discount_percent(double const price, double const quantity) const noexcept = 0;
virtual ~discount_type(){}
};
struct fixed_discount final : public discount_type
{
explicit fixed_discount(double const discount) noexcept : discount(discount) {}
virtual double discount_percent(double const, double const) const noexcept {return discount;}
private:
double discount;
};
struct volume_discount final : public discount_type
{
explicit volume_discount(double const quantity, double const discount) noexcept : discount(discount), min_quantity(quantity) {}
virtual double discount_percent(double const, double const quantity) const noexcept {return quantity >= min_quantity ? discount : 0;}
private:
double discount;
double min_quantity;
};
struct price_discount : public discount_type
{
explicit price_discount(double const price, double const discount) noexcept : discount(discount), min_total_price(price) {}
virtual double discount_percent(double const price, double const quantity) const noexcept {return price*quantity >= min_total_price ? discount : 0;}
private:
double discount;
double min_total_price;
};
struct amount_discount : public discount_type
{
explicit amount_discount(double const price, double const discount) noexcept : discount(discount), min_total_price(price) {}
virtual double discount_percent(double const price, double const) const noexcept {return price >= min_total_price ? discount : 0;}
private:
double discount;
double min_total_price;
};
struct customer
{
std::string name;
discount_type* discount;
};
enum class article_unit
{
piece, kg, meter, sqmeter, cmeter, liter
};
struct article
{
int id;
std::string name;
double price;
article_unit unit;
discount_type* discount;
};
struct order_line
{
article product;
int quantity;
discount_type* discount;
};
struct order
{
int id;
customer* buyer;
std::vector<order_line> lines;
discount_type* discount;
};
struct price_calculator
{
virtual double calculate_price(order const & o) = 0;
};
struct cumulative_price_calculator : public price_calculator
{
virtual double calculate_price(order const & o) override
{
double price = 0;
for(auto ol : o.lines)
{
double line_price = ol.product.price * ol.quantity;
if(ol.product.discount != nullptr)
line_price *= (1.0 - ol.product.discount->discount_percent(ol.product.price, ol.quantity));
if(ol.discount != nullptr)
line_price *= (1.0 - ol.discount->discount_percent(ol.product.price, ol.quantity));
if(o.buyer != nullptr && o.buyer->discount != nullptr)
line_price *= (1.0 - o.buyer->discount->discount_percent(ol.product.price, ol.quantity));
price += line_price;
}
if(o.discount != nullptr)
price *= (1.0 - o.discount->discount_percent(price, 0));
return price;
}
};
int main()
{
fixed_discount d1(0.1);
volume_discount d2(10, 0.15);
price_discount d3(100, 0.05);
amount_discount d4(100, 0.05);
customer c1 {"default", nullptr};
customer c2 {"john", &d1};
customer c3 {"joane", &d3};
article a1 {1, "pen", 5, article_unit::piece, nullptr};
article a2 {2, "expensive pen", 15, article_unit::piece, &d1};
article a3 {3, "scissors", 10, article_unit::piece, &d2};
cumulative_price_calculator calc;
order o1 {101, &c1, {{a1, 1, nullptr}}, nullptr};
assert(are_equal(calc.calculate_price(o1), 5));
order o2{102, &c2, {{a1, 1, nullptr}}, nullptr};
assert(are_equal(calc.calculate_price(o2), 4.5));
order o3 {103, &c1, {{a2, 1, nullptr}}, nullptr};
assert(are_equal(calc.calculate_price(o3), 13.5));
order o4 {104, &c2, {{a2, 1, nullptr}}, nullptr};
assert(are_equal(calc.calculate_price(o4), 12.15));
order o5 {105, &c1, {{a3, 1, nullptr}}, nullptr};
assert(are_equal(calc.calculate_price(o5), 10));
order o6 {106, &c1, {{a3, 15, nullptr}}, nullptr};
assert(are_equal(calc.calculate_price(o6), 127.5));
order o7 {107, &c3, {{a3, 15, nullptr}}, nullptr};
assert(are_equal(calc.calculate_price(o7), 121.125));
order o8 {108, &c3, {{a2, 20, &d1}}, nullptr};
assert(are_equal(calc.calculate_price(o8), 230.85));
order o9 {109, &c3, {{a2, 20, &d1}}, &d4};
assert(are_equal(calc.calculate_price(o9), 219.3075));
}
================================================
FILE: Chapter09/problem_73/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_70)
include_directories(${LIBS_PATH}/pugixml)
include_directories(${INCLUDE_PATH}/)
if(BOOST_OPTIONAL)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_OPTIONAL)
endif()
add_executable(problem_73 ${LIBS_PATH}/pugixml/pugixml.cpp main.cpp)
set_target_properties (problem_73 PROPERTIES FOLDER "09.DataSerialization")
================================================
FILE: Chapter09/problem_73/main.cpp
================================================
#include <string>
#include <string_view>
#include <assert.h>
#include "pugixml.hpp"
#include "movies.h"
void serialize(movie_list const & movies, std::string_view filepath)
{
pugi::xml_document doc;
auto root = doc.append_child("movies");
for (auto const & m : movies)
{
auto movie_node = root.append_child("movie");
movie_node.append_attribute("id").set_value(m.id);
movie_node.append_attribute("title").set_value(m.title.c_str());
movie_node.append_attribute("year").set_value(m.year);
movie_node.append_attribute("length").set_value(m.length);
auto cast_node = movie_node.append_child("cast");
for (auto const & c : m.cast)
{
auto node = cast_node.append_child("role");
node.append_attribute("star").set_value(c.actor.c_str());
node.append_attribute("name").set_value(c.role.c_str());
}
auto directors_node = movie_node.append_child("directors");
for (auto const & director : m.directors)
{
directors_node.append_child("director")
.append_attribute("name").set_value(director.c_str());
}
auto writers_node = movie_node.append_child("writers");
for (auto const & writer : m.writers)
{
writers_node.append_child("writer")
.append_attribute("name").set_value(writer.c_str());
}
}
doc.save_file(filepath.data());
}
movie_list deserialize(std::string_view filepath)
{
pugi::xml_document doc;
movie_list movies;
auto result = doc.load_file(filepath.data());
if (result)
{
auto root = doc.child("movies");
for (auto movie_node = root.child("movie");
movie_node;
movie_node = movie_node.next_sibling("movie"))
{
movie m;
m.id = movie_node.attribute("id").as_uint();
m.title = movie_node.attribute("title").as_string();
m.year = movie_node.attribute("year").as_uint();
m.length = movie_node.attribute("length").as_uint();
for (auto role_node : movie_node.child("cast").children("role"))
{
m.cast.push_back(casting_role{
role_node.attribute("star").as_string(),
role_node.attribute("name").as_string()
});
}
for (auto director_node : movie_node.child("directors").children("director"))
{
m.directors.push_back(director_node.attribute("name").as_string());
}
for (auto writer_node : movie_node.child("writers").children("writer"))
{
m.writers.push_back(writer_node.attribute("name").as_string());
}
movies.push_back(m);
}
}
return movies;
}
int main()
{
movie_list movies
{
{
11001,
"The Matrix",
1999,
196,
{
{"Keanu Reeves", "Neo"},
{"Laurence Fishburne", "Morpheus"},
{"Carrie-Anne Moss", "Trinity"},
{"Hugo Weaving", "Agent Smith"}
},
{"Lana Wachowski", "Lilly Wachowski"},
{"Lana Wachowski", "Lilly Wachowski"},
},
{
9871,
"Forrest Gump",
1994,
202,
{
{"Tom Hanks", "Forrest Gump"},
{"Sally Field", "Mrs. Gump"},
{"Robin Wright","Jenny Curran"},
{"Mykelti Williamson","Bubba Blue"}
},
{"Robert Zemeckis"},
{"Winston Groom", "Eric Roth"},
}
};
serialize(movies, "movies.xml");
auto result = deserialize("movies.xml");
assert(result.size() == 2);
assert(result[0].title == "The Matrix");
assert(result[1].title == "Forrest Gump");
}
================================================
FILE: Chapter09/problem_74/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_74)
include_directories(${LIBS_PATH}/pugixml)
add_executable(problem_74 ${LIBS_PATH}/pugixml/pugixml.cpp main.cpp)
set_target_properties (problem_74 PROPERTIES FOLDER "09.DataSerialization")
================================================
FILE: Chapter09/problem_74/main.cpp
================================================
#include <iostream>
#include <string>
#include <string_view>
#include "pugixml.hpp"
int main()
{
std::string text = R"(
<?xml version="1.0"?>
<movies>
<movie id="11001" title="The Matrix" year="1999" length="196">
<cast>
<role star="Keanu Reeves" name="Neo" />
<role star="Laurence Fishburne" name="Morpheus" />
<role star="Carrie-Anne Moss" name="Trinity" />
<role star="Hugo Weaving" name=" Agent Smith" />
</cast>
<directors>
<director name="Lana Wachowski" />
<director name="Lilly Wachowski" />
</directors>
<writers>
<writer name="Lana Wachowski" />
<writer name="Lilly Wachowski" />
</writers>
</movie>
<movie id="9871" title="Forrest Gump" year="1994" length="202">
<cast>
<role star="Tom Hanks" name="Forrest Gump" />
<role star="Sally Field" name="Mrs. Gump" />
<role star="Robin Wright" name="Jenny Curran" />
<role star="Mykelti Williamson" name="Bubba Blue" />
</cast>
<directors>
<director name="Robert Zemeckis" />
</directors>
<writers>
<writer name="Winston Groom" />
<writer name="Eric Roth" />
</writers>
</movie>
</movies>
)";
pugi::xml_document doc;
if (doc.load_string(text.c_str()))
{
try
{
auto titles = doc.select_nodes("/movies/movie[@year>1995]");
for (auto it : titles)
{
std::cout << it.node().attribute("title").as_string() << std::endl;
}
}
catch (pugi::xpath_exception const & e)
{
std::cout << e.result().description() << std::endl;
}
try
{
auto titles = doc.select_nodes("/movies/movie/cast/role[last()]");
for (auto it : titles)
{
std::cout << it.node().attribute("star").as_string() << std::endl;
}
}
catch (pugi::xpath_exception const & e)
{
std::cout << e.result().description() << std::endl;
}
}
}
================================================
FILE: Chapter09/problem_74/movies.xml
================================================
<?xml version="1.0"?>
<movies>
<movie id="11001" title="The Matrix" year="1999" length="196">
<cast>
<role star="Keanu Reeves" name="Neo" />
<role star="Laurence Fishburne" name="Morpheus" />
<role star="Carrie-Anne Moss" name="Trinity" />
<role star="Hugo Weaving" name=" Agent Smith" />
</cast>
<directors>
<director name="Lana Wachowski" />
<director name="Lilly Wachowski" />
</directors>
<writers>
<writer name="Lana Wachowski" />
<writer name="Lilly Wachowski" />
</writers>
</movie>
<movie id="9871" title="Forrest Gump" year="1994" length="202">
<cast>
<role star="Tom Hanks" name="Forrest Gump" />
<role star="Sally Field" name="Mrs. Gump" />
<role star="Robin Wright" name="Jenny Curran" />
<role star="Mykelti Williamson" name="Bubba Blue" />
</cast>
<directors>
<director name="Robert Zemeckis" />
</directors>
<writers>
<writer name="Winston Groom" />
<writer name="Eric Roth" />
</writers>
</movie>
</movies>
================================================
FILE: Chapter09/problem_75/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_75)
include_directories(${LIBS_PATH}/nlohmannjson)
include_directories(${INCLUDE_PATH}/)
if(BOOST_OPTIONAL)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_OPTIONAL)
endif()
add_executable(problem_75 main.cpp)
set_target_properties (problem_75 PROPERTIES FOLDER "09.DataSerialization")
================================================
FILE: Chapter09/problem_75/main.cpp
================================================
#include <iostream>
#include <string_view>
#include <fstream>
#include "json.hpp"
#include "movies.h"
using json = nlohmann::json;
void to_json(json& j, casting_role const & c)
{
j = json{ {"star", c.actor}, {"name", c.role} };
}
void to_json(json& j, movie const & m)
{
j = json::object({
{"id", m.id},
{"title", m.title},
{"year", m.year},
{"length", m.length},
{"cast", m.cast },
{"directors", m.directors},
{"writers", m.writers}
});
}
void serialize(movie_list const & movies, std::string_view filepath)
{
json jdata{ { "movies", movies } };
std::ofstream ofile(filepath.data());
if (ofile.is_open())
{
ofile << std::setw(2) << jdata << std::endl;
}
}
int main()
{
movie_list movies
{
{
11001,
"The Matrix",
1999,
196,
{
{"Keanu Reeves", "Neo"},
{"Laurence Fishburne", "Morpheus"},
{"Carrie-Anne Moss", "Trinity"},
{"Hugo Weaving", "Agent Smith"}
},
{"Lana Wachowski", "Lilly Wachowski"},
{"Lana Wachowski", "Lilly Wachowski"},
},
{
9871,
"Forrest Gump",
1994,
202,
{
{"Tom Hanks", "Forrest Gump"},
{"Sally Field", "Mrs. Gump"},
{"Robin Wright","Jenny Curran"},
{"Mykelti Williamson","Bubba Blue"}
},
{"Robert Zemeckis"},
{"Winston Groom", "Eric Roth"},
}
};
serialize(movies, "movies.json");
}
================================================
FILE: Chapter09/problem_76/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_76)
include_directories(${INCLUDE_PATH}/)
include_directories(${LIBS_PATH}/nlohmannjson)
if(BOOST_OPTIONAL)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_OPTIONAL)
endif()
add_executable(problem_76 main.cpp)
set_target_properties (problem_76 PROPERTIES FOLDER "09.DataSerialization")
================================================
FILE: Chapter09/problem_76/main.cpp
================================================
#include <iostream>
#include <string_view>
#include <fstream>
#include <assert.h>
#include "json.hpp"
#include "movies.h"
using json = nlohmann::json;
movie_list deserialize(std::string_view filepath)
{
movie_list movies;
std::ifstream ifile(filepath.data());
if (ifile.is_open())
{
json jdata;
try
{
ifile >> jdata;
if (jdata.is_object())
{
for (auto & element : jdata.at("movies"))
{
movie m;
m.id = element.at("id").get<unsigned int>();
m.title = element.at("title").get<std::string>();
m.year = element.at("year").get<unsigned int>();
m.length = element.at("length").get<unsigned int>();
for (auto & role : element.at("cast"))
{
m.cast.push_back(casting_role{
role.at("star").get<std::string>(),
role.at("name").get<std::string>() });
}
for (auto & director : element.at("directors"))
{
m.directors.push_back(director);
}
for (auto & writer : element.at("writers"))
{
m.writers.push_back(writer);
}
movies.push_back(std::move(m));
}
}
}
catch (std::exception const & ex)
{
std::cout << ex.what() << std::endl;
}
}
return movies;
}
int main()
{
auto movies = deserialize("movies.json");
assert(movies.size() == 2);
assert(movies[0].title == "The Matrix");
assert(movies[1].title == "Forrest Gump");
}
================================================
FILE: Chapter09/problem_76/movies.json
================================================
{
"movies" : [
{
"id" : 11001,
"title" : "The Matrix",
"year" : 1999,
"length" : 196,
"cast" : [
{"star":"Keanu Reeves", "name":"Neo"},
{"star":"Laurence Fishburne", "name":"Morpheus"},
{"star":"Carrie-Anne Moss", "name":"Trinity"},
{"star":"Hugo Weaving", "name":"Agent Smith"}
],
"directors" : ["Lana Wachowski", "Lilly Wachowski"],
"writers" : ["Lana Wachowski", "Lilly Wachowski"]
},
{
"id" : 9871,
"title" : "Forrest Gump",
"year" : 1994,
"length" : 202,
"cast" : [
{"star":"Tom Hanks", "name":"Forrest Gump"},
{"star":"Sally Field", "name":"Mrs. Gump"},
{"star":"Robin Wright", "name":"Jenny Curran"},
{"star":"Mykelti Williamson", "name":"Bubba Blue"}
],
"directors" : ["Robert Zemeckis"],
"writers" : ["Winston Groom", "Eric Roth"]
}
]
}
================================================
FILE: Chapter09/problem_77/CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.7.0)
project(problem_77)
include_directories(${LIBS_PATH}/PDF-Writer)
include_directories(${LIBS_PATH}/PDF-Writer/FreeType/include)
include_directories(${INCLUDE_PATH})
if(BOOST_OPTIONAL)
include_directories(${BOOST_INCLUDE_DIR})
link_directories(${BOOST_LIB_DIR})
add_definitions(-DUSE_BOOST_OPTIONAL)
endif()
add_executable(problem_77 main.cpp)
target_link_libraries(problem_77 ZipLib)
target_link_libraries(problem_77 PDFWriter)
target_link_libraries(problem_77 FreeType)
target_link_libraries(problem_77 LibAesgm)
target_link_libraries(problem_77 LibJpeg)
target_link_libraries(problem_77 LibPng)
target_link_libraries(problem_77 LibTiff)
target_link_
Showing preview only (248K chars total). Download the full file or copy to clipboard to get everything.
gitextract_cpr3p9u9/
├── .gitattributes
├── .gitignore
├── CMakeLists.txt
├── Chapter01/
│ ├── problem_01/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_02/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_03/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_04/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_05/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_06/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_07/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_08/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_09/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_10/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_11/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_12/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_13/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_14/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter02/
│ ├── problem_15/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_16/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_17/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_18/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_19/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_20/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_21/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_22/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter03/
│ ├── problem_23/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_24/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_25/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_26/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_27/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_28/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_29/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_30/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_31/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter04/
│ ├── problem_32/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_33/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_34/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── sample34.txt
│ ├── problem_35/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_36/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_37/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_38/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter05/
│ ├── problem_39/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_40/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_41/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_42/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_43/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_44/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter06/
│ ├── problem_45/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_46/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_47/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_48/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_49/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_50/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_51/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_52/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_53/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_54/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_55/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_56/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_57/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_58/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_59/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_60/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter07/
│ ├── problem_61/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_62/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_63/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_64/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_65/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_66/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter08/
│ ├── problem_67/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_68/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_69/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_70/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_71/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_72/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter09/
│ ├── problem_73/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_74/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── movies.xml
│ ├── problem_75/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_76/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── movies.json
│ ├── problem_77/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_78/
│ ├── CMakeLists.txt
│ └── main.cpp
├── Chapter10/
│ ├── problem_79/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_80/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_81/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_82/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_83/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_84/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_85/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── moviesdb.sql
│ ├── problem_86/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_87/
│ ├── CMakeLists.txt
│ ├── main.cpp
│ └── moviesdb.sql
├── Chapter11/
│ ├── problem_88/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_89/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_90/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_91/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_92/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_93/
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ └── sample.txt
│ └── problem_94/
│ ├── CMakeLists.txt
│ ├── main.cpp
│ └── sample.txt
├── Chapter12/
│ ├── problem_95/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_96c/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_96s/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_97/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_98/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── problem_99/
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ └── problem_9a/
│ ├── CMakeLists.txt
│ └── main.cpp
├── LICENSE
├── README.md
├── include/
│ └── movies.h
└── libs/
├── PDF-Writer/
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── FreeType/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── builds/
│ │ │ ├── amiga/
│ │ │ │ ├── README
│ │ │ │ ├── include/
│ │ │ │ │ └── freetype/
│ │ │ │ │ └── config/
│ │ │ │ │ ├── ftconfig.h
│ │ │ │ │ └── ftmodule.h
│ │ │ │ ├── makefile
│ │ │ │ ├── makefile.os4
│ │ │ │ ├── smakefile
│ │ │ │ └── src/
│ │ │ │ └── base/
│ │ │ │ ├── ftdebug.c
│ │ │ │ └── ftsystem.c
│ │ │ ├── ansi/
│ │ │ │ ├── ansi-def.mk
│ │ │ │ └── ansi.mk
│ │ │ ├── atari/
│ │ │ │ ├── ATARI.H
│ │ │ │ ├── FNames.SIC
│ │ │ │ ├── FREETYPE.PRJ
│ │ │ │ ├── README.TXT
│ │ │ │ ├── deflinejoiner.awk
│ │ │ │ └── gen-purec-patch.sh
│ │ │ ├── beos/
│ │ │ │ ├── beos-def.mk
│ │ │ │ ├── beos.mk
│ │ │ │ └── detect.mk
│ │ │ ├── compiler/
│ │ │ │ ├── ansi-cc.mk
│ │ │ │ ├── bcc-dev.mk
│ │ │ │ ├── bcc.mk
│ │ │ │ ├── emx.mk
│ │ │ │ ├── gcc-dev.mk
│ │ │ │ ├── gcc.mk
│ │ │ │ ├── intelc.mk
│ │ │ │ ├── unix-lcc.mk
│ │ │ │ ├── visualage.mk
│ │ │ │ ├── visualc.mk
│ │ │ │ ├── watcom.mk
│ │ │ │ └── win-lcc.mk
│ │ │ ├── detect.mk
│ │ │ ├── dos/
│ │ │ │ ├── detect.mk
│ │ │ │ ├── dos-def.mk
│ │ │ │ ├── dos-emx.mk
│ │ │ │ ├── dos-gcc.mk
│ │ │ │ └── dos-wat.mk
│ │ │ ├── exports.mk
│ │ │ ├── freetype.mk
│ │ │ ├── link_dos.mk
│ │ │ ├── link_std.mk
│ │ │ ├── mac/
│ │ │ │ ├── FreeType.m68k_cfm.make.txt
│ │ │ │ ├── FreeType.m68k_far.make.txt
│ │ │ │ ├── FreeType.ppc_carbon.make.txt
│ │ │ │ ├── FreeType.ppc_classic.make.txt
│ │ │ │ ├── README
│ │ │ │ ├── ascii2mpw.py
│ │ │ │ ├── ftlib.prj.xml
│ │ │ │ └── ftmac.c
│ │ │ ├── modules.mk
│ │ │ ├── newline
│ │ │ ├── os2/
│ │ │ │ ├── detect.mk
│ │ │ │ ├── os2-def.mk
│ │ │ │ ├── os2-dev.mk
│ │ │ │ └── os2-gcc.mk
│ │ │ ├── symbian/
│ │ │ │ ├── bld.inf
│ │ │ │ └── freetype.mmp
│ │ │ ├── toplevel.mk
│ │ │ ├── unix/
│ │ │ │ ├── aclocal.m4
│ │ │ │ ├── config.guess
│ │ │ │ ├── config.status
│ │ │ │ ├── config.sub
│ │ │ │ ├── configure
│ │ │ │ ├── configure.ac
│ │ │ │ ├── configure.raw
│ │ │ │ ├── detect.mk
│ │ │ │ ├── freetype-config
│ │ │ │ ├── freetype-config.in
│ │ │ │ ├── freetype2.in
│ │ │ │ ├── freetype2.m4
│ │ │ │ ├── freetype2.pc
│ │ │ │ ├── ft-munmap.m4
│ │ │ │ ├── ft2unix.h
│ │ │ │ ├── ftconfig.h
│ │ │ │ ├── ftconfig.in
│ │ │ │ ├── ftsystem.c
│ │ │ │ ├── install-sh
│ │ │ │ ├── install.mk
│ │ │ │ ├── libtool
│ │ │ │ ├── ltmain.sh
│ │ │ │ ├── mkinstalldirs
│ │ │ │ ├── unix-cc.in
│ │ │ │ ├── unix-cc.mk
│ │ │ │ ├── unix-def.in
│ │ │ │ ├── unix-def.mk
│ │ │ │ ├── unix-dev.mk
│ │ │ │ ├── unix-lcc.mk
│ │ │ │ ├── unix.mk
│ │ │ │ └── unixddef.mk
│ │ │ ├── vms/
│ │ │ │ ├── ftconfig.h
│ │ │ │ └── ftsystem.c
│ │ │ ├── win32/
│ │ │ │ ├── detect.mk
│ │ │ │ ├── ftdebug.c
│ │ │ │ ├── vc2005/
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── vc2008/
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── vc2010/
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcxproj
│ │ │ │ │ └── freetype.vcxproj.filters
│ │ │ │ ├── visualc/
│ │ │ │ │ ├── freetype.dsp
│ │ │ │ │ ├── freetype.dsw
│ │ │ │ │ ├── freetype.sln
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── visualce/
│ │ │ │ │ ├── freetype.dsp
│ │ │ │ │ ├── freetype.dsw
│ │ │ │ │ ├── freetype.vcproj
│ │ │ │ │ └── index.html
│ │ │ │ ├── w32-bcc.mk
│ │ │ │ ├── w32-bccd.mk
│ │ │ │ ├── w32-dev.mk
│ │ │ │ ├── w32-gcc.mk
│ │ │ │ ├── w32-icc.mk
│ │ │ │ ├── w32-intl.mk
│ │ │ │ ├── w32-lcc.mk
│ │ │ │ ├── w32-mingw32.mk
│ │ │ │ ├── w32-vcc.mk
│ │ │ │ ├── w32-wat.mk
│ │ │ │ └── win32-def.mk
│ │ │ └── wince/
│ │ │ ├── ftdebug.c
│ │ │ ├── vc2005-ce/
│ │ │ │ ├── freetype.sln
│ │ │ │ ├── freetype.vcproj
│ │ │ │ └── index.html
│ │ │ └── vc2008-ce/
│ │ │ ├── freetype.sln
│ │ │ ├── freetype.vcproj
│ │ │ └── index.html
│ │ ├── include/
│ │ │ ├── freetype/
│ │ │ │ ├── config/
│ │ │ │ │ ├── ftconfig.h
│ │ │ │ │ ├── ftheader.h
│ │ │ │ │ ├── ftmodule.h
│ │ │ │ │ ├── ftoption.h
│ │ │ │ │ └── ftstdlib.h
│ │ │ │ ├── freetype.h
│ │ │ │ ├── ftadvanc.h
│ │ │ │ ├── ftautoh.h
│ │ │ │ ├── ftbbox.h
│ │ │ │ ├── ftbdf.h
│ │ │ │ ├── ftbitmap.h
│ │ │ │ ├── ftbzip2.h
│ │ │ │ ├── ftcache.h
│ │ │ │ ├── ftchapters.h
│ │ │ │ ├── ftcid.h
│ │ │ │ ├── fterrdef.h
│ │ │ │ ├── fterrors.h
│ │ │ │ ├── ftgasp.h
│ │ │ │ ├── ftglyph.h
│ │ │ │ ├── ftgxval.h
│ │ │ │ ├── ftgzip.h
│ │ │ │ ├── ftimage.h
│ │ │ │ ├── ftincrem.h
│ │ │ │ ├── ftlcdfil.h
│ │ │ │ ├── ftlist.h
│ │ │ │ ├── ftlzw.h
│ │ │ │ ├── ftmac.h
│ │ │ │ ├── ftmm.h
│ │ │ │ ├── ftmodapi.h
│ │ │ │ ├── ftmoderr.h
│ │ │ │ ├── ftotval.h
│ │ │ │ ├── ftoutln.h
│ │ │ │ ├── ftpfr.h
│ │ │ │ ├── ftrender.h
│ │ │ │ ├── ftsizes.h
│ │ │ │ ├── ftsnames.h
│ │ │ │ ├── ftstroke.h
│ │ │ │ ├── ftsynth.h
│ │ │ │ ├── ftsystem.h
│ │ │ │ ├── fttrigon.h
│ │ │ │ ├── fttypes.h
│ │ │ │ ├── ftwinfnt.h
│ │ │ │ ├── ftxf86.h
│ │ │ │ ├── internal/
│ │ │ │ │ ├── autohint.h
│ │ │ │ │ ├── ftcalc.h
│ │ │ │ │ ├── ftdebug.h
│ │ │ │ │ ├── ftdriver.h
│ │ │ │ │ ├── ftgloadr.h
│ │ │ │ │ ├── ftmemory.h
│ │ │ │ │ ├── ftobjs.h
│ │ │ │ │ ├── ftpic.h
│ │ │ │ │ ├── ftrfork.h
│ │ │ │ │ ├── ftserv.h
│ │ │ │ │ ├── ftstream.h
│ │ │ │ │ ├── fttrace.h
│ │ │ │ │ ├── ftvalid.h
│ │ │ │ │ ├── internal.h
│ │ │ │ │ ├── psaux.h
│ │ │ │ │ ├── pshints.h
│ │ │ │ │ ├── services/
│ │ │ │ │ │ ├── svbdf.h
│ │ │ │ │ │ ├── svcid.h
│ │ │ │ │ │ ├── svgldict.h
│ │ │ │ │ │ ├── svgxval.h
│ │ │ │ │ │ ├── svkern.h
│ │ │ │ │ │ ├── svmm.h
│ │ │ │ │ │ ├── svotval.h
│ │ │ │ │ │ ├── svpfr.h
│ │ │ │ │ │ ├── svpostnm.h
│ │ │ │ │ │ ├── svprop.h
│ │ │ │ │ │ ├── svpscmap.h
│ │ │ │ │ │ ├── svpsinfo.h
│ │ │ │ │ │ ├── svsfnt.h
│ │ │ │ │ │ ├── svttcmap.h
│ │ │ │ │ │ ├── svtteng.h
│ │ │ │ │ │ ├── svttglyf.h
│ │ │ │ │ │ ├── svwinfnt.h
│ │ │ │ │ │ └── svxf86nm.h
│ │ │ │ │ ├── sfnt.h
│ │ │ │ │ ├── t1types.h
│ │ │ │ │ └── tttypes.h
│ │ │ │ ├── t1tables.h
│ │ │ │ ├── ttnameid.h
│ │ │ │ ├── tttables.h
│ │ │ │ ├── tttags.h
│ │ │ │ └── ttunpat.h
│ │ │ └── ft2build.h
│ │ └── src/
│ │ ├── Jamfile
│ │ ├── autofit/
│ │ │ ├── Jamfile
│ │ │ ├── afangles.c
│ │ │ ├── afangles.h
│ │ │ ├── afcjk.c
│ │ │ ├── afcjk.h
│ │ │ ├── afdummy.c
│ │ │ ├── afdummy.h
│ │ │ ├── aferrors.h
│ │ │ ├── afglobal.c
│ │ │ ├── afglobal.h
│ │ │ ├── afhints.c
│ │ │ ├── afhints.h
│ │ │ ├── afindic.c
│ │ │ ├── afindic.h
│ │ │ ├── aflatin.c
│ │ │ ├── aflatin.h
│ │ │ ├── aflatin2.c
│ │ │ ├── aflatin2.h
│ │ │ ├── afloader.c
│ │ │ ├── afloader.h
│ │ │ ├── afmodule.c
│ │ │ ├── afmodule.h
│ │ │ ├── afpic.c
│ │ │ ├── afpic.h
│ │ │ ├── aftypes.h
│ │ │ ├── afwarp.c
│ │ │ ├── afwarp.h
│ │ │ ├── autofit.c
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── base/
│ │ │ ├── Jamfile
│ │ │ ├── basepic.c
│ │ │ ├── basepic.h
│ │ │ ├── ftadvanc.c
│ │ │ ├── ftapi.c
│ │ │ ├── ftbase.c
│ │ │ ├── ftbase.h
│ │ │ ├── ftbbox.c
│ │ │ ├── ftbdf.c
│ │ │ ├── ftbitmap.c
│ │ │ ├── ftcalc.c
│ │ │ ├── ftcid.c
│ │ │ ├── ftdbgmem.c
│ │ │ ├── ftdebug.c
│ │ │ ├── ftfstype.c
│ │ │ ├── ftgasp.c
│ │ │ ├── ftgloadr.c
│ │ │ ├── ftglyph.c
│ │ │ ├── ftgxval.c
│ │ │ ├── ftinit.c
│ │ │ ├── ftlcdfil.c
│ │ │ ├── ftmac.c
│ │ │ ├── ftmm.c
│ │ │ ├── ftobjs.c
│ │ │ ├── ftotval.c
│ │ │ ├── ftoutln.c
│ │ │ ├── ftpatent.c
│ │ │ ├── ftpfr.c
│ │ │ ├── ftpic.c
│ │ │ ├── ftrfork.c
│ │ │ ├── ftsnames.c
│ │ │ ├── ftstream.c
│ │ │ ├── ftstroke.c
│ │ │ ├── ftsynth.c
│ │ │ ├── ftsystem.c
│ │ │ ├── fttrigon.c
│ │ │ ├── fttype1.c
│ │ │ ├── ftutil.c
│ │ │ ├── ftwinfnt.c
│ │ │ ├── ftxf86.c
│ │ │ └── rules.mk
│ │ ├── bdf/
│ │ │ ├── Jamfile
│ │ │ ├── README
│ │ │ ├── bdf.c
│ │ │ ├── bdf.h
│ │ │ ├── bdfdrivr.c
│ │ │ ├── bdfdrivr.h
│ │ │ ├── bdferror.h
│ │ │ ├── bdflib.c
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── bzip2/
│ │ │ ├── Jamfile
│ │ │ ├── ftbzip2.c
│ │ │ └── rules.mk
│ │ ├── cache/
│ │ │ ├── Jamfile
│ │ │ ├── ftcache.c
│ │ │ ├── ftcbasic.c
│ │ │ ├── ftccache.c
│ │ │ ├── ftccache.h
│ │ │ ├── ftccback.h
│ │ │ ├── ftccmap.c
│ │ │ ├── ftcerror.h
│ │ │ ├── ftcglyph.c
│ │ │ ├── ftcglyph.h
│ │ │ ├── ftcimage.c
│ │ │ ├── ftcimage.h
│ │ │ ├── ftcmanag.c
│ │ │ ├── ftcmanag.h
│ │ │ ├── ftcmru.c
│ │ │ ├── ftcmru.h
│ │ │ ├── ftcsbits.c
│ │ │ ├── ftcsbits.h
│ │ │ └── rules.mk
│ │ ├── cff/
│ │ │ ├── Jamfile
│ │ │ ├── cff.c
│ │ │ ├── cffcmap.c
│ │ │ ├── cffcmap.h
│ │ │ ├── cffdrivr.c
│ │ │ ├── cffdrivr.h
│ │ │ ├── cfferrs.h
│ │ │ ├── cffgload.c
│ │ │ ├── cffgload.h
│ │ │ ├── cffload.c
│ │ │ ├── cffload.h
│ │ │ ├── cffobjs.c
│ │ │ ├── cffobjs.h
│ │ │ ├── cffparse.c
│ │ │ ├── cffparse.h
│ │ │ ├── cffpic.c
│ │ │ ├── cffpic.h
│ │ │ ├── cfftoken.h
│ │ │ ├── cfftypes.h
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── cid/
│ │ │ ├── Jamfile
│ │ │ ├── ciderrs.h
│ │ │ ├── cidgload.c
│ │ │ ├── cidgload.h
│ │ │ ├── cidload.c
│ │ │ ├── cidload.h
│ │ │ ├── cidobjs.c
│ │ │ ├── cidobjs.h
│ │ │ ├── cidparse.c
│ │ │ ├── cidparse.h
│ │ │ ├── cidriver.c
│ │ │ ├── cidriver.h
│ │ │ ├── cidtoken.h
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ └── type1cid.c
│ │ ├── gxvalid/
│ │ │ ├── Jamfile
│ │ │ ├── README
│ │ │ ├── gxvalid.c
│ │ │ ├── gxvalid.h
│ │ │ ├── gxvbsln.c
│ │ │ ├── gxvcommn.c
│ │ │ ├── gxvcommn.h
│ │ │ ├── gxverror.h
│ │ │ ├── gxvfeat.c
│ │ │ ├── gxvfeat.h
│ │ │ ├── gxvfgen.c
│ │ │ ├── gxvjust.c
│ │ │ ├── gxvkern.c
│ │ │ ├── gxvlcar.c
│ │ │ ├── gxvmod.c
│ │ │ ├── gxvmod.h
│ │ │ ├── gxvmort.c
│ │ │ ├── gxvmort.h
│ │ │ ├── gxvmort0.c
│ │ │ ├── gxvmort1.c
│ │ │ ├── gxvmort2.c
│ │ │ ├── gxvmort4.c
│ │ │ ├── gxvmort5.c
│ │ │ ├── gxvmorx.c
│ │ │ ├── gxvmorx.h
│ │ │ ├── gxvmorx0.c
│ │ │ ├── gxvmorx1.c
│ │ │ ├── gxvmorx2.c
│ │ │ ├── gxvmorx4.c
│ │ │ ├── gxvmorx5.c
│ │ │ ├── gxvopbd.c
│ │ │ ├── gxvprop.c
│ │ │ ├── gxvtrak.c
│ │ │ ├── module.mk
│ │ │ └── rules.mk
│ │ ├── gzip/
│ │ │ ├── Jamfile
│ │ │ ├── adler32.c
│ │ │ ├── ftgzip.c
│ │ │ ├── infblock.c
│ │ │ ├── infblock.h
│ │ │ ├── infcodes.c
│ │ │ ├── infcodes.h
│ │ │ ├── inffixed.h
│ │ │ ├── inflate.c
│ │ │ ├── inftrees.c
│ │ │ ├── inftrees.h
│ │ │ ├── infutil.c
│ │ │ ├── infutil.h
│ │ │ ├── rules.mk
│ │ │ ├── zconf.h
│ │ │ ├── zlib.h
│ │ │ ├── zutil.c
│ │ │ └── zutil.h
│ │ ├── lzw/
│ │ │ ├── Jamfile
│ │ │ ├── ftlzw.c
│ │ │ ├── ftzopen.c
│ │ │ ├── ftzopen.h
│ │ │ └── rules.mk
│ │ ├── otvalid/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── otvalid.c
│ │ │ ├── otvalid.h
│ │ │ ├── otvbase.c
│ │ │ ├── otvcommn.c
│ │ │ ├── otvcommn.h
│ │ │ ├── otverror.h
│ │ │ ├── otvgdef.c
│ │ │ ├── otvgpos.c
│ │ │ ├── otvgpos.h
│ │ │ ├── otvgsub.c
│ │ │ ├── otvjstf.c
│ │ │ ├── otvmath.c
│ │ │ ├── otvmod.c
│ │ │ ├── otvmod.h
│ │ │ └── rules.mk
│ │ ├── pcf/
│ │ │ ├── Jamfile
│ │ │ ├── README
│ │ │ ├── module.mk
│ │ │ ├── pcf.c
│ │ │ ├── pcf.h
│ │ │ ├── pcfdrivr.c
│ │ │ ├── pcfdrivr.h
│ │ │ ├── pcferror.h
│ │ │ ├── pcfread.c
│ │ │ ├── pcfread.h
│ │ │ ├── pcfutil.c
│ │ │ ├── pcfutil.h
│ │ │ └── rules.mk
│ │ ├── pfr/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── pfr.c
│ │ │ ├── pfrcmap.c
│ │ │ ├── pfrcmap.h
│ │ │ ├── pfrdrivr.c
│ │ │ ├── pfrdrivr.h
│ │ │ ├── pfrerror.h
│ │ │ ├── pfrgload.c
│ │ │ ├── pfrgload.h
│ │ │ ├── pfrload.c
│ │ │ ├── pfrload.h
│ │ │ ├── pfrobjs.c
│ │ │ ├── pfrobjs.h
│ │ │ ├── pfrsbit.c
│ │ │ ├── pfrsbit.h
│ │ │ ├── pfrtypes.h
│ │ │ └── rules.mk
│ │ ├── psaux/
│ │ │ ├── Jamfile
│ │ │ ├── afmparse.c
│ │ │ ├── afmparse.h
│ │ │ ├── module.mk
│ │ │ ├── psaux.c
│ │ │ ├── psauxerr.h
│ │ │ ├── psauxmod.c
│ │ │ ├── psauxmod.h
│ │ │ ├── psconv.c
│ │ │ ├── psconv.h
│ │ │ ├── psobjs.c
│ │ │ ├── psobjs.h
│ │ │ ├── rules.mk
│ │ │ ├── t1cmap.c
│ │ │ ├── t1cmap.h
│ │ │ ├── t1decode.c
│ │ │ └── t1decode.h
│ │ ├── pshinter/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── pshalgo.c
│ │ │ ├── pshalgo.h
│ │ │ ├── pshglob.c
│ │ │ ├── pshglob.h
│ │ │ ├── pshinter.c
│ │ │ ├── pshmod.c
│ │ │ ├── pshmod.h
│ │ │ ├── pshnterr.h
│ │ │ ├── pshpic.c
│ │ │ ├── pshpic.h
│ │ │ ├── pshrec.c
│ │ │ ├── pshrec.h
│ │ │ └── rules.mk
│ │ ├── psnames/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── psmodule.c
│ │ │ ├── psmodule.h
│ │ │ ├── psnamerr.h
│ │ │ ├── psnames.c
│ │ │ ├── pspic.c
│ │ │ ├── pspic.h
│ │ │ ├── pstables.h
│ │ │ └── rules.mk
│ │ ├── raster/
│ │ │ ├── Jamfile
│ │ │ ├── ftmisc.h
│ │ │ ├── ftraster.c
│ │ │ ├── ftraster.h
│ │ │ ├── ftrend1.c
│ │ │ ├── ftrend1.h
│ │ │ ├── module.mk
│ │ │ ├── raster.c
│ │ │ ├── rasterrs.h
│ │ │ ├── rastpic.c
│ │ │ ├── rastpic.h
│ │ │ └── rules.mk
│ │ ├── sfnt/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── sfdriver.c
│ │ │ ├── sfdriver.h
│ │ │ ├── sferrors.h
│ │ │ ├── sfnt.c
│ │ │ ├── sfntpic.c
│ │ │ ├── sfntpic.h
│ │ │ ├── sfobjs.c
│ │ │ ├── sfobjs.h
│ │ │ ├── ttbdf.c
│ │ │ ├── ttbdf.h
│ │ │ ├── ttcmap.c
│ │ │ ├── ttcmap.h
│ │ │ ├── ttcmapc.h
│ │ │ ├── ttkern.c
│ │ │ ├── ttkern.h
│ │ │ ├── ttload.c
│ │ │ ├── ttload.h
│ │ │ ├── ttmtx.c
│ │ │ ├── ttmtx.h
│ │ │ ├── ttpost.c
│ │ │ ├── ttpost.h
│ │ │ ├── ttsbit.c
│ │ │ ├── ttsbit.h
│ │ │ └── ttsbit0.c
│ │ ├── smooth/
│ │ │ ├── Jamfile
│ │ │ ├── ftgrays.c
│ │ │ ├── ftgrays.h
│ │ │ ├── ftsmerrs.h
│ │ │ ├── ftsmooth.c
│ │ │ ├── ftsmooth.h
│ │ │ ├── ftspic.c
│ │ │ ├── ftspic.h
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ └── smooth.c
│ │ ├── tools/
│ │ │ ├── Jamfile
│ │ │ ├── apinames.c
│ │ │ ├── chktrcmp.py
│ │ │ ├── cordic.py
│ │ │ ├── docmaker/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── content.py
│ │ │ │ ├── docbeauty.py
│ │ │ │ ├── docmaker.py
│ │ │ │ ├── formatter.py
│ │ │ │ ├── sources.py
│ │ │ │ ├── tohtml.py
│ │ │ │ └── utils.py
│ │ │ ├── ftrandom/
│ │ │ │ ├── Makefile
│ │ │ │ ├── README
│ │ │ │ └── ftrandom.c
│ │ │ ├── glnames.py
│ │ │ ├── test_afm.c
│ │ │ ├── test_bbox.c
│ │ │ └── test_trig.c
│ │ ├── truetype/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── truetype.c
│ │ │ ├── ttdriver.c
│ │ │ ├── ttdriver.h
│ │ │ ├── tterrors.h
│ │ │ ├── ttgload.c
│ │ │ ├── ttgload.h
│ │ │ ├── ttgxvar.c
│ │ │ ├── ttgxvar.h
│ │ │ ├── ttinterp.c
│ │ │ ├── ttinterp.h
│ │ │ ├── ttobjs.c
│ │ │ ├── ttobjs.h
│ │ │ ├── ttpic.c
│ │ │ ├── ttpic.h
│ │ │ ├── ttpload.c
│ │ │ ├── ttpload.h
│ │ │ ├── ttsubpix.c
│ │ │ └── ttsubpix.h
│ │ ├── type1/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── t1afm.c
│ │ │ ├── t1afm.h
│ │ │ ├── t1driver.c
│ │ │ ├── t1driver.h
│ │ │ ├── t1errors.h
│ │ │ ├── t1gload.c
│ │ │ ├── t1gload.h
│ │ │ ├── t1load.c
│ │ │ ├── t1load.h
│ │ │ ├── t1objs.c
│ │ │ ├── t1objs.h
│ │ │ ├── t1parse.c
│ │ │ ├── t1parse.h
│ │ │ ├── t1tokens.h
│ │ │ └── type1.c
│ │ ├── type42/
│ │ │ ├── Jamfile
│ │ │ ├── module.mk
│ │ │ ├── rules.mk
│ │ │ ├── t42drivr.c
│ │ │ ├── t42drivr.h
│ │ │ ├── t42error.h
│ │ │ ├── t42objs.c
│ │ │ ├── t42objs.h
│ │ │ ├── t42parse.c
│ │ │ ├── t42parse.h
│ │ │ ├── t42types.h
│ │ │ └── type42.c
│ │ └── winfonts/
│ │ ├── Jamfile
│ │ ├── fnterrs.h
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ ├── winfnt.c
│ │ └── winfnt.h
│ ├── LICENSE
│ ├── LibAesgm/
│ │ ├── CMakeLists.txt
│ │ ├── aes.h
│ │ ├── aes_modes.c
│ │ ├── aes_ni.c
│ │ ├── aes_ni.h
│ │ ├── aes_via_ace.h
│ │ ├── aescpp.h
│ │ ├── aescrypt.c
│ │ ├── aeskey.c
│ │ ├── aesopt.h
│ │ ├── aestab.c
│ │ ├── aestab.h
│ │ ├── binding.gyp
│ │ ├── brg_endian.h
│ │ └── brg_types.h
│ ├── LibJpeg/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── jaricom.c
│ │ ├── jcapimin.c
│ │ ├── jcapistd.c
│ │ ├── jcarith.c
│ │ ├── jccoefct.c
│ │ ├── jccolor.c
│ │ ├── jcdctmgr.c
│ │ ├── jchuff.c
│ │ ├── jcinit.c
│ │ ├── jcmainct.c
│ │ ├── jcmarker.c
│ │ ├── jcmaster.c
│ │ ├── jcomapi.c
│ │ ├── jconfig.h
│ │ ├── jcparam.c
│ │ ├── jcprepct.c
│ │ ├── jcsample.c
│ │ ├── jctrans.c
│ │ ├── jdapimin.c
│ │ ├── jdapistd.c
│ │ ├── jdarith.c
│ │ ├── jdatadst.c
│ │ ├── jdatasrc.c
│ │ ├── jdcoefct.c
│ │ ├── jdcolor.c
│ │ ├── jdct.h
│ │ ├── jddctmgr.c
│ │ ├── jdhuff.c
│ │ ├── jdinput.c
│ │ ├── jdmainct.c
│ │ ├── jdmarker.c
│ │ ├── jdmaster.c
│ │ ├── jdmerge.c
│ │ ├── jdpostct.c
│ │ ├── jdsample.c
│ │ ├── jdtrans.c
│ │ ├── jerror.c
│ │ ├── jerror.h
│ │ ├── jfdctflt.c
│ │ ├── jfdctfst.c
│ │ ├── jfdctint.c
│ │ ├── jidctflt.c
│ │ ├── jidctfst.c
│ │ ├── jidctint.c
│ │ ├── jinclude.h
│ │ ├── jmemmgr.c
│ │ ├── jmemnobs.c
│ │ ├── jmemsys.h
│ │ ├── jmorecfg.h
│ │ ├── jpegint.h
│ │ ├── jpeglib.h
│ │ ├── jquant1.c
│ │ ├── jquant2.c
│ │ ├── jutils.c
│ │ └── jversion.h
│ ├── LibPng/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── png.c
│ │ ├── png.h
│ │ ├── pngconf.h
│ │ ├── pngdebug.h
│ │ ├── pngerror.c
│ │ ├── pngget.c
│ │ ├── pnginfo.h
│ │ ├── pnglibconf.h
│ │ ├── pngmem.c
│ │ ├── pngpread.c
│ │ ├── pngpriv.h
│ │ ├── pngread.c
│ │ ├── pngrio.c
│ │ ├── pngrtran.c
│ │ ├── pngrutil.c
│ │ ├── pngset.c
│ │ ├── pngstruct.h
│ │ ├── pngtrans.c
│ │ ├── pngwio.c
│ │ ├── pngwrite.c
│ │ ├── pngwtran.c
│ │ └── pngwutil.c
│ ├── LibTiff/
│ │ ├── CMakeLists.txt
│ │ ├── binding.gyp
│ │ ├── t4.h
│ │ ├── tif_aux.c
│ │ ├── tif_close.c
│ │ ├── tif_codec.c
│ │ ├── tif_color.c
│ │ ├── tif_compress.c
│ │ ├── tif_config.h
│ │ ├── tif_dir.c
│ │ ├── tif_dir.h
│ │ ├── tif_dirinfo.c
│ │ ├── tif_dirread.c
│ │ ├── tif_dirwrite.c
│ │ ├── tif_dumpmode.c
│ │ ├── tif_error.c
│ │ ├── tif_extension.c
│ │ ├── tif_fax3.c
│ │ ├── tif_fax3.h
│ │ ├── tif_fax3sm.c
│ │ ├── tif_flush.c
│ │ ├── tif_getimage.c
│ │ ├── tif_jbig.c
│ │ ├── tif_jpeg.c
│ │ ├── tif_luv.c
│ │ ├── tif_lzw.c
│ │ ├── tif_next.c
│ │ ├── tif_ojpeg.c
│ │ ├── tif_open.c
│ │ ├── tif_packbits.c
│ │ ├── tif_pixarlog.c
│ │ ├── tif_predict.c
│ │ ├── tif_predict.h
│ │ ├── tif_print.c
│ │ ├── tif_read.c
│ │ ├── tif_stream.cxx
│ │ ├── tif_strip.c
│ │ ├── tif_swab.c
│ │ ├── tif_thunder.c
│ │ ├── tif_tile.c
│ │ ├── tif_unix.c
│ │ ├── tif_version.c
│ │ ├── tif_warning.c
│ │ ├── tif_write.c
│ │ ├── tif_zip.c
│ │ ├── tiff.h
│ │ ├── tiffconf.h
│ │ ├── tiffio.h
│ │ ├── tiffio.hxx
│ │ ├── tiffiop.h
│ │ ├── tiffvers.h
│ │ └── uvcode.h
│ ├── LicenseTemplate.txt
│ ├── PDFWriter/
│ │ ├── ANSIFontWriter.cpp
│ │ ├── ANSIFontWriter.h
│ │ ├── AbstractContentContext.cpp
│ │ ├── AbstractContentContext.h
│ │ ├── AbstractWrittenFont.cpp
│ │ ├── AbstractWrittenFont.h
│ │ ├── AdapterIByteReaderWithPositionToIReadPositionProvider.h
│ │ ├── ArrayOfInputStreamsStream.cpp
│ │ ├── ArrayOfInputStreamsStream.h
│ │ ├── Ascii7Encoding.cpp
│ │ ├── Ascii7Encoding.h
│ │ ├── BetweenIncluding.h
│ │ ├── BoxingBase.h
│ │ ├── CFFANSIFontWriter.cpp
│ │ ├── CFFANSIFontWriter.h
│ │ ├── CFFDescendentFontWriter.cpp
│ │ ├── CFFDescendentFontWriter.h
│ │ ├── CFFEmbeddedFontWriter.cpp
│ │ ├── CFFEmbeddedFontWriter.h
│ │ ├── CFFFileInput.cpp
│ │ ├── CFFFileInput.h
│ │ ├── CFFPrimitiveReader.cpp
│ │ ├── CFFPrimitiveReader.h
│ │ ├── CFFPrimitiveWriter.cpp
│ │ ├── CFFPrimitiveWriter.h
│ │ ├── CIDFontWriter.cpp
│ │ ├── CIDFontWriter.h
│ │ ├── CMYKRGBColor.cpp
│ │ ├── CMYKRGBColor.h
│ │ ├── CMakeLists.txt
│ │ ├── CatalogInformation.cpp
│ │ ├── CatalogInformation.h
│ │ ├── CharStringDefinitions.h
│ │ ├── CharStringType1Interpreter.cpp
│ │ ├── CharStringType1Interpreter.h
│ │ ├── CharStringType1Tracer.cpp
│ │ ├── CharStringType1Tracer.h
│ │ ├── CharStringType2Flattener.cpp
│ │ ├── CharStringType2Flattener.h
│ │ ├── CharStringType2Interpreter.cpp
│ │ ├── CharStringType2Interpreter.h
│ │ ├── CharStringType2Tracer.cpp
│ │ ├── CharStringType2Tracer.h
│ │ ├── ContainerIterator.h
│ │ ├── DecryptionHelper.cpp
│ │ ├── DecryptionHelper.h
│ │ ├── DescendentFontWriter.cpp
│ │ ├── DescendentFontWriter.h
│ │ ├── DictOperand.h
│ │ ├── DictionaryContext.cpp
│ │ ├── DictionaryContext.h
│ │ ├── DocumentContext.cpp
│ │ ├── DocumentContext.h
│ │ ├── DocumentContextExtenderAdapter.h
│ │ ├── EFontStretch.h
│ │ ├── EHummusImageType.h
│ │ ├── EPDFVersion.h
│ │ ├── EStatusCode.h
│ │ ├── ETokenSeparator.h
│ │ ├── EncryptionHelper.cpp
│ │ ├── EncryptionHelper.h
│ │ ├── EncryptionOptions.cpp
│ │ ├── EncryptionOptions.h
│ │ ├── FSType.h
│ │ ├── FontDescriptorWriter.cpp
│ │ ├── FontDescriptorWriter.h
│ │ ├── FreeTypeFaceWrapper.cpp
│ │ ├── FreeTypeFaceWrapper.h
│ │ ├── FreeTypeOpenTypeWrapper.cpp
│ │ ├── FreeTypeOpenTypeWrapper.h
│ │ ├── FreeTypeType1Wrapper.cpp
│ │ ├── FreeTypeType1Wrapper.h
│ │ ├── FreeTypeWrapper.cpp
│ │ ├── FreeTypeWrapper.h
│ │ ├── GlyphUnicodeMapping.h
│ │ ├── GraphicState.cpp
│ │ ├── GraphicState.h
│ │ ├── GraphicStateStack.cpp
│ │ ├── GraphicStateStack.h
│ │ ├── IANSIFontWriterHelper.h
│ │ ├── IByteReader.h
│ │ ├── IByteReaderWithPosition.h
│ │ ├── IByteWriter.h
│ │ ├── IByteWriterWithPosition.h
│ │ ├── IContentContextListener.h
│ │ ├── IDescendentFontWriter.h
│ │ ├── IDocumentContextExtender.h
│ │ ├── IFontDescriptorHelper.h
│ │ ├── IFormEndWritingTask.h
│ │ ├── IFreeTypeFaceExtender.h
│ │ ├── IOBasicTypes.h
│ │ ├── IObjectsContextExtender.h
│ │ ├── IPDFParserExtender.h
│ │ ├── IPageEndWritingTask.h
│ │ ├── IReadPositionProvider.h
│ │ ├── IResourceWritingTask.h
│ │ ├── ITiledPatternEndWritingTask.h
│ │ ├── IType1InterpreterImplementation.h
│ │ ├── IType2InterpreterImplementation.h
│ │ ├── IWrittenFont.h
│ │ ├── IndirectObjectsReferenceRegistry.cpp
│ │ ├── IndirectObjectsReferenceRegistry.h
│ │ ├── InfoDictionary.cpp
│ │ ├── InfoDictionary.h
│ │ ├── InputAESDecodeStream.cpp
│ │ ├── InputAESDecodeStream.h
│ │ ├── InputAscii85DecodeStream.cpp
│ │ ├── InputAscii85DecodeStream.h
│ │ ├── InputAsciiHexDecodeStream.cpp
│ │ ├── InputAsciiHexDecodeStream.h
│ │ ├── InputBufferedStream.cpp
│ │ ├── InputBufferedStream.h
│ │ ├── InputByteArrayStream.cpp
│ │ ├── InputByteArrayStream.h
│ │ ├── InputCharStringDecodeStream.cpp
│ │ ├── InputCharStringDecodeStream.h
│ │ ├── InputDCTDecodeStream.cpp
│ │ ├── InputDCTDecodeStream.h
│ │ ├── InputFile.cpp
│ │ ├── InputFile.h
│ │ ├── InputFileStream.cpp
│ │ ├── InputFileStream.h
│ │ ├── InputFlateDecodeStream.cpp
│ │ ├── InputFlateDecodeStream.h
│ │ ├── InputLimitedStream.cpp
│ │ ├── InputLimitedStream.h
│ │ ├── InputPFBDecodeStream.cpp
│ │ ├── InputPFBDecodeStream.h
│ │ ├── InputPredictorPNGOptimumStream.cpp
│ │ ├── InputPredictorPNGOptimumStream.h
│ │ ├── InputPredictorTIFFSubStream.cpp
│ │ ├── InputPredictorTIFFSubStream.h
│ │ ├── InputRC4XcodeStream.cpp
│ │ ├── InputRC4XcodeStream.h
│ │ ├── InputStreamSkipperStream.cpp
│ │ ├── InputStreamSkipperStream.h
│ │ ├── InputStringBufferStream.cpp
│ │ ├── InputStringBufferStream.h
│ │ ├── InputStringStream.cpp
│ │ ├── InputStringStream.h
│ │ ├── JPEGImageHandler.cpp
│ │ ├── JPEGImageHandler.h
│ │ ├── JPEGImageInformation.cpp
│ │ ├── JPEGImageInformation.h
│ │ ├── JPEGImageParser.cpp
│ │ ├── JPEGImageParser.h
│ │ ├── Log.cpp
│ │ ├── Log.h
│ │ ├── MD5Generator.cpp
│ │ ├── MD5Generator.h
│ │ ├── MapIterator.h
│ │ ├── MyStringBuf.h
│ │ ├── ObjectsBasicTypes.h
│ │ ├── ObjectsContext.cpp
│ │ ├── ObjectsContext.h
│ │ ├── ObjectsContextExtenderAdapter.h
│ │ ├── OpenTypeFileInput.cpp
│ │ ├── OpenTypeFileInput.h
│ │ ├── OpenTypePrimitiveReader.cpp
│ │ ├── OpenTypePrimitiveReader.h
│ │ ├── OutputAESEncodeStream.cpp
│ │ ├── OutputAESEncodeStream.h
│ │ ├── OutputBufferedStream.cpp
│ │ ├── OutputBufferedStream.h
│ │ ├── OutputFile.cpp
│ │ ├── OutputFile.h
│ │ ├── OutputFileStream.cpp
│ │ ├── OutputFileStream.h
│ │ ├── OutputFlateDecodeStream.cpp
│ │ ├── OutputFlateDecodeStream.h
│ │ ├── OutputFlateEncodeStream.cpp
│ │ ├── OutputFlateEncodeStream.h
│ │ ├── OutputRC4XcodeStream.cpp
│ │ ├── OutputRC4XcodeStream.h
│ │ ├── OutputStreamTraits.cpp
│ │ ├── OutputStreamTraits.h
│ │ ├── OutputStringBufferStream.cpp
│ │ ├── OutputStringBufferStream.h
│ │ ├── PDFArray.cpp
│ │ ├── PDFArray.h
│ │ ├── PDFArrayIterator.cpp
│ │ ├── PDFArrayIterator.h
│ │ ├── PDFBoolean.cpp
│ │ ├── PDFBoolean.h
│ │ ├── PDFCosArray.cpp
│ │ ├── PDFCosArray.h
│ │ ├── PDFCosDict.cpp
│ │ ├── PDFCosDict.h
│ │ ├── PDFDate.cpp
│ │ ├── PDFDate.h
│ │ ├── PDFDictionary.cpp
│ │ ├── PDFDictionary.h
│ │ ├── PDFDictionaryIterator.cpp
│ │ ├── PDFDictionaryIterator.h
│ │ ├── PDFDocEncoding.cpp
│ │ ├── PDFDocEncoding.h
│ │ ├── PDFDocumentCopyingContext.cpp
│ │ ├── PDFDocumentCopyingContext.h
│ │ ├── PDFDocumentHandler.cpp
│ │ ├── PDFDocumentHandler.h
│ │ ├── PDFEmbedParameterTypes.h
│ │ ├── PDFFormXObject.cpp
│ │ ├── PDFFormXObject.h
│ │ ├── PDFHexString.cpp
│ │ ├── PDFHexString.h
│ │ ├── PDFImageXObject.cpp
│ │ ├── PDFImageXObject.h
│ │ ├── PDFIndirectObjectReference.cpp
│ │ ├── PDFIndirectObjectReference.h
│ │ ├── PDFInteger.cpp
│ │ ├── PDFInteger.h
│ │ ├── PDFLiteralString.cpp
│ │ ├── PDFLiteralString.h
│ │ ├── PDFModifiedPage.cpp
│ │ ├── PDFModifiedPage.h
│ │ ├── PDFName.cpp
│ │ ├── PDFName.h
│ │ ├── PDFNull.cpp
│ │ ├── PDFNull.h
│ │ ├── PDFObject.cpp
│ │ ├── PDFObject.h
│ │ ├── PDFObjectCast.h
│ │ ├── PDFObjectParser.cpp
│ │ ├── PDFObjectParser.h
│ │ ├── PDFPage.cpp
│ │ ├── PDFPage.h
│ │ ├── PDFPageInput.cpp
│ │ ├── PDFPageInput.h
│ │ ├── PDFPageMergingHelper.cpp
│ │ ├── PDFPageMergingHelper.h
│ │ ├── PDFParser.cpp
│ │ ├── PDFParser.h
│ │ ├── PDFParserTokenizer.cpp
│ │ ├── PDFParserTokenizer.h
│ │ ├── PDFParsingOptions.cpp
│ │ ├── PDFParsingOptions.h
│ │ ├── PDFReal.cpp
│ │ ├── PDFReal.h
│ │ ├── PDFRectangle.cpp
│ │ ├── PDFRectangle.h
│ │ ├── PDFStream.cpp
│ │ ├── PDFStream.h
│ │ ├── PDFStreamInput.cpp
│ │ ├── PDFStreamInput.h
│ │ ├── PDFSymbol.cpp
│ │ ├── PDFSymbol.h
│ │ ├── PDFTextString.cpp
│ │ ├── PDFTextString.h
│ │ ├── PDFTiledPattern.cpp
│ │ ├── PDFTiledPattern.h
│ │ ├── PDFUsedFont.cpp
│ │ ├── PDFUsedFont.h
│ │ ├── PDFWriter.cpp
│ │ ├── PDFWriter.h
│ │ ├── PFMFileReader.cpp
│ │ ├── PFMFileReader.h
│ │ ├── PNGImageHandler.cpp
│ │ ├── PNGImageHandler.h
│ │ ├── PSBool.cpp
│ │ ├── PSBool.h
│ │ ├── PageContentContext.cpp
│ │ ├── PageContentContext.h
│ │ ├── PageTree.cpp
│ │ ├── PageTree.h
│ │ ├── ParsedPrimitiveHelper.cpp
│ │ ├── ParsedPrimitiveHelper.h
│ │ ├── PrimitiveObjectsWriter.cpp
│ │ ├── PrimitiveObjectsWriter.h
│ │ ├── ProcsetResourcesConstants.h
│ │ ├── RC4.cpp
│ │ ├── RC4.h
│ │ ├── RefCountObject.cpp
│ │ ├── RefCountObject.h
│ │ ├── RefCountPtr.h
│ │ ├── ResourcesDictionary.cpp
│ │ ├── ResourcesDictionary.h
│ │ ├── SafeBufferMacrosDefs.h
│ │ ├── SimpleStringTokenizer.cpp
│ │ ├── SimpleStringTokenizer.h
│ │ ├── SingleValueContainerIterator.h
│ │ ├── Singleton.h
│ │ ├── StandardEncoding.cpp
│ │ ├── StandardEncoding.h
│ │ ├── StateReader.cpp
│ │ ├── StateReader.h
│ │ ├── StateWriter.cpp
│ │ ├── StateWriter.h
│ │ ├── TIFFImageHandler.cpp
│ │ ├── TIFFImageHandler.h
│ │ ├── TiffUsageParameters.cpp
│ │ ├── TiffUsageParameters.h
│ │ ├── TiledPatternContentContext.cpp
│ │ ├── TiledPatternContentContext.h
│ │ ├── Timer.cpp
│ │ ├── Timer.h
│ │ ├── TimersRegistry.cpp
│ │ ├── TimersRegistry.h
│ │ ├── Trace.cpp
│ │ ├── Trace.h
│ │ ├── TrailerInformation.cpp
│ │ ├── TrailerInformation.h
│ │ ├── TrueTypeANSIFontWriter.cpp
│ │ ├── TrueTypeANSIFontWriter.h
│ │ ├── TrueTypeDescendentFontWriter.cpp
│ │ ├── TrueTypeDescendentFontWriter.h
│ │ ├── TrueTypeEmbeddedFontWriter.cpp
│ │ ├── TrueTypeEmbeddedFontWriter.h
│ │ ├── TrueTypePrimitiveWriter.cpp
│ │ ├── TrueTypePrimitiveWriter.h
│ │ ├── Type1Input.cpp
│ │ ├── Type1Input.h
│ │ ├── Type1ToCFFEmbeddedFontWriter.cpp
│ │ ├── Type1ToCFFEmbeddedFontWriter.h
│ │ ├── Type1ToType2Converter.cpp
│ │ ├── Type1ToType2Converter.h
│ │ ├── Type2CharStringWriter.cpp
│ │ ├── Type2CharStringWriter.h
│ │ ├── UnicodeString.cpp
│ │ ├── UnicodeString.h
│ │ ├── UppercaseSequance.cpp
│ │ ├── UppercaseSequance.h
│ │ ├── UsedFontsRepository.cpp
│ │ ├── UsedFontsRepository.h
│ │ ├── WinAnsiEncoding.cpp
│ │ ├── WinAnsiEncoding.h
│ │ ├── WrittenFontCFF.cpp
│ │ ├── WrittenFontCFF.h
│ │ ├── WrittenFontRepresentation.h
│ │ ├── WrittenFontTrueType.cpp
│ │ ├── WrittenFontTrueType.h
│ │ ├── XCryptionCommon.cpp
│ │ ├── XCryptionCommon.h
│ │ ├── XObjectContentContext.cpp
│ │ ├── XObjectContentContext.h
│ │ └── binding.gyp
│ ├── PDFWriterTestPlayground/
│ │ ├── .gitignore
│ │ ├── AppendPagesTest.cpp
│ │ ├── AppendPagesTest.h
│ │ ├── AppendSpecialPagesTest.cpp
│ │ ├── AppendSpecialPagesTest.h
│ │ ├── AppendingAndReading.cpp
│ │ ├── AppendingAndReading.h
│ │ ├── BasicModification.cpp
│ │ ├── BasicModification.h
│ │ ├── BoxingBaseTest.cpp
│ │ ├── BoxingBaseTest.h
│ │ ├── BufferedOutputStreamTest.cpp
│ │ ├── BufferedOutputStreamTest.h
│ │ ├── CMakeLists.txt
│ │ ├── CopyingAndMergingEmptyPages.cpp
│ │ ├── CopyingAndMergingEmptyPages.h
│ │ ├── CustomLogTest.cpp
│ │ ├── CustomLogTest.h
│ │ ├── DCTDecodeFilterTest.cpp
│ │ ├── DCTDecodeFilterTest.h
│ │ ├── DFontTest.cpp
│ │ ├── DFontTest.h
│ │ ├── EmptyFileTest.cpp
│ │ ├── EmptyFileTest.h
│ │ ├── EmptyPagesPDF.cpp
│ │ ├── EmptyPagesPDF.h
│ │ ├── EncryptedPDF.cpp
│ │ ├── EncryptedPDF.h
│ │ ├── FileURL.cpp
│ │ ├── FileURL.h
│ │ ├── FlateEncryptionTest.cpp
│ │ ├── FlateEncryptionTest.h
│ │ ├── FlateObjectDecodeTest.cpp
│ │ ├── FlateObjectDecodeTest.h
│ │ ├── FormXObjectTest.cpp
│ │ ├── FormXObjectTest.h
│ │ ├── FreeTypeInitializationTest.cpp
│ │ ├── FreeTypeInitializationTest.h
│ │ ├── HighLevelContentContext.cpp
│ │ ├── HighLevelContentContext.h
│ │ ├── HighLevelImages.cpp
│ │ ├── HighLevelImages.h
│ │ ├── ITestUnit.h
│ │ ├── ImagesAndFormsForwardReferenceTest.cpp
│ │ ├── ImagesAndFormsForwardReferenceTest.h
│ │ ├── ImportantReadme.txt
│ │ ├── InputFlateDecodeTester.cpp
│ │ ├── InputFlateDecodeTester.h
│ │ ├── InputImagesAsStreamsTest.cpp
│ │ ├── InputImagesAsStreamsTest.h
│ │ ├── JPGImageTest.cpp
│ │ ├── JPGImageTest.h
│ │ ├── JpegLibTest.cpp
│ │ ├── JpegLibTest.h
│ │ ├── LinksTest.cpp
│ │ ├── LinksTest.h
│ │ ├── LogTest.cpp
│ │ ├── LogTest.h
│ │ ├── MergePDFPages.cpp
│ │ ├── MergePDFPages.h
│ │ ├── MergeToPDFForm.cpp
│ │ ├── MergeToPDFForm.h
│ │ ├── ModifyingEncryptedFile.cpp
│ │ ├── ModifyingEncryptedFile.h
│ │ ├── ModifyingExistingFileContent.cpp
│ │ ├── ModifyingExistingFileContent.h
│ │ ├── OpenTypeTest.cpp
│ │ ├── OpenTypeTest.h
│ │ ├── OutputFileStreamTest.cpp
│ │ ├── OutputFileStreamTest.h
│ │ ├── PDFComment.cpp
│ │ ├── PDFComment.h
│ │ ├── PDFCommentWriter.cpp
│ │ ├── PDFCommentWriter.h
│ │ ├── PDFCopyingContextTest.cpp
│ │ ├── PDFCopyingContextTest.h
│ │ ├── PDFDateTest.cpp
│ │ ├── PDFDateTest.h
│ │ ├── PDFEmbedTest.cpp
│ │ ├── PDFEmbedTest.h
│ │ ├── PDFObjectCastTest.cpp
│ │ ├── PDFObjectCastTest.h
│ │ ├── PDFObjectParserTest.cpp
│ │ ├── PDFObjectParserTest.h
│ │ ├── PDFParserTest.cpp
│ │ ├── PDFParserTest.h
│ │ ├── PDFTextStringTest.cpp
│ │ ├── PDFTextStringTest.h
│ │ ├── PDFWithPassword.cpp
│ │ ├── PDFWithPassword.h
│ │ ├── PDFWriterTestPlayground.cpp
│ │ ├── PFBStreamTest.cpp
│ │ ├── PFBStreamTest.h
│ │ ├── PNGImageTest.cpp
│ │ ├── PNGImageTest.h
│ │ ├── PageModifierTest.cpp
│ │ ├── PageModifierTest.h
│ │ ├── PageOrderModification.cpp
│ │ ├── PageOrderModification.h
│ │ ├── ParsingBadXref.cpp
│ │ ├── ParsingBadXref.h
│ │ ├── ParsingFaulty.cpp
│ │ ├── ParsingFaulty.h
│ │ ├── PosixPath.cpp
│ │ ├── PosixPath.h
│ │ ├── RecryptPDF.cpp
│ │ ├── RecryptPDF.h
│ │ ├── RefCountTest.cpp
│ │ ├── RefCountTest.h
│ │ ├── RotatedPagesPDF.cpp
│ │ ├── RotatedPagesPDF.h
│ │ ├── ShutDownRestartTest.cpp
│ │ ├── ShutDownRestartTest.h
│ │ ├── SimpleContentPageTest.cpp
│ │ ├── SimpleContentPageTest.h
│ │ ├── SimpleTextUsage.cpp
│ │ ├── SimpleTextUsage.h
│ │ ├── TIFFImageTest.cpp
│ │ ├── TIFFImageTest.h
│ │ ├── TTCTest.cpp
│ │ ├── TTCTest.h
│ │ ├── TestMeasurementsTest.cpp
│ │ ├── TestMeasurementsTest.h
│ │ ├── TestsRunner.cpp
│ │ ├── TestsRunner.h
│ │ ├── TextUsageBugs.cpp
│ │ ├── TextUsageBugs.h
│ │ ├── TiffSpecialsTest.cpp
│ │ ├── TiffSpecialsTest.h
│ │ ├── TimerTest.cpp
│ │ ├── TimerTest.h
│ │ ├── TrueTypeTest.cpp
│ │ ├── TrueTypeTest.h
│ │ ├── Type1Test.cpp
│ │ ├── Type1Test.h
│ │ ├── UnicodeTextUsage.cpp
│ │ ├── UnicodeTextUsage.h
│ │ ├── UppercaseSequanceTest.cpp
│ │ ├── UppercaseSequanceTest.h
│ │ ├── WindowsPath.cpp
│ │ └── WindowsPath.h
│ ├── ZLib/
│ │ ├── CMakeLists.txt
│ │ ├── adler32.c
│ │ ├── binding.gyp
│ │ ├── compress.c
│ │ ├── crc32.c
│ │ ├── crc32.h
│ │ ├── deflate.c
│ │ ├── deflate.h
│ │ ├── gzclose.c
│ │ ├── gzguts.h
│ │ ├── gzlib.c
│ │ ├── gzread.c
│ │ ├── gzwrite.c
│ │ ├── infback.c
│ │ ├── inffast.c
│ │ ├── inffast.h
│ │ ├── inffixed.h
│ │ ├── inflate.c
│ │ ├── inflate.h
│ │ ├── inftrees.c
│ │ ├── inftrees.h
│ │ ├── trees.c
│ │ ├── trees.h
│ │ ├── uncompr.c
│ │ ├── zconf.h
│ │ ├── zlib.h
│ │ ├── zutil.c
│ │ └── zutil.h
│ ├── git
│ └── readme.md
├── PNGWriter/
│ ├── CMakeLists.txt
│ ├── pngwriter.cc
│ └── pngwriter.h
├── ZipLib/
│ ├── CMakeLists.txt
│ ├── ZipArchive.cpp
│ ├── ZipArchive.h
│ ├── ZipArchiveEntry.cpp
│ ├── ZipArchiveEntry.h
│ ├── ZipFile.cpp
│ ├── ZipFile.h
│ ├── compression/
│ │ ├── bzip2/
│ │ │ ├── bzip2_decoder.h
│ │ │ ├── bzip2_decoder_properties.h
│ │ │ ├── bzip2_encoder.h
│ │ │ └── bzip2_encoder_properties.h
│ │ ├── compression_interface.h
│ │ ├── deflate/
│ │ │ ├── deflate_decoder.h
│ │ │ ├── deflate_decoder_properties.h
│ │ │ ├── deflate_encoder.h
│ │ │ └── deflate_encoder_properties.h
│ │ ├── lzma/
│ │ │ ├── detail/
│ │ │ │ ├── lzma_alloc.h
│ │ │ │ ├── lzma_handle.h
│ │ │ │ ├── lzma_header.h
│ │ │ │ ├── lzma_in_stream.h
│ │ │ │ └── lzma_out_stream.h
│ │ │ ├── lzma_decoder.h
│ │ │ ├── lzma_decoder_properties.h
│ │ │ ├── lzma_encoder.h
│ │ │ └── lzma_encoder_properties.h
│ │ └── store/
│ │ ├── store_decoder.h
│ │ ├── store_decoder_properties.h
│ │ ├── store_encoder.h
│ │ └── store_encoder_properties.h
│ ├── detail/
│ │ ├── EndOfCentralDirectoryBlock.cpp
│ │ ├── EndOfCentralDirectoryBlock.h
│ │ ├── ZipCentralDirectoryFileHeader.cpp
│ │ ├── ZipCentralDirectoryFileHeader.h
│ │ ├── ZipGenericExtraField.cpp
│ │ ├── ZipGenericExtraField.h
│ │ ├── ZipLocalFileHeader.cpp
│ │ └── ZipLocalFileHeader.h
│ ├── extlibs/
│ │ ├── bzip2/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── blocksort.c
│ │ │ ├── bzerror.c
│ │ │ ├── bzlib.c
│ │ │ ├── bzlib.h
│ │ │ ├── bzlib_private.h
│ │ │ ├── compress.c
│ │ │ ├── crctable.c
│ │ │ ├── decompress.c
│ │ │ ├── huffman.c
│ │ │ └── randtable.c
│ │ ├── lzma/
│ │ │ ├── 7z.h
│ │ │ ├── 7zAlloc.c
│ │ │ ├── 7zAlloc.h
│ │ │ ├── 7zBuf.c
│ │ │ ├── 7zBuf.h
│ │ │ ├── 7zBuf2.c
│ │ │ ├── 7zCrc.c
│ │ │ ├── 7zCrc.h
│ │ │ ├── 7zCrcOpt.c
│ │ │ ├── 7zDec.c
│ │ │ ├── 7zFile.c
│ │ │ ├── 7zFile.h
│ │ │ ├── 7zIn.c
│ │ │ ├── 7zStream.c
│ │ │ ├── 7zVersion.h
│ │ │ ├── Alloc.c
│ │ │ ├── Alloc.h
│ │ │ ├── Bcj2.c
│ │ │ ├── Bcj2.h
│ │ │ ├── Bra.c
│ │ │ ├── Bra.h
│ │ │ ├── Bra86.c
│ │ │ ├── BraIA64.c
│ │ │ ├── CMakeLists.txt
│ │ │ ├── CpuArch.c
│ │ │ ├── CpuArch.h
│ │ │ ├── Delta.c
│ │ │ ├── Delta.h
│ │ │ ├── LzFind.c
│ │ │ ├── LzFind.h
│ │ │ ├── LzFindMt.c
│ │ │ ├── LzFindMt.h
│ │ │ ├── LzHash.h
│ │ │ ├── Lzma2Dec.c
│ │ │ ├── Lzma2Dec.h
│ │ │ ├── Lzma2Enc.c
│ │ │ ├── Lzma2Enc.h
│ │ │ ├── Lzma86.h
│ │ │ ├── Lzma86Dec.c
│ │ │ ├── Lzma86Enc.c
│ │ │ ├── LzmaDec.c
│ │ │ ├── LzmaDec.h
│ │ │ ├── LzmaEnc.c
│ │ │ ├── LzmaEnc.h
│ │ │ ├── LzmaLib.c
│ │ │ ├── LzmaLib.h
│ │ │ ├── MtCoder.c
│ │ │ ├── MtCoder.h
│ │ │ ├── Ppmd.h
│ │ │ ├── Ppmd7.c
│ │ │ ├── Ppmd7.h
│ │ │ ├── Ppmd7Dec.c
│ │ │ ├── Ppmd7Enc.c
│ │ │ ├── RotateDefs.h
│ │ │ ├── Sha256.c
│ │ │ ├── Sha256.h
│ │ │ ├── Threads.c
│ │ │ ├── Threads.h
│ │ │ ├── Types.h
│ │ │ ├── Xz.c
│ │ │ ├── Xz.h
│ │ │ ├── XzCrc64.c
│ │ │ ├── XzCrc64.h
│ │ │ ├── XzDec.c
│ │ │ ├── XzEnc.c
│ │ │ ├── XzEnc.h
│ │ │ ├── XzIn.c
│ │ │ └── unix/
│ │ │ ├── 7zBuf.h
│ │ │ ├── 7zBuf2.c
│ │ │ ├── 7zCrc.c
│ │ │ ├── 7zCrc.h
│ │ │ ├── 7zCrcOpt.c
│ │ │ ├── 7zStream.c
│ │ │ ├── 7zVersion.h
│ │ │ ├── Aes.c
│ │ │ ├── Aes.h
│ │ │ ├── Alloc.back3
│ │ │ ├── Alloc.c
│ │ │ ├── Alloc.c.back
│ │ │ ├── Alloc.c.back2
│ │ │ ├── Alloc.h
│ │ │ ├── Bra.c
│ │ │ ├── Bra.h
│ │ │ ├── Bra86.c
│ │ │ ├── BraIA64.c
│ │ │ ├── BwtSort.c
│ │ │ ├── BwtSort.h
│ │ │ ├── CpuArch.c
│ │ │ ├── CpuArch.h
│ │ │ ├── Delta.c
│ │ │ ├── Delta.h
│ │ │ ├── HuffEnc.c
│ │ │ ├── HuffEnc.h
│ │ │ ├── LzFind.c
│ │ │ ├── LzFind.h
│ │ │ ├── LzFindMt.c
│ │ │ ├── LzFindMt.h
│ │ │ ├── LzHash.h
│ │ │ ├── Lzma2Dec.c
│ │ │ ├── Lzma2Dec.h
│ │ │ ├── Lzma2Enc.c
│ │ │ ├── Lzma2Enc.h
│ │ │ ├── LzmaDec.c
│ │ │ ├── LzmaDec.h
│ │ │ ├── LzmaEnc.c
│ │ │ ├── LzmaEnc.h
│ │ │ ├── LzmaUtil/
│ │ │ │ ├── Lzma86Dec.c
│ │ │ │ ├── Lzma86Dec.h
│ │ │ │ ├── Lzma86Enc.c
│ │ │ │ └── Lzma86Enc.h
│ │ │ ├── MtCoder.c
│ │ │ ├── MtCoder.h
│ │ │ ├── Ppmd.h
│ │ │ ├── Ppmd7.c
│ │ │ ├── Ppmd7.h
│ │ │ ├── Ppmd7Dec.c
│ │ │ ├── Ppmd7Enc.c
│ │ │ ├── Ppmd8.c
│ │ │ ├── Ppmd8.h
│ │ │ ├── Ppmd8Dec.c
│ │ │ ├── Ppmd8Enc.c
│ │ │ ├── RotateDefs.h
│ │ │ ├── Sha256.c
│ │ │ ├── Sha256.h
│ │ │ ├── Sort.c
│ │ │ ├── Sort.h
│ │ │ ├── Threads.c
│ │ │ ├── Threads.h
│ │ │ ├── Types.h
│ │ │ ├── Xz.c
│ │ │ ├── Xz.h
│ │ │ ├── XzCrc64.c
│ │ │ ├── XzCrc64.h
│ │ │ ├── XzDec.c
│ │ │ ├── XzEnc.c
│ │ │ ├── XzEnc.h
│ │ │ └── XzIn.c
│ │ └── zlib/
│ │ ├── CMakeLists.txt
│ │ ├── adler32.c
│ │ ├── compress.c
│ │ ├── crc32.c
│ │ ├── crc32.h
│ │ ├── deflate.c
│ │ ├── deflate.h
│ │ ├── gzguts.h
│ │ ├── infback.c
│ │ ├── inffast.c
│ │ ├── inffast.h
│ │ ├── inffixed.h
│ │ ├── inflate.c
│ │ ├── inflate.h
│ │ ├── inftrees.c
│ │ ├── inftrees.h
│ │ ├── trees.c
│ │ ├── trees.h
│ │ ├── uncompr.c
│ │ ├── zconf.h
│ │ ├── zlib.h
│ │ ├── zutil.c
│ │ └── zutil.h
│ ├── methods/
│ │ ├── Bzip2Method.h
│ │ ├── DeflateMethod.h
│ │ ├── ICompressionMethod.h
│ │ ├── LzmaMethod.h
│ │ ├── StoreMethod.h
│ │ └── ZipMethodResolver.h
│ ├── streams/
│ │ ├── compression_decoder_stream.h
│ │ ├── compression_encoder_stream.h
│ │ ├── crc32stream.h
│ │ ├── memstream.h
│ │ ├── nullstream.h
│ │ ├── serialization.h
│ │ ├── streambuffs/
│ │ │ ├── compression_decoder_streambuf.h
│ │ │ ├── compression_encoder_streambuf.h
│ │ │ ├── crc32_streambuf.h
│ │ │ ├── mem_streambuf.h
│ │ │ ├── null_streambuf.h
│ │ │ ├── sub_streambuf.h
│ │ │ ├── tee_streambuff.h
│ │ │ └── zip_crypto_streambuf.h
│ │ ├── substream.h
│ │ ├── teestream.h
│ │ └── zip_cryptostream.h
│ └── utils/
│ ├── enum_utils.h
│ ├── stream_utils.h
│ └── time_utils.h
├── asio/
│ └── include/
│ ├── asio/
│ │ ├── associated_allocator.hpp
│ │ ├── associated_executor.hpp
│ │ ├── async_result.hpp
│ │ ├── basic_datagram_socket.hpp
│ │ ├── basic_deadline_timer.hpp
│ │ ├── basic_io_object.hpp
│ │ ├── basic_raw_socket.hpp
│ │ ├── basic_seq_packet_socket.hpp
│ │ ├── basic_serial_port.hpp
│ │ ├── basic_signal_set.hpp
│ │ ├── basic_socket.hpp
│ │ ├── basic_socket_acceptor.hpp
│ │ ├── basic_socket_iostream.hpp
│ │ ├── basic_socket_streambuf.hpp
│ │ ├── basic_stream_socket.hpp
│ │ ├── basic_streambuf.hpp
│ │ ├── basic_streambuf_fwd.hpp
│ │ ├── basic_waitable_timer.hpp
│ │ ├── bind_executor.hpp
│ │ ├── buffer.hpp
│ │ ├── buffered_read_stream.hpp
│ │ ├── buffered_read_stream_fwd.hpp
│ │ ├── buffered_stream.hpp
│ │ ├── buffered_stream_fwd.hpp
│ │ ├── buffered_write_stream.hpp
│ │ ├── buffered_write_stream_fwd.hpp
│ │ ├── buffers_iterator.hpp
│ │ ├── completion_condition.hpp
│ │ ├── connect.hpp
│ │ ├── coroutine.hpp
│ │ ├── datagram_socket_service.hpp
│ │ ├── deadline_timer.hpp
│ │ ├── deadline_timer_service.hpp
│ │ ├── defer.hpp
│ │ ├── detail/
│ │ │ ├── array.hpp
│ │ │ ├── array_fwd.hpp
│ │ │ ├── assert.hpp
│ │ │ ├── atomic_count.hpp
│ │ │ ├── base_from_completion_cond.hpp
│ │ │ ├── bind_handler.hpp
│ │ │ ├── buffer_resize_guard.hpp
│ │ │ ├── buffer_sequence_adapter.hpp
│ │ │ ├── buffered_stream_storage.hpp
│ │ │ ├── call_stack.hpp
│ │ │ ├── chrono.hpp
│ │ │ ├── chrono_time_traits.hpp
│ │ │ ├── completion_handler.hpp
│ │ │ ├── concurrency_hint.hpp
│ │ │ ├── conditionally_enabled_event.hpp
│ │ │ ├── conditionally_enabled_mutex.hpp
│ │ │ ├── config.hpp
│ │ │ ├── consuming_buffers.hpp
│ │ │ ├── cstddef.hpp
│ │ │ ├── cstdint.hpp
│ │ │ ├── date_time_fwd.hpp
│ │ │ ├── deadline_timer_service.hpp
│ │ │ ├── dependent_type.hpp
│ │ │ ├── descriptor_ops.hpp
│ │ │ ├── descriptor_read_op.hpp
│ │ │ ├── descriptor_write_op.hpp
│ │ │ ├── dev_poll_reactor.hpp
│ │ │ ├── epoll_reactor.hpp
│ │ │ ├── event.hpp
│ │ │ ├── eventfd_select_interrupter.hpp
│ │ │ ├── executor_op.hpp
│ │ │ ├── fd_set_adapter.hpp
│ │ │ ├── fenced_block.hpp
│ │ │ ├── functional.hpp
│ │ │ ├── gcc_arm_fenced_block.hpp
│ │ │ ├── gcc_hppa_fenced_block.hpp
│ │ │ ├── gcc_sync_fenced_block.hpp
│ │ │ ├── gcc_x86_fenced_block.hpp
│ │ │ ├── global.hpp
│ │ │ ├── handler_alloc_helpers.hpp
│ │ │ ├── handler_cont_helpers.hpp
│ │ │ ├── handler_invoke_helpers.hpp
│ │ │ ├── handler_tracking.hpp
│ │ │ ├── handler_type_requirements.hpp
│ │ │ ├── handler_work.hpp
│ │ │ ├── hash_map.hpp
│ │ │ ├── impl/
│ │ │ │ ├── buffer_sequence_adapter.ipp
│ │ │ │ ├── descriptor_ops.ipp
│ │ │ │ ├── dev_poll_reactor.hpp
│ │ │ │ ├── dev_poll_reactor.ipp
│ │ │ │ ├── epoll_reactor.hpp
│ │ │ │ ├── epoll_reactor.ipp
│ │ │ │ ├── eventfd_select_interrupter.ipp
│ │ │ │ ├── handler_tracking.ipp
│ │ │ │ ├── kqueue_reactor.hpp
│ │ │ │ ├── kqueue_reactor.ipp
│ │ │ │ ├── null_event.ipp
│ │ │ │ ├── pipe_select_interrupter.ipp
│ │ │ │ ├── posix_event.ipp
│ │ │ │ ├── posix_mutex.ipp
│ │ │ │ ├── posix_thread.ipp
│ │ │ │ ├── posix_tss_ptr.ipp
│ │ │ │ ├── reactive_descriptor_service.ipp
│ │ │ │ ├── reactive_serial_port_service.ipp
│ │ │ │ ├── reactive_socket_service_base.ipp
│ │ │ │ ├── resolver_service_base.ipp
│ │ │ │ ├── scheduler.ipp
│ │ │ │ ├── select_reactor.hpp
│ │ │ │ ├── select_reactor.ipp
│ │ │ │ ├── service_registry.hpp
│ │ │ │ ├── service_registry.ipp
│ │ │ │ ├── signal_set_service.ipp
│ │ │ │ ├── socket_ops.ipp
│ │ │ │ ├── socket_select_interrupter.ipp
│ │ │ │ ├── strand_executor_service.hpp
│ │ │ │ ├── strand_executor_service.ipp
│ │ │ │ ├── strand_service.hpp
│ │ │ │ ├── strand_service.ipp
│ │ │ │ ├── throw_error.ipp
│ │ │ │ ├── timer_queue_ptime.ipp
│ │ │ │ ├── timer_queue_set.ipp
│ │ │ │ ├── win_event.ipp
│ │ │ │ ├── win_iocp_handle_service.ipp
│ │ │ │ ├── win_iocp_io_context.hpp
│ │ │ │ ├── win_iocp_io_context.ipp
│ │ │ │ ├── win_iocp_serial_port_service.ipp
│ │ │ │ ├── win_iocp_socket_service_base.ipp
│ │ │ │ ├── win_mutex.ipp
│ │ │ │ ├── win_object_handle_service.ipp
│ │ │ │ ├── win_static_mutex.ipp
│ │ │ │ ├── win_thread.ipp
│ │ │ │ ├── win_tss_ptr.ipp
│ │ │ │ ├── winrt_ssocket_service_base.ipp
│ │ │ │ ├── winrt_timer_scheduler.hpp
│ │ │ │ ├── winrt_timer_scheduler.ipp
│ │ │ │ └── winsock_init.ipp
│ │ │ ├── io_control.hpp
│ │ │ ├── is_buffer_sequence.hpp
│ │ │ ├── is_executor.hpp
│ │ │ ├── keyword_tss_ptr.hpp
│ │ │ ├── kqueue_reactor.hpp
│ │ │ ├── limits.hpp
│ │ │ ├── local_free_on_block_exit.hpp
│ │ │ ├── macos_fenced_block.hpp
│ │ │ ├── memory.hpp
│ │ │ ├── mutex.hpp
│ │ │ ├── noncopyable.hpp
│ │ │ ├── null_event.hpp
│ │ │ ├── null_fenced_block.hpp
│ │ │ ├── null_global.hpp
│ │ │ ├── null_mutex.hpp
│ │ │ ├── null_reactor.hpp
│ │ │ ├── null_signal_blocker.hpp
│ │ │ ├── null_socket_service.hpp
│ │ │ ├── null_static_mutex.hpp
│ │ │ ├── null_thread.hpp
│ │ │ ├── null_tss_ptr.hpp
│ │ │ ├── object_pool.hpp
│ │ │ ├── old_win_sdk_compat.hpp
│ │ │ ├── op_queue.hpp
│ │ │ ├── operation.hpp
│ │ │ ├── pipe_select_interrupter.hpp
│ │ │ ├── pop_options.hpp
│ │ │ ├── posix_event.hpp
│ │ │ ├── posix_fd_set_adapter.hpp
│ │ │ ├── posix_global.hpp
│ │ │ ├── posix_mutex.hpp
│ │ │ ├── posix_signal_blocker.hpp
│ │ │ ├── posix_static_mutex.hpp
│ │ │ ├── posix_thread.hpp
│ │ │ ├── posix_tss_ptr.hpp
│ │ │ ├── push_options.hpp
│ │ │ ├── reactive_descriptor_service.hpp
│ │ │ ├── reactive_null_buffers_op.hpp
│ │ │ ├── reactive_serial_port_service.hpp
│ │ │ ├── reactive_socket_accept_op.hpp
│ │ │ ├── reactive_socket_connect_op.hpp
│ │ │ ├── reactive_socket_recv_op.hpp
│ │ │ ├── reactive_socket_recvfrom_op.hpp
│ │ │ ├── reactive_socket_recvmsg_op.hpp
│ │ │ ├── reactive_socket_send_op.hpp
│ │ │ ├── reactive_socket_sendto_op.hpp
│ │ │ ├── reactive_socket_service.hpp
│ │ │ ├── reactive_socket_service_base.hpp
│ │ │ ├── reactive_wait_op.hpp
│ │ │ ├── reactor.hpp
│ │ │ ├── reactor_fwd.hpp
│ │ │ ├── reactor_op.hpp
│ │ │ ├── reactor_op_queue.hpp
│ │ │ ├── recycling_allocator.hpp
│ │ │ ├── regex_fwd.hpp
│ │ │ ├── resolve_endpoint_op.hpp
│ │ │ ├── resolve_op.hpp
│ │ │ ├── resolve_query_op.hpp
│ │ │ ├── resolver_service.hpp
│ │ │ ├── resolver_service_base.hpp
│ │ │ ├── scheduler.hpp
│ │ │ ├── scheduler_operation.hpp
│ │ │ ├── scheduler_thread_info.hpp
│ │ │ ├── scoped_lock.hpp
│ │ │ ├── scoped_ptr.hpp
│ │ │ ├── select_interrupter.hpp
│ │ │ ├── select_reactor.hpp
│ │ │ ├── service_registry.hpp
│ │ │ ├── signal_blocker.hpp
│ │ │ ├── signal_handler.hpp
│ │ │ ├── signal_init.hpp
│ │ │ ├── signal_op.hpp
│ │ │ ├── signal_set_service.hpp
│ │ │ ├── socket_holder.hpp
│ │ │ ├── socket_ops.hpp
│ │ │ ├── socket_option.hpp
│ │ │ ├── socket_select_interrupter.hpp
│ │ │ ├── socket_types.hpp
│ │ │ ├── solaris_fenced_block.hpp
│ │ │ ├── static_mutex.hpp
│ │ │ ├── std_event.hpp
│ │ │ ├── std_fenced_block.hpp
│ │ │ ├── std_global.hpp
│ │ │ ├── std_mutex.hpp
│ │ │ ├── std_static_mutex.hpp
│ │ │ ├── std_thread.hpp
│ │ │ ├── strand_executor_service.hpp
│ │ │ ├── strand_service.hpp
│ │ │ ├── string_view.hpp
│ │ │ ├── thread.hpp
│ │ │ ├── thread_context.hpp
│ │ │ ├── thread_group.hpp
│ │ │ ├── thread_info_base.hpp
│ │ │ ├── throw_error.hpp
│ │ │ ├── throw_exception.hpp
│ │ │ ├── timer_queue.hpp
│ │ │ ├── timer_queue_base.hpp
│ │ │ ├── timer_queue_ptime.hpp
│ │ │ ├── timer_queue_set.hpp
│ │ │ ├── timer_scheduler.hpp
│ │ │ ├── timer_scheduler_fwd.hpp
│ │ │ ├── tss_ptr.hpp
│ │ │ ├── type_traits.hpp
│ │ │ ├── variadic_templates.hpp
│ │ │ ├── wait_handler.hpp
│ │ │ ├── wait_op.hpp
│ │ │ ├── win_event.hpp
│ │ │ ├── win_fd_set_adapter.hpp
│ │ │ ├── win_fenced_block.hpp
│ │ │ ├── win_global.hpp
│ │ │ ├── win_iocp_handle_read_op.hpp
│ │ │ ├── win_iocp_handle_service.hpp
│ │ │ ├── win_iocp_handle_write_op.hpp
│ │ │ ├── win_iocp_io_context.hpp
│ │ │ ├── win_iocp_null_buffers_op.hpp
│ │ │ ├── win_iocp_operation.hpp
│ │ │ ├── win_iocp_overlapped_op.hpp
│ │ │ ├── win_iocp_overlapped_ptr.hpp
│ │ │ ├── win_iocp_serial_port_service.hpp
│ │ │ ├── win_iocp_socket_accept_op.hpp
│ │ │ ├── win_iocp_socket_connect_op.hpp
│ │ │ ├── win_iocp_socket_recv_op.hpp
│ │ │ ├── win_iocp_socket_recvfrom_op.hpp
│ │ │ ├── win_iocp_socket_recvmsg_op.hpp
│ │ │ ├── win_iocp_socket_send_op.hpp
│ │ │ ├── win_iocp_socket_service.hpp
│ │ │ ├── win_iocp_socket_service_base.hpp
│ │ │ ├── win_iocp_thread_info.hpp
│ │ │ ├── win_iocp_wait_op.hpp
│ │ │ ├── win_mutex.hpp
│ │ │ ├── win_object_handle_service.hpp
│ │ │ ├── win_static_mutex.hpp
│ │ │ ├── win_thread.hpp
│ │ │ ├── win_tss_ptr.hpp
│ │ │ ├── winapp_thread.hpp
│ │ │ ├── wince_thread.hpp
│ │ │ ├── winrt_async_manager.hpp
│ │ │ ├── winrt_async_op.hpp
│ │ │ ├── winrt_resolve_op.hpp
│ │ │ ├── winrt_resolver_service.hpp
│ │ │ ├── winrt_socket_connect_op.hpp
│ │ │ ├── winrt_socket_recv_op.hpp
│ │ │ ├── winrt_socket_send_op.hpp
│ │ │ ├── winrt_ssocket_service.hpp
│ │ │ ├── winrt_ssocket_service_base.hpp
│ │ │ ├── winrt_timer_scheduler.hpp
│ │ │ ├── winrt_utils.hpp
│ │ │ ├── winsock_init.hpp
│ │ │ ├── work_dispatcher.hpp
│ │ │ └── wrapped_handler.hpp
│ │ ├── dispatch.hpp
│ │ ├── error.hpp
│ │ ├── error_code.hpp
│ │ ├── execution_context.hpp
│ │ ├── executor.hpp
│ │ ├── executor_work_guard.hpp
│ │ ├── experimental/
│ │ │ ├── co_spawn.hpp
│ │ │ ├── detached.hpp
│ │ │ ├── impl/
│ │ │ │ ├── co_spawn.hpp
│ │ │ │ ├── detached.hpp
│ │ │ │ └── redirect_error.hpp
│ │ │ └── redirect_error.hpp
│ │ ├── experimental.hpp
│ │ ├── generic/
│ │ │ ├── basic_endpoint.hpp
│ │ │ ├── datagram_protocol.hpp
│ │ │ ├── detail/
│ │ │ │ ├── endpoint.hpp
│ │ │ │ └── impl/
│ │ │ │ └── endpoint.ipp
│ │ │ ├── raw_protocol.hpp
│ │ │ ├── seq_packet_protocol.hpp
│ │ │ └── stream_protocol.hpp
│ │ ├── handler_alloc_hook.hpp
│ │ ├── handler_continuation_hook.hpp
│ │ ├── handler_invoke_hook.hpp
│ │ ├── handler_type.hpp
│ │ ├── high_resolution_timer.hpp
│ │ ├── impl/
│ │ │ ├── buffered_read_stream.hpp
│ │ │ ├── buffered_write_stream.hpp
│ │ │ ├── connect.hpp
│ │ │ ├── defer.hpp
│ │ │ ├── dispatch.hpp
│ │ │ ├── error.ipp
│ │ │ ├── error_code.ipp
│ │ │ ├── execution_context.hpp
│ │ │ ├── execution_context.ipp
│ │ │ ├── executor.hpp
│ │ │ ├── executor.ipp
│ │ │ ├── handler_alloc_hook.ipp
│ │ │ ├── io_context.hpp
│ │ │ ├── io_context.ipp
│ │ │ ├── post.hpp
│ │ │ ├── read.hpp
│ │ │ ├── read_at.hpp
│ │ │ ├── read_until.hpp
│ │ │ ├── serial_port_base.hpp
│ │ │ ├── serial_port_base.ipp
│ │ │ ├── spawn.hpp
│ │ │ ├── src.cpp
│ │ │ ├── src.hpp
│ │ │ ├── system_context.hpp
│ │ │ ├── system_context.ipp
│ │ │ ├── system_executor.hpp
│ │ │ ├── thread_pool.hpp
│ │ │ ├── thread_pool.ipp
│ │ │ ├── use_future.hpp
│ │ │ ├── write.hpp
│ │ │ └── write_at.hpp
│ │ ├── io_context.hpp
│ │ ├── io_context_strand.hpp
│ │ ├── io_service.hpp
│ │ ├── io_service_strand.hpp
│ │ ├── ip/
│ │ │ ├── address.hpp
│ │ │ ├── address_v4.hpp
│ │ │ ├── address_v4_iterator.hpp
│ │ │ ├── address_v4_range.hpp
│ │ │ ├── address_v6.hpp
│ │ │ ├── address_v6_iterator.hpp
│ │ │ ├── address_v6_range.hpp
│ │ │ ├── bad_address_cast.hpp
│ │ │ ├── basic_endpoint.hpp
│ │ │ ├── basic_resolver.hpp
│ │ │ ├── basic_resolver_entry.hpp
│ │ │ ├── basic_resolver_iterator.hpp
│ │ │ ├── basic_resolver_query.hpp
│ │ │ ├── basic_resolver_results.hpp
│ │ │ ├── detail/
│ │ │ │ ├── endpoint.hpp
│ │ │ │ ├── impl/
│ │ │ │ │ └── endpoint.ipp
│ │ │ │ └── socket_option.hpp
│ │ │ ├── host_name.hpp
│ │ │ ├── icmp.hpp
│ │ │ ├── impl/
│ │ │ │ ├── address.hpp
│ │ │ │ ├── address.ipp
│ │ │ │ ├── address_v4.hpp
│ │ │ │ ├── address_v4.ipp
│ │ │ │ ├── address_v6.hpp
│ │ │ │ ├── address_v6.ipp
│ │ │ │ ├── basic_endpoint.hpp
│ │ │ │ ├── host_name.ipp
│ │ │ │ ├── network_v4.hpp
│ │ │ │ ├── network_v4.ipp
│ │ │ │ ├── network_v6.hpp
│ │ │ │ └── network_v6.ipp
│ │ │ ├── multicast.hpp
│ │ │ ├── network_v4.hpp
│ │ │ ├── network_v6.hpp
│ │ │ ├── resolver_base.hpp
│ │ │ ├── resolver_query_base.hpp
│ │ │ ├── resolver_service.hpp
│ │ │ ├── tcp.hpp
│ │ │ ├── udp.hpp
│ │ │ ├── unicast.hpp
│ │ │ └── v6_only.hpp
│ │ ├── is_executor.hpp
│ │ ├── is_read_buffered.hpp
│ │ ├── is_write_buffered.hpp
│ │ ├── local/
│ │ │ ├── basic_endpoint.hpp
│ │ │ ├── connect_pair.hpp
│ │ │ ├── datagram_protocol.hpp
│ │ │ ├── detail/
│ │ │ │ ├── endpoint.hpp
│ │ │ │ └── impl/
│ │ │ │ └── endpoint.ipp
│ │ │ └── stream_protocol.hpp
│ │ ├── packaged_task.hpp
│ │ ├── placeholders.hpp
│ │ ├── posix/
│ │ │ ├── basic_descriptor.hpp
│ │ │ ├── basic_stream_descriptor.hpp
│ │ │ ├── descriptor.hpp
│ │ │ ├── descriptor_base.hpp
│ │ │ ├── stream_descriptor.hpp
│ │ │ └── stream_descriptor_service.hpp
│ │ ├── post.hpp
│ │ ├── raw_socket_service.hpp
│ │ ├── read.hpp
│ │ ├── read_at.hpp
│ │ ├── read_until.hpp
│ │ ├── seq_packet_socket_service.hpp
│ │ ├── serial_port.hpp
│ │ ├── serial_port_base.hpp
│ │ ├── serial_port_service.hpp
│ │ ├── signal_set.hpp
│ │ ├── signal_set_service.hpp
│ │ ├── socket_acceptor_service.hpp
│ │ ├── socket_base.hpp
│ │ ├── spawn.hpp
│ │ ├── ssl/
│ │ │ ├── context.hpp
│ │ │ ├── context_base.hpp
│ │ │ ├── detail/
│ │ │ │ ├── buffered_handshake_op.hpp
│ │ │ │ ├── engine.hpp
│ │ │ │ ├── handshake_op.hpp
│ │ │ │ ├── impl/
│ │ │ │ │ ├── engine.ipp
│ │ │ │ │ └── openssl_init.ipp
│ │ │ │ ├── io.hpp
│ │ │ │ ├── openssl_init.hpp
│ │ │ │ ├── openssl_types.hpp
│ │ │ │ ├── password_callback.hpp
│ │ │ │ ├── read_op.hpp
│ │ │ │ ├── shutdown_op.hpp
│ │ │ │ ├── stream_core.hpp
│ │ │ │ ├── verify_callback.hpp
│ │ │ │ └── write_op.hpp
│ │ │ ├── error.hpp
│ │ │ ├── impl/
│ │ │ │ ├── context.hpp
│ │ │ │ ├── context.ipp
│ │ │ │ ├── error.ipp
│ │ │ │ ├── rfc2818_verification.ipp
│ │ │ │ └── src.hpp
│ │ │ ├── rfc2818_verification.hpp
│ │ │ ├── stream.hpp
│ │ │ ├── stream_base.hpp
│ │ │ ├── verify_context.hpp
│ │ │ └── verify_mode.hpp
│ │ ├── ssl.hpp
│ │ ├── steady_timer.hpp
│ │ ├── strand.hpp
│ │ ├── stream_socket_service.hpp
│ │ ├── streambuf.hpp
│ │ ├── system_context.hpp
│ │ ├── system_error.hpp
│ │ ├── system_executor.hpp
│ │ ├── system_timer.hpp
│ │ ├── thread.hpp
│ │ ├── thread_pool.hpp
│ │ ├── time_traits.hpp
│ │ ├── ts/
│ │ │ ├── buffer.hpp
│ │ │ ├── executor.hpp
│ │ │ ├── internet.hpp
│ │ │ ├── io_context.hpp
│ │ │ ├── net.hpp
│ │ │ ├── netfwd.hpp
│ │ │ ├── socket.hpp
│ │ │ └── timer.hpp
│ │ ├── unyield.hpp
│ │ ├── use_future.hpp
│ │ ├── uses_executor.hpp
│ │ ├── version.hpp
│ │ ├── wait_traits.hpp
│ │ ├── waitable_timer_service.hpp
│ │ ├── windows/
│ │ │ ├── basic_handle.hpp
│ │ │ ├── basic_object_handle.hpp
│ │ │ ├── basic_random_access_handle.hpp
│ │ │ ├── basic_stream_handle.hpp
│ │ │ ├── object_handle.hpp
│ │ │ ├── object_handle_service.hpp
│ │ │ ├── overlapped_handle.hpp
│ │ │ ├── overlapped_ptr.hpp
│ │ │ ├── random_access_handle.hpp
│ │ │ ├── random_access_handle_service.hpp
│ │ │ ├── stream_handle.hpp
│ │ │ └── stream_handle_service.hpp
│ │ ├── write.hpp
│ │ ├── write_at.hpp
│ │ └── yield.hpp
│ └── asio.hpp
├── cryptopp/
│ ├── 3way.cpp
│ ├── 3way.h
│ ├── CMakeLists.txt
│ ├── Doxyfile
│ ├── Filelist.txt
│ ├── GNUmakefile
│ ├── GNUmakefile-cross
│ ├── Install.txt
│ ├── License.txt
│ ├── Readme.txt
│ ├── adhoc.cpp
│ ├── adhoc.cpp.copied
│ ├── adhoc.cpp.proto
│ ├── adler32.cpp
│ ├── adler32.h
│ ├── adv-simd.h
│ ├── aes.h
│ ├── algebra.cpp
│ ├── algebra.h
│ ├── algparam.cpp
│ ├── algparam.h
│ ├── arc4.cpp
│ ├── arc4.h
│ ├── argnames.h
│ ├── aria-simd.cpp
│ ├── aria.cpp
│ ├── aria.h
│ ├── ariatab.cpp
│ ├── asn.cpp
│ ├── asn.h
│ ├── authenc.cpp
│ ├── authenc.h
│ ├── base32.cpp
│ ├── base32.h
│ ├── base64.cpp
│ ├── base64.h
│ ├── basecode.cpp
│ ├── basecode.h
│ ├── bench.h
│ ├── bench1.cpp
│ ├── bench2.cpp
│ ├── bfinit.cpp
│ ├── blake2-simd.cpp
│ ├── blake2.cpp
│ ├── blake2.h
│ ├── blowfish.cpp
│ ├── blowfish.h
│ ├── blumshub.cpp
│ ├── blumshub.h
│ ├── camellia.cpp
│ ├── camellia.h
│ ├── cast.cpp
│ ├── cast.h
│ ├── casts.cpp
│ ├── cbcmac.cpp
│ ├── cbcmac.h
│ ├── ccm.cpp
│ ├── ccm.h
│ ├── chacha.cpp
│ ├── chacha.h
│ ├── channels.cpp
│ ├── channels.h
│ ├── cmac.cpp
│ ├── cmac.h
│ ├── config.h
│ ├── cpu.cpp
│ ├── cpu.h
│ ├── crc-simd.cpp
│ ├── crc.cpp
│ ├── crc.h
│ ├── cryptdll.vcxproj.filters
│ ├── cryptest.nmake
│ ├── cryptest.sh
│ ├── cryptest.sln
│ ├── cryptest.vcxproj.filters
│ ├── cryptlib.cpp
│ ├── cryptlib.h
│ ├── cryptlib.vcxproj.filters
│ ├── cryptopp.rc
│ ├── cryptopp.supp
│ ├── datatest.cpp
│ ├── default.cpp
│ ├── default.h
│ ├── des.cpp
│ ├── des.h
│ ├── dessp.cpp
│ ├── dh.cpp
│ ├── dh.h
│ ├── dh2.cpp
│ ├── dh2.h
│ ├── dll.cpp
│ ├── dll.h
│ ├── dlltest.cpp
│ ├── dlltest.vcxproj.filters
│ ├── dmac.h
│ ├── drbg.h
│ ├── dsa.cpp
│ ├── dsa.h
│ ├── eax.cpp
│ ├── eax.h
│ ├── ec2n.cpp
│ ├── ec2n.h
│ ├── eccrypto.cpp
│ ├── eccrypto.h
│ ├── ecp.cpp
│ ├── ecp.h
│ ├── ecpoint.h
│ ├── elgamal.cpp
│ ├── elgamal.h
│ ├── emsa2.cpp
│ ├── emsa2.h
│ ├── eprecomp.cpp
│ ├── eprecomp.h
│ ├── esign.cpp
│ ├── esign.h
│ ├── factory.h
│ ├── fhmqv.h
│ ├── files.cpp
│ ├── files.h
│ ├── filters.cpp
│ ├── filters.h
│ ├── fips140.cpp
│ ├── fips140.h
│ ├── fipsalgt.cpp
│ ├── fipstest.cpp
│ ├── fltrimpl.h
│ ├── gcm-simd.cpp
│ ├── gcm.cpp
│ ├── gcm.h
│ ├── gf256.cpp
│ ├── gf256.h
│ ├── gf2_32.cpp
│ ├── gf2_32.h
│ ├── gf2n.cpp
│ ├── gf2n.h
│ ├── gfpcrypt.cpp
│ ├── gfpcrypt.h
│ ├── gost.cpp
│ ├── gost.h
│ ├── gzip.cpp
│ ├── gzip.h
│ ├── hashfwd.h
│ ├── hex.cpp
│ ├── hex.h
│ ├── hkdf.h
│ ├── hmac.cpp
│ ├── hmac.h
│ ├── hmqv.h
│ ├── hrtimer.cpp
│ ├── hrtimer.h
│ ├── ida.cpp
│ ├── ida.h
│ ├── idea.cpp
│ ├── idea.h
│ ├── integer.cpp
│ ├── integer.h
│ ├── iterhash.cpp
│ ├── iterhash.h
│ ├── kalyna.cpp
│ ├── kalyna.h
│ ├── kalynatab.cpp
│ ├── keccak.cpp
│ ├── keccak.h
│ ├── lubyrack.h
│ ├── luc.cpp
│ ├── luc.h
│ ├── mars.cpp
│ ├── mars.h
│ ├── marss.cpp
│ ├── md2.cpp
│ ├── md2.h
│ ├── md4.cpp
│ ├── md4.h
│ ├── md5.cpp
│ ├── md5.h
│ ├── mdc.h
│ ├── mersenne.h
│ ├── misc.cpp
│ ├── misc.h
│ ├── modarith.h
│ ├── modes.cpp
│ ├── modes.h
│ ├── modexppc.h
│ ├── mqueue.cpp
│ ├── mqueue.h
│ ├── mqv.cpp
│ ├── mqv.h
│ ├── naclite.h
│ ├── nbtheory.cpp
│ ├── nbtheory.h
│ ├── neon-simd.cpp
│ ├── network.cpp
│ ├── network.h
│ ├── nr.h
│ ├── oaep.cpp
│ ├── oaep.h
│ ├── oids.h
│ ├── osrng.cpp
│ ├── osrng.h
│ ├── ossig.h
│ ├── padlkrng.cpp
│ ├── padlkrng.h
│ ├── panama.cpp
│ ├── panama.h
│ ├── pch.cpp
│ ├── pch.h
│ ├── pkcspad.cpp
│ ├── pkcspad.h
│ ├── poly1305.cpp
│ ├── poly1305.h
│ ├── polynomi.cpp
│ ├── polynomi.h
│ ├── ppc-simd.cpp
│ ├── ppc-simd.h
│ ├── pssr.cpp
│ ├── pssr.h
│ ├── pubkey.cpp
│ ├── pubkey.h
│ ├── pwdbased.h
│ ├── queue.cpp
│ ├── queue.h
│ ├── rabin.cpp
│ ├── rabin.h
│ ├── randpool.cpp
│ ├── randpool.h
│ ├── rc2.cpp
│ ├── rc2.h
│ ├── rc5.cpp
│ ├── rc5.h
│ ├── rc6.cpp
│ ├── rc6.h
│ ├── rdrand-masm.cmd
│ ├── rdrand-nasm.sh
│ ├── rdrand.asm
│ ├── rdrand.cpp
│ ├── rdrand.h
│ ├── rdrand.s
│ ├── rdtables.cpp
│ ├── regtest1.cpp
│ ├── regtest2.cpp
│ ├── regtest3.cpp
│ ├── resource.h
│ ├── rijndael-simd.cpp
│ ├── rijndael.cpp
│ ├── rijndael.h
│ ├── ripemd.cpp
│ ├── ripemd.h
│ ├── rng.cpp
│ ├── rng.h
│ ├── rsa.cpp
│ ├── rsa.h
│ ├── rw.cpp
│ ├── rw.h
│ ├── safer.cpp
│ ├── safer.h
│ ├── salsa.cpp
│ ├── salsa.h
│ ├── seal.cpp
│ ├── seal.h
│ ├── secblock.h
│ ├── seckey.h
│ ├── seed.cpp
│ ├── seed.h
│ ├── serpent.cpp
│ ├── serpent.h
│ ├── serpentp.h
│ ├── sha-simd.cpp
│ ├── sha.cpp
│ ├── sha.h
│ ├── sha3.cpp
│ ├── sha3.h
│ ├── shacal2-simd.cpp
│ ├── shacal2.cpp
│ ├── shacal2.h
│ ├── shark.cpp
│ ├── shark.h
│ ├── sharkbox.cpp
│ ├── simon-simd.cpp
│ ├── simon.cpp
│ ├── simon.h
│ ├── simple.cpp
│ ├── simple.h
│ ├── siphash.h
│ ├── skipjack.cpp
│ ├── skipjack.h
│ ├── sm3.cpp
│ ├── sm3.h
│ ├── sm4.cpp
│ ├── sm4.h
│ ├── smartptr.h
│ ├── socketft.cpp
│ ├── socketft.h
│ ├── sosemanuk.cpp
│ ├── sosemanuk.h
│ ├── speck-simd.cpp
│ ├── speck.cpp
│ ├── speck.h
│ ├── square.cpp
│ ├── square.h
│ ├── squaretb.cpp
│ ├── sse-simd.cpp
│ ├── stdcpp.h
│ ├── strciphr.cpp
│ ├── strciphr.h
│ ├── tea.cpp
│ ├── tea.h
│ ├── test.cpp
│ ├── tftables.cpp
│ ├── threefish.cpp
│ ├── threefish.h
│ ├── tiger.cpp
│ ├── tiger.h
│ ├── tigertab.cpp
│ ├── trap.h
│ ├── trdlocal.cpp
│ ├── trdlocal.h
│ ├── trunhash.h
│ ├── ttmac.cpp
│ ├── ttmac.h
│ ├── tweetnacl.cpp
│ ├── tweetnacl.h
│ ├── twofish.cpp
│ ├── twofish.h
│ ├── validat0.cpp
│ ├── validat1.cpp
│ ├── validat2.cpp
│ ├── validat3.cpp
│ ├── validat4.cpp
│ ├── validate.h
│ ├── vmac.cpp
│ ├── vmac.h
│ ├── wait.cpp
│ ├── wait.h
│ ├── wake.cpp
│ ├── wake.h
│ ├── whrlpool.cpp
│ ├── whrlpool.h
│ ├── winpipes.cpp
│ ├── winpipes.h
│ ├── words.h
│ ├── x64dll.asm
│ ├── x64masm.asm
│ ├── xtr.cpp
│ ├── xtr.h
│ ├── xtrcrypt.cpp
│ ├── xtrcrypt.h
│ ├── zdeflate.cpp
│ ├── zdeflate.h
│ ├── zinflate.cpp
│ ├── zinflate.h
│ ├── zlib.cpp
│ └── zlib.h
├── curl/
│ ├── CHANGES
│ ├── CMake/
│ │ ├── CMakeConfigurableFile.in
│ │ ├── CurlSymbolHiding.cmake
│ │ ├── CurlTests.c
│ │ ├── FindCARES.cmake
│ │ ├── FindGSS.cmake
│ │ ├── FindLibSSH2.cmake
│ │ ├── FindMbedTLS.cmake
│ │ ├── FindNGHTTP2.cmake
│ │ ├── Macros.cmake
│ │ ├── OtherTests.cmake
│ │ ├── Platforms/
│ │ │ └── WindowsCache.cmake
│ │ ├── Utilities.cmake
│ │ ├── cmake_uninstall.cmake.in
│ │ └── curl-config.cmake
│ ├── CMakeLists.txt
│ ├── COPYING
│ ├── MacOSX-Framework
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README
│ ├── RELEASE-NOTES
│ ├── acinclude.m4
│ ├── aclocal.m4
│ ├── buildconf
│ ├── buildconf.bat
│ ├── compile
│ ├── config.guess
│ ├── config.sub
│ ├── configure
│ ├── configure.ac
│ ├── curl-config.in
│ ├── depcomp
│ ├── docs/
│ │ ├── BINDINGS.md
│ │ ├── BUGS
│ │ ├── CHECKSRC.md
│ │ ├── CIPHERS.md
│ │ ├── CMakeLists.txt
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CODE_STYLE.md
│ │ ├── CONTRIBUTE.md
│ │ ├── FAQ
│ │ ├── FEATURES
│ │ ├── HELP-US.md
│ │ ├── HISTORY.md
│ │ ├── HTTP-COOKIES.md
│ │ ├── HTTP2.md
│ │ ├── INSTALL
│ │ ├── INSTALL.cmake
│ │ ├── INSTALL.md
│ │ ├── INTERNALS.md
│ │ ├── KNOWN_BUGS
│ │ ├── LICENSE-MIXING.md
│ │ ├── MAIL-ETIQUETTE
│ │ ├── MANUAL
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── README.cmake
│ │ ├── README.md
│ │ ├── README.netware
│ │ ├── README.win32
│ │ ├── RELEASE-PROCEDURE
│ │ ├── RESOURCES
│ │ ├── ROADMAP.md
│ │ ├── SECURITY-PROCESS.md
│ │ ├── SSL-PROBLEMS.md
│ │ ├── SSLCERTS.md
│ │ ├── THANKS
│ │ ├── TODO
│ │ ├── TheArtOfHttpScripting
│ │ ├── VERSIONS
│ │ ├── cmdline-opts/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── MANPAGE.md
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── gen.pl
│ │ │ ├── page-footer
│ │ │ └── page-header
│ │ ├── curl-config.1
│ │ ├── curl.1
│ │ ├── examples/
│ │ │ ├── 10-at-a-time.c
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.example
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── Makefile.m32
│ │ │ ├── Makefile.netware
│ │ │ ├── README
│ │ │ ├── anyauthput.c
│ │ │ ├── asiohiper.cpp
│ │ │ ├── cacertinmem.c
│ │ │ ├── certinfo.c
│ │ │ ├── chkspeed.c
│ │ │ ├── cookie_interface.c
│ │ │ ├── curlgtk.c
│ │ │ ├── curlx.c
│ │ │ ├── debug.c
│ │ │ ├── evhiperfifo.c
│ │ │ ├── externalsocket.c
│ │ │ ├── fileupload.c
│ │ │ ├── fopen.c
│ │ │ ├── ftp-wildcard.c
│ │ │ ├── ftpget.c
│ │ │ ├── ftpgetinfo.c
│ │ │ ├── ftpgetresp.c
│ │ │ ├── ftpsget.c
│ │ │ ├── ftpupload.c
│ │ │ ├── ftpuploadfrommem.c
│ │ │ ├── ftpuploadresume.c
│ │ │ ├── getinfo.c
│ │ │ ├── getinmemory.c
│ │ │ ├── getredirect.c
│ │ │ ├── ghiper.c
│ │ │ ├── hiperfifo.c
│ │ │ ├── href_extractor.c
│ │ │ ├── htmltidy.c
│ │ │ ├── htmltitle.cpp
│ │ │ ├── http-post.c
│ │ │ ├── http2-download.c
│ │ │ ├── http2-serverpush.c
│ │ │ ├── http2-upload.c
│ │ │ ├── httpcustomheader.c
│ │ │ ├── httpput.c
│ │ │ ├── https.c
│ │ │ ├── imap-append.c
│ │ │ ├── imap-copy.c
│ │ │ ├── imap-create.c
│ │ │ ├── imap-delete.c
│ │ │ ├── imap-examine.c
│ │ │ ├── imap-fetch.c
│ │ │ ├── imap-list.c
│ │ │ ├── imap-lsub.c
│ │ │ ├── imap-multi.c
│ │ │ ├── imap-noop.c
│ │ │ ├── imap-search.c
│ │ │ ├── imap-ssl.c
│ │ │ ├── imap-store.c
│ │ │ ├── imap-tls.c
│ │ │ ├── makefile.dj
│ │ │ ├── multi-app.c
│ │ │ ├── multi-debugcallback.c
│ │ │ ├── multi-double.c
│ │ │ ├── multi-formadd.c
│ │ │ ├── multi-post.c
│ │ │ ├── multi-single.c
│ │ │ ├── multi-uv.c
│ │ │ ├── multithread.c
│ │ │ ├── opensslthreadlock.c
│ │ │ ├── persistant.c
│ │ │ ├── pop3-dele.c
│ │ │ ├── pop3-list.c
│ │ │ ├── pop3-multi.c
│ │ │ ├── pop3-noop.c
│ │ │ ├── pop3-retr.c
│ │ │ ├── pop3-ssl.c
│ │ │ ├── pop3-stat.c
│ │ │ ├── pop3-tls.c
│ │ │ ├── pop3-top.c
│ │ │ ├── pop3-uidl.c
│ │ │ ├── post-callback.c
│ │ │ ├── postinmemory.c
│ │ │ ├── postit2-formadd.c
│ │ │ ├── postit2.c
│ │ │ ├── progressfunc.c
│ │ │ ├── resolve.c
│ │ │ ├── rtsp.c
│ │ │ ├── sampleconv.c
│ │ │ ├── sendrecv.c
│ │ │ ├── sepheaders.c
│ │ │ ├── sessioninfo.c
│ │ │ ├── sftpget.c
│ │ │ ├── sftpuploadresume.c
│ │ │ ├── shared-connection-cache.c
│ │ │ ├── simple.c
│ │ │ ├── simplepost.c
│ │ │ ├── simplessl.c
│ │ │ ├── smooth-gtk-thread.c
│ │ │ ├── smtp-expn.c
│ │ │ ├── smtp-mail.c
│ │ │ ├── smtp-mime.c
│ │ │ ├── smtp-multi.c
│ │ │ ├── smtp-ssl.c
│ │ │ ├── smtp-tls.c
│ │ │ ├── smtp-vrfy.c
│ │ │ ├── sslbackend.c
│ │ │ ├── synctime.c
│ │ │ ├── threaded-shared-conn.c
│ │ │ ├── threaded-ssl.c
│ │ │ ├── url2file.c
│ │ │ ├── usercertinmem.c
│ │ │ ├── version-check.pl
│ │ │ └── xmlstream.c
│ │ ├── libcurl/
│ │ │ ├── ABI
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── curl_easy_cleanup.3
│ │ │ ├── curl_easy_duphandle.3
│ │ │ ├── curl_easy_escape.3
│ │ │ ├── curl_easy_getinfo.3
│ │ │ ├── curl_easy_init.3
│ │ │ ├── curl_easy_pause.3
│ │ │ ├── curl_easy_perform.3
│ │ │ ├── curl_easy_recv.3
│ │ │ ├── curl_easy_reset.3
│ │ │ ├── curl_easy_send.3
│ │ │ ├── curl_easy_setopt.3
│ │ │ ├── curl_easy_strerror.3
│ │ │ ├── curl_easy_unescape.3
│ │ │ ├── curl_escape.3
│ │ │ ├── curl_formadd.3
│ │ │ ├── curl_formfree.3
│ │ │ ├── curl_formget.3
│ │ │ ├── curl_free.3
│ │ │ ├── curl_getdate.3
│ │ │ ├── curl_getenv.3
│ │ │ ├── curl_global_cleanup.3
│ │ │ ├── curl_global_init.3
│ │ │ ├── curl_global_init_mem.3
│ │ │ ├── curl_global_sslset.3
│ │ │ ├── curl_mime_addpart.3
│ │ │ ├── curl_mime_data.3
│ │ │ ├── curl_mime_data_cb.3
│ │ │ ├── curl_mime_encoder.3
│ │ │ ├── curl_mime_filedata.3
│ │ │ ├── curl_mime_filename.3
│ │ │ ├── curl_mime_free.3
│ │ │ ├── curl_mime_headers.3
│ │ │ ├── curl_mime_init.3
│ │ │ ├── curl_mime_name.3
│ │ │ ├── curl_mime_subparts.3
│ │ │ ├── curl_mime_type.3
│ │ │ ├── curl_mprintf.3
│ │ │ ├── curl_multi_add_handle.3
│ │ │ ├── curl_multi_assign.3
│ │ │ ├── curl_multi_cleanup.3
│ │ │ ├── curl_multi_fdset.3
│ │ │ ├── curl_multi_info_read.3
│ │ │ ├── curl_multi_init.3
│ │ │ ├── curl_multi_perform.3
│ │ │ ├── curl_multi_remove_handle.3
│ │ │ ├── curl_multi_setopt.3
│ │ │ ├── curl_multi_socket.3
│ │ │ ├── curl_multi_socket_action.3
│ │ │ ├── curl_multi_socket_all.3
│ │ │ ├── curl_multi_strerror.3
│ │ │ ├── curl_multi_timeout.3
│ │ │ ├── curl_multi_wait.3
│ │ │ ├── curl_share_cleanup.3
│ │ │ ├── curl_share_init.3
│ │ │ ├── curl_share_setopt.3
│ │ │ ├── curl_share_strerror.3
│ │ │ ├── curl_slist_append.3
│ │ │ ├── curl_slist_free_all.3
│ │ │ ├── curl_strequal.3
│ │ │ ├── curl_strnequal.3
│ │ │ ├── curl_unescape.3
│ │ │ ├── curl_version.3
│ │ │ ├── curl_version_info.3
│ │ │ ├── index.html
│ │ │ ├── libcurl-easy.3
│ │ │ ├── libcurl-env.3
│ │ │ ├── libcurl-errors.3
│ │ │ ├── libcurl-multi.3
│ │ │ ├── libcurl-security.3
│ │ │ ├── libcurl-share.3
│ │ │ ├── libcurl-symbols.3
│ │ │ ├── libcurl-thread.3
│ │ │ ├── libcurl-tutorial.3
│ │ │ ├── libcurl.3
│ │ │ ├── libcurl.m4
│ │ │ ├── mksymbolsmanpage.pl
│ │ │ ├── opts/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── CURLINFO_ACTIVESOCKET.3
│ │ │ │ ├── CURLINFO_APPCONNECT_TIME.3
│ │ │ │ ├── CURLINFO_CERTINFO.3
│ │ │ │ ├── CURLINFO_CONDITION_UNMET.3
│ │ │ │ ├── CURLINFO_CONNECT_TIME.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_UPLOAD.3
│ │ │ │ ├── CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
│ │ │ │ ├── CURLINFO_CONTENT_TYPE.3
│ │ │ │ ├── CURLINFO_COOKIELIST.3
│ │ │ │ ├── CURLINFO_EFFECTIVE_URL.3
│ │ │ │ ├── CURLINFO_FILETIME.3
│ │ │ │ ├── CURLINFO_FILETIME_T.3
│ │ │ │ ├── CURLINFO_FTP_ENTRY_PATH.3
│ │ │ │ ├── CURLINFO_HEADER_SIZE.3
│ │ │ │ ├── CURLINFO_HTTPAUTH_AVAIL.3
│ │ │ │ ├── CURLINFO_HTTP_CONNECTCODE.3
│ │ │ │ ├── CURLINFO_HTTP_VERSION.3
│ │ │ │ ├── CURLINFO_LASTSOCKET.3
│ │ │ │ ├── CURLINFO_LOCAL_IP.3
│ │ │ │ ├── CURLINFO_LOCAL_PORT.3
│ │ │ │ ├── CURLINFO_NAMELOOKUP_TIME.3
│ │ │ │ ├── CURLINFO_NUM_CONNECTS.3
│ │ │ │ ├── CURLINFO_OS_ERRNO.3
│ │ │ │ ├── CURLINFO_PRETRANSFER_TIME.3
│ │ │ │ ├── CURLINFO_PRIMARY_IP.3
│ │ │ │ ├── CURLINFO_PRIMARY_PORT.3
│ │ │ │ ├── CURLINFO_PRIVATE.3
│ │ │ │ ├── CURLINFO_PROTOCOL.3
│ │ │ │ ├── CURLINFO_PROXYAUTH_AVAIL.3
│ │ │ │ ├── CURLINFO_PROXY_SSL_VERIFYRESULT.3
│ │ │ │ ├── CURLINFO_REDIRECT_COUNT.3
│ │ │ │ ├── CURLINFO_REDIRECT_TIME.3
│ │ │ │ ├── CURLINFO_REDIRECT_URL.3
│ │ │ │ ├── CURLINFO_REQUEST_SIZE.3
│ │ │ │ ├── CURLINFO_RESPONSE_CODE.3
│ │ │ │ ├── CURLINFO_RTSP_CLIENT_CSEQ.3
│ │ │ │ ├── CURLINFO_RTSP_CSEQ_RECV.3
│ │ │ │ ├── CURLINFO_RTSP_SERVER_CSEQ.3
│ │ │ │ ├── CURLINFO_RTSP_SESSION_ID.3
│ │ │ │ ├── CURLINFO_SCHEME.3
│ │ │ │ ├── CURLINFO_SIZE_DOWNLOAD.3
│ │ │ │ ├── CURLINFO_SIZE_DOWNLOAD_T.3
│ │ │ │ ├── CURLINFO_SIZE_UPLOAD.3
│ │ │ │ ├── CURLINFO_SIZE_UPLOAD_T.3
│ │ │ │ ├── CURLINFO_SPEED_DOWNLOAD.3
│ │ │ │ ├── CURLINFO_SPEED_DOWNLOAD_T.3
│ │ │ │ ├── CURLINFO_SPEED_UPLOAD.3
│ │ │ │ ├── CURLINFO_SPEED_UPLOAD_T.3
│ │ │ │ ├── CURLINFO_SSL_ENGINES.3
│ │ │ │ ├── CURLINFO_SSL_VERIFYRESULT.3
│ │ │ │ ├── CURLINFO_STARTTRANSFER_TIME.3
│ │ │ │ ├── CURLINFO_TLS_SESSION.3
│ │ │ │ ├── CURLINFO_TLS_SSL_PTR.3
│ │ │ │ ├── CURLINFO_TOTAL_TIME.3
│ │ │ │ ├── CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
│ │ │ │ ├── CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
│ │ │ │ ├── CURLMOPT_MAXCONNECTS.3
│ │ │ │ ├── CURLMOPT_MAX_HOST_CONNECTIONS.3
│ │ │ │ ├── CURLMOPT_MAX_PIPELINE_LENGTH.3
│ │ │ │ ├── CURLMOPT_MAX_TOTAL_CONNECTIONS.3
│ │ │ │ ├── CURLMOPT_PIPELINING.3
│ │ │ │ ├── CURLMOPT_PIPELINING_SERVER_BL.3
│ │ │ │ ├── CURLMOPT_PIPELINING_SITE_BL.3
│ │ │ │ ├── CURLMOPT_PUSHDATA.3
│ │ │ │ ├── CURLMOPT_PUSHFUNCTION.3
│ │ │ │ ├── CURLMOPT_SOCKETDATA.3
│ │ │ │ ├── CURLMOPT_SOCKETFUNCTION.3
│ │ │ │ ├── CURLMOPT_TIMERDATA.3
│ │ │ │ ├── CURLMOPT_TIMERFUNCTION.3
│ │ │ │ ├── CURLOPT_ABSTRACT_UNIX_SOCKET.3
│ │ │ │ ├── CURLOPT_ACCEPTTIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_ACCEPT_ENCODING.3
│ │ │ │ ├── CURLOPT_ADDRESS_SCOPE.3
│ │ │ │ ├── CURLOPT_APPEND.3
│ │ │ │ ├── CURLOPT_AUTOREFERER.3
│ │ │ │ ├── CURLOPT_BUFFERSIZE.3
│ │ │ │ ├── CURLOPT_CAINFO.3
│ │ │ │ ├── CURLOPT_CAPATH.3
│ │ │ │ ├── CURLOPT_CERTINFO.3
│ │ │ │ ├── CURLOPT_CHUNK_BGN_FUNCTION.3
│ │ │ │ ├── CURLOPT_CHUNK_DATA.3
│ │ │ │ ├── CURLOPT_CHUNK_END_FUNCTION.3
│ │ │ │ ├── CURLOPT_CLOSESOCKETDATA.3
│ │ │ │ ├── CURLOPT_CLOSESOCKETFUNCTION.3
│ │ │ │ ├── CURLOPT_CONNECTTIMEOUT.3
│ │ │ │ ├── CURLOPT_CONNECTTIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_CONNECT_ONLY.3
│ │ │ │ ├── CURLOPT_CONNECT_TO.3
│ │ │ │ ├── CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
│ │ │ │ ├── CURLOPT_CONV_FROM_UTF8_FUNCTION.3
│ │ │ │ ├── CURLOPT_CONV_TO_NETWORK_FUNCTION.3
│ │ │ │ ├── CURLOPT_COOKIE.3
│ │ │ │ ├── CURLOPT_COOKIEFILE.3
│ │ │ │ ├── CURLOPT_COOKIEJAR.3
│ │ │ │ ├── CURLOPT_COOKIELIST.3
│ │ │ │ ├── CURLOPT_COOKIESESSION.3
│ │ │ │ ├── CURLOPT_COPYPOSTFIELDS.3
│ │ │ │ ├── CURLOPT_CRLF.3
│ │ │ │ ├── CURLOPT_CRLFILE.3
│ │ │ │ ├── CURLOPT_CUSTOMREQUEST.3
│ │ │ │ ├── CURLOPT_DEBUGDATA.3
│ │ │ │ ├── CURLOPT_DEBUGFUNCTION.3
│ │ │ │ ├── CURLOPT_DEFAULT_PROTOCOL.3
│ │ │ │ ├── CURLOPT_DIRLISTONLY.3
│ │ │ │ ├── CURLOPT_DNS_CACHE_TIMEOUT.3
│ │ │ │ ├── CURLOPT_DNS_INTERFACE.3
│ │ │ │ ├── CURLOPT_DNS_LOCAL_IP4.3
│ │ │ │ ├── CURLOPT_DNS_LOCAL_IP6.3
│ │ │ │ ├── CURLOPT_DNS_SERVERS.3
│ │ │ │ ├── CURLOPT_DNS_USE_GLOBAL_CACHE.3
│ │ │ │ ├── CURLOPT_EGDSOCKET.3
│ │ │ │ ├── CURLOPT_ERRORBUFFER.3
│ │ │ │ ├── CURLOPT_EXPECT_100_TIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_FAILONERROR.3
│ │ │ │ ├── CURLOPT_FILETIME.3
│ │ │ │ ├── CURLOPT_FNMATCH_DATA.3
│ │ │ │ ├── CURLOPT_FNMATCH_FUNCTION.3
│ │ │ │ ├── CURLOPT_FOLLOWLOCATION.3
│ │ │ │ ├── CURLOPT_FORBID_REUSE.3
│ │ │ │ ├── CURLOPT_FRESH_CONNECT.3
│ │ │ │ ├── CURLOPT_FTPPORT.3
│ │ │ │ ├── CURLOPT_FTPSSLAUTH.3
│ │ │ │ ├── CURLOPT_FTP_ACCOUNT.3
│ │ │ │ ├── CURLOPT_FTP_ALTERNATIVE_TO_USER.3
│ │ │ │ ├── CURLOPT_FTP_CREATE_MISSING_DIRS.3
│ │ │ │ ├── CURLOPT_FTP_FILEMETHOD.3
│ │ │ │ ├── CURLOPT_FTP_RESPONSE_TIMEOUT.3
│ │ │ │ ├── CURLOPT_FTP_SKIP_PASV_IP.3
│ │ │ │ ├── CURLOPT_FTP_SSL_CCC.3
│ │ │ │ ├── CURLOPT_FTP_USE_EPRT.3
│ │ │ │ ├── CURLOPT_FTP_USE_EPSV.3
│ │ │ │ ├── CURLOPT_FTP_USE_PRET.3
│ │ │ │ ├── CURLOPT_GSSAPI_DELEGATION.3
│ │ │ │ ├── CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_HEADER.3
│ │ │ │ ├── CURLOPT_HEADERDATA.3
│ │ │ │ ├── CURLOPT_HEADERFUNCTION.3
│ │ │ │ ├── CURLOPT_HEADEROPT.3
│ │ │ │ ├── CURLOPT_HTTP200ALIASES.3
│ │ │ │ ├── CURLOPT_HTTPAUTH.3
│ │ │ │ ├── CURLOPT_HTTPGET.3
│ │ │ │ ├── CURLOPT_HTTPHEADER.3
│ │ │ │ ├── CURLOPT_HTTPPOST.3
│ │ │ │ ├── CURLOPT_HTTPPROXYTUNNEL.3
│ │ │ │ ├── CURLOPT_HTTP_CONTENT_DECODING.3
│ │ │ │ ├── CURLOPT_HTTP_TRANSFER_DECODING.3
│ │ │ │ ├── CURLOPT_HTTP_VERSION.3
│ │ │ │ ├── CURLOPT_IGNORE_CONTENT_LENGTH.3
│ │ │ │ ├── CURLOPT_INFILESIZE.3
│ │ │ │ ├── CURLOPT_INFILESIZE_LARGE.3
│ │ │ │ ├── CURLOPT_INTERFACE.3
│ │ │ │ ├── CURLOPT_INTERLEAVEDATA.3
│ │ │ │ ├── CURLOPT_INTERLEAVEFUNCTION.3
│ │ │ │ ├── CURLOPT_IOCTLDATA.3
│ │ │ │ ├── CURLOPT_IOCTLFUNCTION.3
│ │ │ │ ├── CURLOPT_IPRESOLVE.3
│ │ │ │ ├── CURLOPT_ISSUERCERT.3
│ │ │ │ ├── CURLOPT_KEEP_SENDING_ON_ERROR.3
│ │ │ │ ├── CURLOPT_KEYPASSWD.3
│ │ │ │ ├── CURLOPT_KRBLEVEL.3
│ │ │ │ ├── CURLOPT_LOCALPORT.3
│ │ │ │ ├── CURLOPT_LOCALPORTRANGE.3
│ │ │ │ ├── CURLOPT_LOGIN_OPTIONS.3
│ │ │ │ ├── CURLOPT_LOW_SPEED_LIMIT.3
│ │ │ │ ├── CURLOPT_LOW_SPEED_TIME.3
│ │ │ │ ├── CURLOPT_MAIL_AUTH.3
│ │ │ │ ├── CURLOPT_MAIL_FROM.3
│ │ │ │ ├── CURLOPT_MAIL_RCPT.3
│ │ │ │ ├── CURLOPT_MAXCONNECTS.3
│ │ │ │ ├── CURLOPT_MAXFILESIZE.3
│ │ │ │ ├── CURLOPT_MAXFILESIZE_LARGE.3
│ │ │ │ ├── CURLOPT_MAXREDIRS.3
│ │ │ │ ├── CURLOPT_MAX_RECV_SPEED_LARGE.3
│ │ │ │ ├── CURLOPT_MAX_SEND_SPEED_LARGE.3
│ │ │ │ ├── CURLOPT_MIMEPOST.3
│ │ │ │ ├── CURLOPT_NETRC.3
│ │ │ │ ├── CURLOPT_NETRC_FILE.3
│ │ │ │ ├── CURLOPT_NEW_DIRECTORY_PERMS.3
│ │ │ │ ├── CURLOPT_NEW_FILE_PERMS.3
│ │ │ │ ├── CURLOPT_NOBODY.3
│ │ │ │ ├── CURLOPT_NOPROGRESS.3
│ │ │ │ ├── CURLOPT_NOPROXY.3
│ │ │ │ ├── CURLOPT_NOSIGNAL.3
│ │ │ │ ├── CURLOPT_OPENSOCKETDATA.3
│ │ │ │ ├── CURLOPT_OPENSOCKETFUNCTION.3
│ │ │ │ ├── CURLOPT_PASSWORD.3
│ │ │ │ ├── CURLOPT_PATH_AS_IS.3
│ │ │ │ ├── CURLOPT_PINNEDPUBLICKEY.3
│ │ │ │ ├── CURLOPT_PIPEWAIT.3
│ │ │ │ ├── CURLOPT_PORT.3
│ │ │ │ ├── CURLOPT_POST.3
│ │ │ │ ├── CURLOPT_POSTFIELDS.3
│ │ │ │ ├── CURLOPT_POSTFIELDSIZE.3
│ │ │ │ ├── CURLOPT_POSTFIELDSIZE_LARGE.3
│ │ │ │ ├── CURLOPT_POSTQUOTE.3
│ │ │ │ ├── CURLOPT_POSTREDIR.3
│ │ │ │ ├── CURLOPT_PREQUOTE.3
│ │ │ │ ├── CURLOPT_PRE_PROXY.3
│ │ │ │ ├── CURLOPT_PRIVATE.3
│ │ │ │ ├── CURLOPT_PROGRESSDATA.3
│ │ │ │ ├── CURLOPT_PROGRESSFUNCTION.3
│ │ │ │ ├── CURLOPT_PROTOCOLS.3
│ │ │ │ ├── CURLOPT_PROXY.3
│ │ │ │ ├── CURLOPT_PROXYAUTH.3
│ │ │ │ ├── CURLOPT_PROXYHEADER.3
│ │ │ │ ├── CURLOPT_PROXYPASSWORD.3
│ │ │ │ ├── CURLOPT_PROXYPORT.3
│ │ │ │ ├── CURLOPT_PROXYTYPE.3
│ │ │ │ ├── CURLOPT_PROXYUSERNAME.3
│ │ │ │ ├── CURLOPT_PROXYUSERPWD.3
│ │ │ │ ├── CURLOPT_PROXY_CAINFO.3
│ │ │ │ ├── CURLOPT_PROXY_CAPATH.3
│ │ │ │ ├── CURLOPT_PROXY_CRLFILE.3
│ │ │ │ ├── CURLOPT_PROXY_KEYPASSWD.3
│ │ │ │ ├── CURLOPT_PROXY_PINNEDPUBLICKEY.3
│ │ │ │ ├── CURLOPT_PROXY_SERVICE_NAME.3
│ │ │ │ ├── CURLOPT_PROXY_SSLCERT.3
│ │ │ │ ├── CURLOPT_PROXY_SSLCERTTYPE.3
│ │ │ │ ├── CURLOPT_PROXY_SSLKEY.3
│ │ │ │ ├── CURLOPT_PROXY_SSLKEYTYPE.3
│ │ │ │ ├── CURLOPT_PROXY_SSLVERSION.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_CIPHER_LIST.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_OPTIONS.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_VERIFYHOST.3
│ │ │ │ ├── CURLOPT_PROXY_SSL_VERIFYPEER.3
│ │ │ │ ├── CURLOPT_PROXY_TLSAUTH_PASSWORD.3
│ │ │ │ ├── CURLOPT_PROXY_TLSAUTH_TYPE.3
│ │ │ │ ├── CURLOPT_PROXY_TLSAUTH_USERNAME.3
│ │ │ │ ├── CURLOPT_PROXY_TRANSFER_MODE.3
│ │ │ │ ├── CURLOPT_PUT.3
│ │ │ │ ├── CURLOPT_QUOTE.3
│ │ │ │ ├── CURLOPT_RANDOM_FILE.3
│ │ │ │ ├── CURLOPT_RANGE.3
│ │ │ │ ├── CURLOPT_READDATA.3
│ │ │ │ ├── CURLOPT_READFUNCTION.3
│ │ │ │ ├── CURLOPT_REDIR_PROTOCOLS.3
│ │ │ │ ├── CURLOPT_REFERER.3
│ │ │ │ ├── CURLOPT_REQUEST_TARGET.3
│ │ │ │ ├── CURLOPT_RESOLVE.3
│ │ │ │ ├── CURLOPT_RESOLVER_START_DATA.3
│ │ │ │ ├── CURLOPT_RESOLVER_START_FUNCTION.3
│ │ │ │ ├── CURLOPT_RESUME_FROM.3
│ │ │ │ ├── CURLOPT_RESUME_FROM_LARGE.3
│ │ │ │ ├── CURLOPT_RTSP_CLIENT_CSEQ.3
│ │ │ │ ├── CURLOPT_RTSP_REQUEST.3
│ │ │ │ ├── CURLOPT_RTSP_SERVER_CSEQ.3
│ │ │ │ ├── CURLOPT_RTSP_SESSION_ID.3
│ │ │ │ ├── CURLOPT_RTSP_STREAM_URI.3
│ │ │ │ ├── CURLOPT_RTSP_TRANSPORT.3
│ │ │ │ ├── CURLOPT_SASL_IR.3
│ │ │ │ ├── CURLOPT_SEEKDATA.3
│ │ │ │ ├── CURLOPT_SEEKFUNCTION.3
│ │ │ │ ├── CURLOPT_SERVICE_NAME.3
│ │ │ │ ├── CURLOPT_SHARE.3
│ │ │ │ ├── CURLOPT_SOCKOPTDATA.3
│ │ │ │ ├── CURLOPT_SOCKOPTFUNCTION.3
│ │ │ │ ├── CURLOPT_SOCKS5_AUTH.3
│ │ │ │ ├── CURLOPT_SOCKS5_GSSAPI_NEC.3
│ │ │ │ ├── CURLOPT_SOCKS5_GSSAPI_SERVICE.3
│ │ │ │ ├── CURLOPT_SSH_AUTH_TYPES.3
│ │ │ │ ├── CURLOPT_SSH_COMPRESSION.3
│ │ │ │ ├── CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
│ │ │ │ ├── CURLOPT_SSH_KEYDATA.3
│ │ │ │ ├── CURLOPT_SSH_KEYFUNCTION.3
│ │ │ │ ├── CURLOPT_SSH_KNOWNHOSTS.3
│ │ │ │ ├── CURLOPT_SSH_PRIVATE_KEYFILE.3
│ │ │ │ ├── CURLOPT_SSH_PUBLIC_KEYFILE.3
│ │ │ │ ├── CURLOPT_SSLCERT.3
│ │ │ │ ├── CURLOPT_SSLCERTTYPE.3
│ │ │ │ ├── CURLOPT_SSLENGINE.3
│ │ │ │ ├── CURLOPT_SSLENGINE_DEFAULT.3
│ │ │ │ ├── CURLOPT_SSLKEY.3
│ │ │ │ ├── CURLOPT_SSLKEYTYPE.3
│ │ │ │ ├── CURLOPT_SSLVERSION.3
│ │ │ │ ├── CURLOPT_SSL_CIPHER_LIST.3
│ │ │ │ ├── CURLOPT_SSL_CTX_DATA.3
│ │ │ │ ├── CURLOPT_SSL_CTX_FUNCTION.3
│ │ │ │ ├── CURLOPT_SSL_ENABLE_ALPN.3
│ │ │ │ ├── CURLOPT_SSL_ENABLE_NPN.3
│ │ │ │ ├── CURLOPT_SSL_FALSESTART.3
│ │ │ │ ├── CURLOPT_SSL_OPTIONS.3
│ │ │ │ ├── CURLOPT_SSL_SESSIONID_CACHE.3
│ │ │ │ ├── CURLOPT_SSL_VERIFYHOST.3
│ │ │ │ ├── CURLOPT_SSL_VERIFYPEER.3
│ │ │ │ ├── CURLOPT_SSL_VERIFYSTATUS.3
│ │ │ │ ├── CURLOPT_STDERR.3
│ │ │ │ ├── CURLOPT_STREAM_DEPENDS.3
│ │ │ │ ├── CURLOPT_STREAM_DEPENDS_E.3
│ │ │ │ ├── CURLOPT_STREAM_WEIGHT.3
│ │ │ │ ├── CURLOPT_SUPPRESS_CONNECT_HEADERS.3
│ │ │ │ ├── CURLOPT_TCP_FASTOPEN.3
│ │ │ │ ├── CURLOPT_TCP_KEEPALIVE.3
│ │ │ │ ├── CURLOPT_TCP_KEEPIDLE.3
│ │ │ │ ├── CURLOPT_TCP_KEEPINTVL.3
│ │ │ │ ├── CURLOPT_TCP_NODELAY.3
│ │ │ │ ├── CURLOPT_TELNETOPTIONS.3
│ │ │ │ ├── CURLOPT_TFTP_BLKSIZE.3
│ │ │ │ ├── CURLOPT_TFTP_NO_OPTIONS.3
│ │ │ │ ├── CURLOPT_TIMECONDITION.3
│ │ │ │ ├── CURLOPT_TIMEOUT.3
│ │ │ │ ├── CURLOPT_TIMEOUT_MS.3
│ │ │ │ ├── CURLOPT_TIMEVALUE.3
│ │ │ │ ├── CURLOPT_TIMEVALUE_LARGE.3
│ │ │ │ ├── CURLOPT_TLSAUTH_PASSWORD.3
│ │ │ │ ├── CURLOPT_TLSAUTH_TYPE.3
│ │ │ │ ├── CURLOPT_TLSAUTH_USERNAME.3
│ │ │ │ ├── CURLOPT_TRANSFERTEXT.3
│ │ │ │ ├── CURLOPT_TRANSFER_ENCODING.3
│ │ │ │ ├── CURLOPT_UNIX_SOCKET_PATH.3
│ │ │ │ ├── CURLOPT_UNRESTRICTED_AUTH.3
│ │ │ │ ├── CURLOPT_UPLOAD.3
│ │ │ │ ├── CURLOPT_URL.3
│ │ │ │ ├── CURLOPT_USERAGENT.3
│ │ │ │ ├── CURLOPT_USERNAME.3
│ │ │ │ ├── CURLOPT_USERPWD.3
│ │ │ │ ├── CURLOPT_USE_SSL.3
│ │ │ │ ├── CURLOPT_VERBOSE.3
│ │ │ │ ├── CURLOPT_WILDCARDMATCH.3
│ │ │ │ ├── CURLOPT_WRITEDATA.3
│ │ │ │ ├── CURLOPT_WRITEFUNCTION.3
│ │ │ │ ├── CURLOPT_XFERINFODATA.3
│ │ │ │ ├── CURLOPT_XFERINFOFUNCTION.3
│ │ │ │ ├── CURLOPT_XOAUTH2_BEARER.3
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ └── Makefile.inc
│ │ │ ├── symbols-in-versions
│ │ │ └── symbols.pl
│ │ └── mk-ca-bundle.1
│ ├── include/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── README
│ │ └── curl/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── curl.h
│ │ ├── curlver.h
│ │ ├── easy.h
│ │ ├── mprintf.h
│ │ ├── multi.h
│ │ ├── stdcheaders.h
│ │ ├── system.h
│ │ └── typecheck-gcc.h
│ ├── install-sh
│ ├── lib/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile.Watcom
│ │ ├── Makefile.am
│ │ ├── Makefile.b32
│ │ ├── Makefile.in
│ │ ├── Makefile.inc
│ │ ├── Makefile.m32
│ │ ├── Makefile.netware
│ │ ├── Makefile.vxworks
│ │ ├── amigaos.c
│ │ ├── amigaos.h
│ │ ├── arpa_telnet.h
│ │ ├── asyn-ares.c
│ │ ├── asyn-thread.c
│ │ ├── asyn.h
│ │ ├── base64.c
│ │ ├── checksrc.pl
│ │ ├── config-amigaos.h
│ │ ├── config-dos.h
│ │ ├── config-mac.h
│ │ ├── config-os400.h
│ │ ├── config-riscos.h
│ │ ├── config-symbian.h
│ │ ├── config-tpf.h
│ │ ├── config-vxworks.h
│ │ ├── config-win32.h
│ │ ├── config-win32ce.h
│ │ ├── conncache.c
│ │ ├── conncache.h
│ │ ├── connect.c
│ │ ├── connect.h
│ │ ├── content_encoding.c
│ │ ├── content_encoding.h
│ │ ├── cookie.c
│ │ ├── cookie.h
│ │ ├── curl_addrinfo.c
│ │ ├── curl_addrinfo.h
│ │ ├── curl_base64.h
│ │ ├── curl_config.h.cmake
│ │ ├── curl_config.h.in
│ │ ├── curl_ctype.c
│ │ ├── curl_ctype.h
│ │ ├── curl_des.c
│ │ ├── curl_des.h
│ │ ├── curl_endian.c
│ │ ├── curl_endian.h
│ │ ├── curl_fnmatch.c
│ │ ├── curl_fnmatch.h
│ │ ├── curl_gethostname.c
│ │ ├── curl_gethostname.h
│ │ ├── curl_gssapi.c
│ │ ├── curl_gssapi.h
│ │ ├── curl_hmac.h
│ │ ├── curl_ldap.h
│ │ ├── curl_md4.h
│ │ ├── curl_md5.h
│ │ ├── curl_memory.h
│ │ ├── curl_memrchr.c
│ │ ├── curl_memrchr.h
│ │ ├── curl_multibyte.c
│ │ ├── curl_multibyte.h
│ │ ├── curl_ntlm_core.c
│ │ ├── curl_ntlm_core.h
│ │ ├── curl_ntlm_wb.c
│ │ ├── curl_ntlm_wb.h
│ │ ├── curl_path.c
│ │ ├── curl_path.h
│ │ ├── curl_printf.h
│ │ ├── curl_range.c
│ │ ├── curl_range.h
│ │ ├── curl_rtmp.c
│ │ ├── curl_rtmp.h
│ │ ├── curl_sasl.c
│ │ ├── curl_sasl.h
│ │ ├── curl_sec.h
│ │ ├── curl_setup.h
│ │ ├── curl_setup_once.h
│ │ ├── curl_sha256.h
│ │ ├── curl_sspi.c
│ │ ├── curl_sspi.h
│ │ ├── curl_threads.c
│ │ ├── curl_threads.h
│ │ ├── curlx.h
│ │ ├── dict.c
│ │ ├── dict.h
│ │ ├── dotdot.c
│ │ ├── dotdot.h
│ │ ├── easy.c
│ │ ├── easyif.h
│ │ ├── escape.c
│ │ ├── escape.h
│ │ ├── file.c
│ │ ├── file.h
│ │ ├── fileinfo.c
│ │ ├── fileinfo.h
│ │ ├── firefox-db2pem.sh
│ │ ├── formdata.c
│ │ ├── formdata.h
│ │ ├── ftp.c
│ │ ├── ftp.h
│ │ ├── ftplistparser.c
│ │ ├── ftplistparser.h
│ │ ├── getenv.c
│ │ ├── getinfo.c
│ │ ├── getinfo.h
│ │ ├── gopher.c
│ │ ├── gopher.h
│ │ ├── hash.c
│ │ ├── hash.h
│ │ ├── hmac.c
│ │ ├── hostasyn.c
│ │ ├── hostcheck.c
│ │ ├── hostcheck.h
│ │ ├── hostip.c
│ │ ├── hostip.h
│ │ ├── hostip4.c
│ │ ├── hostip6.c
│ │ ├── hostsyn.c
│ │ ├── http.c
│ │ ├── http.h
│ │ ├── http2.c
│ │ ├── http2.h
│ │ ├── http_chunks.c
│ │ ├── http_chunks.h
│ │ ├── http_digest.c
│ │ ├── http_digest.h
│ │ ├── http_negotiate.c
│ │ ├── http_negotiate.h
│ │ ├── http_ntlm.c
│ │ ├── http_ntlm.h
│ │ ├── http_proxy.c
│ │ ├── http_proxy.h
│ │ ├── idn_win32.c
│ │ ├── if2ip.c
│ │ ├── if2ip.h
│ │ ├── imap.c
│ │ ├── imap.h
│ │ ├── inet_ntop.c
│ │ ├── inet_ntop.h
│ │ ├── inet_pton.c
│ │ ├── inet_pton.h
│ │ ├── krb5.c
│ │ ├── ldap.c
│ │ ├── libcurl.plist
│ │ ├── libcurl.rc
│ │ ├── libcurl.vers.in
│ │ ├── llist.c
│ │ ├── llist.h
│ │ ├── makefile.amiga
│ │ ├── makefile.dj
│ │ ├── md4.c
│ │ ├── md5.c
│ │ ├── memdebug.c
│ │ ├── memdebug.h
│ │ ├── mime.c
│ │ ├── mime.h
│ │ ├── mk-ca-bundle.pl
│ │ ├── mk-ca-bundle.vbs
│ │ ├── mprintf.c
│ │ ├── multi.c
│ │ ├── multihandle.h
│ │ ├── multiif.h
│ │ ├── netrc.c
│ │ ├── netrc.h
│ │ ├── non-ascii.c
│ │ ├── non-ascii.h
│ │ ├── nonblock.c
│ │ ├── nonblock.h
│ │ ├── nwlib.c
│ │ ├── nwos.c
│ │ ├── objnames-test08.sh
│ │ ├── objnames-test10.sh
│ │ ├── objnames.inc
│ │ ├── openldap.c
│ │ ├── parsedate.c
│ │ ├── parsedate.h
│ │ ├── pingpong.c
│ │ ├── pingpong.h
│ │ ├── pipeline.c
│ │ ├── pipeline.h
│ │ ├── pop3.c
│ │ ├── pop3.h
│ │ ├── progress.c
│ │ ├── progress.h
│ │ ├── rand.c
│ │ ├── rand.h
│ │ ├── rtsp.c
│ │ ├── rtsp.h
│ │ ├── security.c
│ │ ├── select.c
│ │ ├── select.h
│ │ ├── sendf.c
│ │ ├── sendf.h
│ │ ├── setopt.c
│ │ ├── setopt.h
│ │ ├── setup-os400.h
│ │ ├── setup-vms.h
│ │ ├── sha256.c
│ │ ├── share.c
│ │ ├── share.h
│ │ ├── sigpipe.h
│ │ ├── slist.c
│ │ ├── slist.h
│ │ ├── smb.c
│ │ ├── smb.h
│ │ ├── smtp.c
│ │ ├── smtp.h
│ │ ├── sockaddr.h
│ │ ├── socks.c
│ │ ├── socks.h
│ │ ├── socks_gssapi.c
│ │ ├── socks_sspi.c
│ │ ├── speedcheck.c
│ │ ├── speedcheck.h
│ │ ├── splay.c
│ │ ├── splay.h
│ │ ├── ssh-libssh.c
│ │ ├── ssh.c
│ │ ├── ssh.h
│ │ ├── strcase.c
│ │ ├── strcase.h
│ │ ├── strdup.c
│ │ ├── strdup.h
│ │ ├── strerror.c
│ │ ├── strerror.h
│ │ ├── strtok.c
│ │ ├── strtok.h
│ │ ├── strtoofft.c
│ │ ├── strtoofft.h
│ │ ├── system_win32.c
│ │ ├── system_win32.h
│ │ ├── telnet.c
│ │ ├── telnet.h
│ │ ├── tftp.c
│ │ ├── tftp.h
│ │ ├── timeval.c
│ │ ├── timeval.h
│ │ ├── transfer.c
│ │ ├── transfer.h
│ │ ├── url.c
│ │ ├── url.h
│ │ ├── urldata.h
│ │ ├── vauth/
│ │ │ ├── cleartext.c
│ │ │ ├── cram.c
│ │ │ ├── digest.c
│ │ │ ├── digest.h
│ │ │ ├── digest_sspi.c
│ │ │ ├── krb5_gssapi.c
│ │ │ ├── krb5_sspi.c
│ │ │ ├── ntlm.c
│ │ │ ├── ntlm.h
│ │ │ ├── ntlm_sspi.c
│ │ │ ├── oauth2.c
│ │ │ ├── spnego_gssapi.c
│ │ │ ├── spnego_sspi.c
│ │ │ ├── vauth.c
│ │ │ └── vauth.h
│ │ ├── version.c
│ │ ├── vtls/
│ │ │ ├── axtls.c
│ │ │ ├── axtls.h
│ │ │ ├── cyassl.c
│ │ │ ├── cyassl.h
│ │ │ ├── darwinssl.c
│ │ │ ├── darwinssl.h
│ │ │ ├── gskit.c
│ │ │ ├── gskit.h
│ │ │ ├── gtls.c
│ │ │ ├── gtls.h
│ │ │ ├── mbedtls.c
│ │ │ ├── mbedtls.h
│ │ │ ├── nss.c
│ │ │ ├── nssg.h
│ │ │ ├── openssl.c
│ │ │ ├── openssl.h
│ │ │ ├── polarssl.c
│ │ │ ├── polarssl.h
│ │ │ ├── polarssl_threadlock.c
│ │ │ ├── polarssl_threadlock.h
│ │ │ ├── schannel.c
│ │ │ ├── schannel.h
│ │ │ ├── vtls.c
│ │ │ └── vtls.h
│ │ ├── warnless.c
│ │ ├── warnless.h
│ │ ├── wildcard.c
│ │ ├── wildcard.h
│ │ ├── x509asn1.c
│ │ └── x509asn1.h
│ ├── libcurl.pc.in
│ ├── ltmain.sh
│ ├── m4/
│ │ ├── ax_code_coverage.m4
│ │ ├── curl-compilers.m4
│ │ ├── curl-confopts.m4
│ │ ├── curl-functions.m4
│ │ ├── curl-openssl.m4
│ │ ├── curl-override.m4
│ │ ├── curl-reentrant.m4
│ │ ├── libtool.m4
│ │ ├── ltoptions.m4
│ │ ├── ltsugar.m4
│ │ ├── ltversion.m4
│ │ ├── lt~obsolete.m4
│ │ ├── xc-am-iface.m4
│ │ ├── xc-cc-check.m4
│ │ ├── xc-lt-iface.m4
│ │ ├── xc-translit.m4
│ │ ├── xc-val-flgs.m4
│ │ ├── zz40-xc-ovr.m4
│ │ ├── zz50-xc-ovr.m4
│ │ └── zz60-xc-ovr.m4
│ ├── maketgz
│ ├── missing
│ ├── packages/
│ │ ├── AIX/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ └── RPM/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ └── curl.spec.in
│ │ ├── Android/
│ │ │ └── Android.mk
│ │ ├── DOS/
│ │ │ ├── README
│ │ │ └── common.dj
│ │ ├── EPM/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ └── curl.list.in
│ │ ├── Linux/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ └── RPM/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ ├── curl-ssl.spec.in
│ │ │ ├── curl.spec.in
│ │ │ └── make_curl_rpm
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── NetWare/
│ │ │ ├── get_exp.awk
│ │ │ └── get_ver.awk
│ │ ├── OS400/
│ │ │ ├── README.OS400
│ │ │ ├── ccsidcurl.c
│ │ │ ├── ccsidcurl.h
│ │ │ ├── curl.inc.in
│ │ │ ├── initscript.sh
│ │ │ ├── make-include.sh
│ │ │ ├── make-lib.sh
│ │ │ ├── make-src.sh
│ │ │ ├── make-tests.sh
│ │ │ ├── makefile.sh
│ │ │ ├── os400sys.c
│ │ │ └── os400sys.h
│ │ ├── README
│ │ ├── Solaris/
│ │ │ ├── Makefile.am
│ │ │ └── Makefile.in
│ │ ├── Symbian/
│ │ │ ├── bwins/
│ │ │ │ └── libcurlu.def
│ │ │ ├── eabi/
│ │ │ │ └── libcurlu.def
│ │ │ ├── group/
│ │ │ │ ├── bld.inf
│ │ │ │ ├── curl.iby
│ │ │ │ ├── curl.mmp
│ │ │ │ ├── curl.pkg
│ │ │ │ ├── libcurl.iby
│ │ │ │ ├── libcurl.mmp
│ │ │ │ └── libcurl.pkg
│ │ │ └── readme.txt
│ │ ├── TPF/
│ │ │ ├── curl.mak
│ │ │ ├── maketpf.env_curl
│ │ │ └── maketpf.env_curllib
│ │ ├── Win32/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── README
│ │ │ └── cygwin/
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ └── README
│ │ └── vms/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── backup_gnv_curl_src.com
│ │ ├── build_curl-config_script.com
│ │ ├── build_gnv_curl.com
│ │ ├── build_gnv_curl_pcsi_desc.com
│ │ ├── build_gnv_curl_pcsi_text.com
│ │ ├── build_gnv_curl_release_notes.com
│ │ ├── build_libcurl_pc.com
│ │ ├── build_vms.com
│ │ ├── clean_gnv_curl.com
│ │ ├── compare_curl_source.com
│ │ ├── config_h.com
│ │ ├── curl_crtl_init.c
│ │ ├── curl_gnv_build_steps.txt
│ │ ├── curl_release_note_start.txt
│ │ ├── curl_startup.com
│ │ ├── curlmsg.h
│ │ ├── curlmsg.msg
│ │ ├── curlmsg.sdl
│ │ ├── curlmsg_vms.h
│ │ ├── generate_config_vms_h_curl.com
│ │ ├── generate_vax_transfer.com
│ │ ├── gnv_conftest.c_first
│ │ ├── gnv_curl_configure.sh
│ │ ├── gnv_libcurl_symbols.opt
│ │ ├── gnv_link_curl.com
│ │ ├── macro32_exactcase.patch
│ │ ├── make_gnv_curl_install.sh
│ │ ├── make_pcsi_curl_kit_name.com
│ │ ├── pcsi_gnv_curl_file_list.txt
│ │ ├── pcsi_product_gnv_curl.com
│ │ ├── readme
│ │ ├── report_openssl_version.c
│ │ ├── setup_gnv_curl_build.com
│ │ ├── stage_curl_install.com
│ │ └── vms_eco_level.h
│ ├── projects/
│ │ ├── README
│ │ ├── Windows/
│ │ │ ├── VC10/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC11/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC12/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC14/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC15/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ ├── libcurl.vcxproj
│ │ │ │ │ └── libcurl.vcxproj.filters
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ ├── curl.vcxproj
│ │ │ │ └── curl.vcxproj.filters
│ │ │ ├── VC6/
│ │ │ │ ├── curl-all.dsw
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.dsp
│ │ │ │ │ └── libcurl.dsw
│ │ │ │ └── src/
│ │ │ │ ├── curl.dsp
│ │ │ │ └── curl.dsw
│ │ │ ├── VC7/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ └── libcurl.vcproj
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ └── curl.vcproj
│ │ │ ├── VC7.1/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ └── libcurl.vcproj
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ └── curl.vcproj
│ │ │ ├── VC8/
│ │ │ │ ├── curl-all.sln
│ │ │ │ ├── lib/
│ │ │ │ │ ├── libcurl.sln
│ │ │ │ │ └── libcurl.vcproj
│ │ │ │ └── src/
│ │ │ │ ├── curl.sln
│ │ │ │ └── curl.vcproj
│ │ │ └── VC9/
│ │ │ ├── curl-all.sln
│ │ │ ├── lib/
│ │ │ │ ├── libcurl.sln
│ │ │ │ └── libcurl.vcproj
│ │ │ └── src/
│ │ │ ├── curl.sln
│ │ │ └── curl.vcproj
│ │ ├── build-openssl.bat
│ │ ├── build-wolfssl.bat
│ │ ├── checksrc.bat
│ │ ├── generate.bat
│ │ ├── wolfssl_options.h
│ │ └── wolfssl_override.props
│ ├── scripts/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── coverage.sh
│ │ ├── updatemanpages.pl
│ │ └── zsh.pl
│ ├── src/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile.Watcom
│ │ ├── Makefile.am
│ │ ├── Makefile.b32
│ │ ├── Makefile.in
│ │ ├── Makefile.inc
│ │ ├── Makefile.m32
│ │ ├── Makefile.netware
│ │ ├── curl.rc
│ │ ├── macos/
│ │ │ ├── MACINSTALL.TXT
│ │ │ ├── curl.mcp.xml.sit.hqx
│ │ │ └── src/
│ │ │ ├── curl_GUSIConfig.cpp
│ │ │ └── macos_main.cpp
│ │ ├── makefile.amiga
│ │ ├── makefile.dj
│ │ ├── mkhelp.pl
│ │ ├── slist_wc.c
│ │ ├── slist_wc.h
│ │ ├── tool_binmode.c
│ │ ├── tool_binmode.h
│ │ ├── tool_bname.c
│ │ ├── tool_bname.h
│ │ ├── tool_cb_dbg.c
│ │ ├── tool_cb_dbg.h
│ │ ├── tool_cb_hdr.c
│ │ ├── tool_cb_hdr.h
│ │ ├── tool_cb_prg.c
│ │ ├── tool_cb_prg.h
│ │ ├── tool_cb_rea.c
│ │ ├── tool_cb_rea.h
│ │ ├── tool_cb_see.c
│ │ ├── tool_cb_see.h
│ │ ├── tool_cb_wrt.c
│ │ ├── tool_cb_wrt.h
│ │ ├── tool_cfgable.c
│ │ ├── tool_cfgable.h
│ │ ├── tool_convert.c
│ │ ├── tool_convert.h
│ │ ├── tool_dirhie.c
│ │ ├── tool_dirhie.h
│ │ ├── tool_doswin.c
│ │ ├── tool_doswin.h
│ │ ├── tool_easysrc.c
│ │ ├── tool_easysrc.h
│ │ ├── tool_filetime.c
│ │ ├── tool_filetime.h
│ │ ├── tool_formparse.c
│ │ ├── tool_formparse.h
│ │ ├── tool_getparam.c
│ │ ├── tool_getparam.h
│ │ ├── tool_getpass.c
│ │ ├── tool_getpass.h
│ │ ├── tool_help.c
│ │ ├── tool_help.h
│ │ ├── tool_helpers.c
│ │ ├── tool_helpers.h
│ │ ├── tool_homedir.c
│ │ ├── tool_homedir.h
│ │ ├── tool_hugehelp.c
│ │ ├── tool_hugehelp.h
│ │ ├── tool_libinfo.c
│ │ ├── tool_libinfo.h
│ │ ├── tool_main.c
│ │ ├── tool_main.h
│ │ ├── tool_metalink.c
│ │ ├── tool_metalink.h
│ │ ├── tool_msgs.c
│ │ ├── tool_msgs.h
│ │ ├── tool_operate.c
│ │ ├── tool_operate.h
│ │ ├── tool_operhlp.c
│ │ ├── tool_operhlp.h
│ │ ├── tool_panykey.c
│ │ ├── tool_panykey.h
│ │ ├── tool_paramhlp.c
│ │ ├── tool_paramhlp.h
│ │ ├── tool_parsecfg.c
│ │ ├── tool_parsecfg.h
│ │ ├── tool_sdecls.h
│ │ ├── tool_setopt.c
│ │ ├── tool_setopt.h
│ │ ├── tool_setup.h
│ │ ├── tool_sleep.c
│ │ ├── tool_sleep.h
│ │ ├── tool_strdup.c
│ │ ├── tool_strdup.h
│ │ ├── tool_urlglob.c
│ │ ├── tool_urlglob.h
│ │ ├── tool_util.c
│ │ ├── tool_util.h
│ │ ├── tool_version.h
│ │ ├── tool_vms.c
│ │ ├── tool_vms.h
│ │ ├── tool_writeout.c
│ │ ├── tool_writeout.h
│ │ ├── tool_xattr.c
│ │ └── tool_xattr.h
│ ├── test-driver
│ ├── tests/
│ │ ├── CMakeLists.txt
│ │ ├── FILEFORMAT
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── README
│ │ ├── certs/
│ │ │ ├── EdelCurlRoot-ca.cacert
│ │ │ ├── EdelCurlRoot-ca.cnf
│ │ │ ├── EdelCurlRoot-ca.crt
│ │ │ ├── EdelCurlRoot-ca.csr
│ │ │ ├── EdelCurlRoot-ca.der
│ │ │ ├── EdelCurlRoot-ca.key
│ │ │ ├── EdelCurlRoot-ca.prm
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Server-localhost-sv.crl
│ │ │ ├── Server-localhost-sv.crt
│ │ │ ├── Server-localhost-sv.csr
│ │ │ ├── Server-localhost-sv.der
│ │ │ ├── Server-localhost-sv.dhp
│ │ │ ├── Server-localhost-sv.key
│ │ │ ├── Server-localhost-sv.pem
│ │ │ ├── Server-localhost-sv.prm
│ │ │ ├── Server-localhost-sv.pub.der
│ │ │ ├── Server-localhost-sv.pub.pem
│ │ │ ├── Server-localhost.nn-sv.crl
│ │ │ ├── Server-localhost.nn-sv.crt
│ │ │ ├── Server-localhost.nn-sv.csr
│ │ │ ├── Server-localhost.nn-sv.der
│ │ │ ├── Server-localhost.nn-sv.dhp
│ │ │ ├── Server-localhost.nn-sv.key
│ │ │ ├── Server-localhost.nn-sv.pem
│ │ │ ├── Server-localhost.nn-sv.prm
│ │ │ ├── Server-localhost.nn-sv.pub.der
│ │ │ ├── Server-localhost.nn-sv.pub.pem
│ │ │ ├── Server-localhost0h-sv.crl
│ │ │ ├── Server-localhost0h-sv.crt
│ │ │ ├── Server-localhost0h-sv.csr
│ │ │ ├── Server-localhost0h-sv.der
│ │ │ ├── Server-localhost0h-sv.dhp
│ │ │ ├── Server-localhost0h-sv.key
│ │ │ ├── Server-localhost0h-sv.pem
│ │ │ ├── Server-localhost0h-sv.prm
│ │ │ ├── Server-localhost0h-sv.pub.der
│ │ │ ├── Server-localhost0h-sv.pub.pem
│ │ │ ├── scripts/
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.in
│ │ │ │ ├── genroot.sh
│ │ │ │ └── genserv.sh
│ │ │ ├── srp-verifier-conf
│ │ │ └── srp-verifier-db
│ │ ├── curl_test_data.py
│ │ ├── data/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── DISABLED
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── test1
│ │ │ ├── test10
│ │ │ ├── test100
│ │ │ ├── test1000
│ │ │ ├── test1001
│ │ │ ├── test1002
│ │ │ ├── test1003
│ │ │ ├── test1004
│ │ │ ├── test1005
│ │ │ ├── test1006
│ │ │ ├── test1007
│ │ │ ├── test1008
│ │ │ ├── test1009
│ │ │ ├── test101
│ │ │ ├── test1010
│ │ │ ├── test1011
│ │ │ ├── test1012
│ │ │ ├── test1013
│ │ │ ├── test1014
│ │ │ ├── test1015
│ │ │ ├── test1016
│ │ │ ├── test1017
│ │ │ ├── test1018
│ │ │ ├── test1019
│ │ │ ├── test102
│ │ │ ├── test1020
│ │ │ ├── test1021
│ │ │ ├── test1022
│ │ │ ├── test1023
│ │ │ ├── test1024
│ │ │ ├── test1025
│ │ │ ├── test1026
│ │ │ ├── test1027
│ │ │ ├── test1028
│ │ │ ├── test1029
│ │ │ ├── test103
│ │ │ ├── test1030
│ │ │ ├── test1031
│ │ │ ├── test1032
│ │ │ ├── test1033
│ │ │ ├── test1034
│ │ │ ├── test1035
│ │ │ ├── test1036
│ │ │ ├── test1037
│ │ │ ├── test1038
│ │ │ ├── test1039
│ │ │ ├── test104
│ │ │ ├── test1040
│ │ │ ├── test1041
│ │ │ ├── test1042
│ │ │ ├── test1043
│ │ │ ├── test1044
│ │ │ ├── test1045
│ │ │ ├── test1046
│ │ │ ├── test1047
│ │ │ ├── test1048
│ │ │ ├── test1049
│ │ │ ├── test105
│ │ │ ├── test1050
│ │ │ ├── test1051
│ │ │ ├── test1052
│ │ │ ├── test1053
│ │ │ ├── test1054
│ │ │ ├── test1055
│ │ │ ├── test1056
│ │ │ ├── test1057
│ │ │ ├── test1058
│ │ │ ├── test1059
│ │ │ ├── test106
│ │ │ ├── test1060
│ │ │ ├── test1061
│ │ │ ├── test1062
│ │ │ ├── test1063
│ │ │ ├── test1064
│ │ │ ├── test1065
│ │ │ ├── test1066
│ │ │ ├── test1067
│ │ │ ├── test1068
│ │ │ ├── test1069
│ │ │ ├── test107
│ │ │ ├── test1070
│ │ │ ├── test1071
│ │ │ ├── test1072
│ │ │ ├── test1073
│ │ │ ├── test1074
│ │ │ ├── test1075
│ │ │ ├── test1076
│ │ │ ├── test1077
│ │ │ ├── test1078
│ │ │ ├── test1079
│ │ │ ├── test108
│ │ │ ├── test1080
│ │ │ ├── test1081
│ │ │ ├── test1082
│ │ │ ├── test1083
│ │ │ ├── test1084
│ │ │ ├── test1085
│ │ │ ├── test1086
│ │ │ ├── test1087
│ │ │ ├── test1088
│ │ │ ├── test1089
│ │ │ ├── test109
│ │ │ ├── test1090
│ │ │ ├── test1091
│ │ │ ├── test1092
│ │ │ ├── test1093
│ │ │ ├── test1094
│ │ │ ├── test1095
│ │ │ ├── test1096
│ │ │ ├── test1097
│ │ │ ├── test1098
│ │ │ ├── test1099
│ │ │ ├── test11
│ │ │ ├── test110
│ │ │ ├── test1100
│ │ │ ├── test1101
│ │ │ ├── test1102
│ │ │ ├── test1103
│ │ │ ├── test1104
│ │ │ ├── test1105
│ │ │ ├── test1106
│ │ │ ├── test1107
│ │ │ ├── test1108
│ │ │ ├── test1109
│ │ │ ├── test111
│ │ │ ├── test1110
│ │ │ ├── test1111
│ │ │ ├── test1112
│ │ │ ├── test1113
│ │ │ ├── test1114
│ │ │ ├── test1115
│ │ │ ├── test1116
│ │ │ ├── test1117
│ │ │ ├── test1118
│ │ │ ├── test1119
│ │ │ ├── test112
│ │ │ ├── test1120
│ │ │ ├── test1121
│ │ │ ├── test1122
│ │ │ ├── test1123
│ │ │ ├── test1124
│ │ │ ├── test1125
│ │ │ ├── test1126
│ │ │ ├── test1127
│ │ │ ├── test1128
│ │ │ ├── test1129
│ │ │ ├── test113
│ │ │ ├── test1130
│ │ │ ├── test1131
│ │ │ ├── test1132
│ │ │ ├── test1133
│ │ │ ├── test1134
│ │ │ ├── test1135
│ │ │ ├── test1136
│ │ │ ├── test1137
│ │ │ ├── test1138
│ │ │ ├── test1139
│ │ │ ├── test114
│ │ │ ├── test1140
│ │ │ ├── test1141
│ │ │ ├── test1142
│ │ │ ├── test1143
│ │ │ ├── test1144
│ │ │ ├── test1145
│ │ │ ├── test1146
│ │ │ ├── test1147
│ │ │ ├── test1148
│ │ │ ├── test1149
│ │ │ ├── test115
│ │ │ ├── test1150
│ │ │ ├── test1151
│ │ │ ├── test1152
│ │ │ ├── test1153
│ │ │ ├── test1154
│ │ │ ├── test116
│ │ │ ├── test1160
│ │ │ ├── test1161
│ │ │ ├── test1162
│ │ │ ├── test1163
│ │ │ ├── test117
│ │ │ ├── test1170
│ │ │ ├── test1171
│ │ │ ├── test118
│ │ │ ├── test119
│ │ │ ├── test12
│ │ │ ├── test120
│ │ │ ├── test1200
│ │ │ ├── test1201
│ │ │ ├── test1202
│ │ │ ├── test1203
│ │ │ ├── test1204
│ │ │ ├── test1205
│ │ │ ├── test1206
│ │ │ ├── test1207
│ │ │ ├── test1208
│ │ │ ├── test1209
│ │ │ ├── test121
│ │ │ ├── test1210
│ │ │ ├── test1211
│ │ │ ├── test1212
│ │ │ ├── test1213
│ │ │ ├── test1214
│ │ │ ├── test1215
│ │ │ ├── test1216
│ │ │ ├── test1217
│ │ │ ├── test1218
│ │ │ ├── test1219
│ │ │ ├── test122
│ │ │ ├── test1220
│ │ │ ├── test1221
│ │ │ ├── test1222
│ │ │ ├── test1223
│ │ │ ├── test1224
│ │ │ ├── test1225
│ │ │ ├── test1226
│ │ │ ├── test1227
│ │ │ ├── test1228
│ │ │ ├── test1229
│ │ │ ├── test123
│ │ │ ├── test1230
│ │ │ ├── test1231
│ │ │ ├── test1232
│ │ │ ├── test1233
│ │ │ ├── test1234
│ │ │ ├── test1235
│ │ │ ├── test1236
│ │ │ ├── test1237
│ │ │ ├── test1238
│ │ │ ├── test1239
│ │ │ ├── test124
│ │ │ ├── test1240
│ │ │ ├── test1241
│ │ │ ├── test1242
│ │ │ ├── test1243
│ │ │ ├── test1244
│ │ │ ├── test1245
│ │ │ ├── test1246
│ │ │ ├── test1247
│ │ │ ├── test1248
│ │ │ ├── test1249
│ │ │ ├── test125
│ │ │ ├── test1250
│ │ │ ├── test1251
│ │ │ ├── test1252
│ │ │ ├── test1253
│ │ │ ├── test1254
│ │ │ ├── test1255
│ │ │ ├── test1256
│ │ │ ├── test1257
│ │ │ ├── test1258
│ │ │ ├── test1259
│ │ │ ├── test126
│ │ │ ├── test1260
│ │ │ ├── test1261
│ │ │ ├── test1262
│ │ │ ├── test1263
│ │ │ ├── test1264
│ │ │ ├── test1265
│ │ │ ├── test127
│ │ │ ├── test128
│ │ │ ├── test1280
│ │ │ ├── test1281
│ │ │ ├── test1282
│ │ │ ├── test1283
│ │ │ ├── test1284
│ │ │ ├── test1285
│ │ │ ├── test1286
│ │ │ ├── test1287
│ │ │ ├── test1288
│ │ │ ├── test1289
│ │ │ ├── test129
│ │ │ ├── test1290
│ │ │ ├── test1291
│ │ │ ├── test1292
│ │ │ ├── test1298
│ │ │ ├── test1299
│ │ │ ├── test13
│ │ │ ├── test130
│ │ │ ├── test1300
│ │ │ ├── test1301
│ │ │ ├── test1302
│ │ │ ├── test1303
│ │ │ ├── test1304
│ │ │ ├── test1305
│ │ │ ├── test1306
│ │ │ ├── test1307
│ │ │ ├── test1308
│ │ │ ├── test1309
│ │ │ ├── test131
│ │ │ ├── test1310
│ │ │ ├── test1311
│ │ │ ├── test1312
│ │ │ ├── test1313
│ │ │ ├── test1314
│ │ │ ├── test1315
│ │ │ ├── test1316
│ │ │ ├── test1317
│ │ │ ├── test1318
│ │ │ ├── test1319
│ │ │ ├── test132
│ │ │ ├── test1320
│ │ │ ├── test1321
│ │ │ ├── test1322
│ │ │ ├── test1323
│ │ │ ├── test1324
│ │ │ ├── test1325
│ │ │ ├── test1326
│ │ │ ├── test1327
│ │ │ ├── test1328
│ │ │ ├── test1329
│ │ │ ├── test133
│ │ │ ├── test1330
│ │ │ ├── test1331
│ │ │ ├── test1332
│ │ │ ├── test1333
│ │ │ ├── test1334
│ │ │ ├── test1335
│ │ │ ├── test1336
│ │ │ ├── test1337
│ │ │ ├── test1338
│ │ │ ├── test1339
│ │ │ ├── test134
│ │ │ ├── test1340
│ │ │ ├── test1341
│ │ │ ├── test1342
│ │ │ ├── test1343
│ │ │ ├── test1344
│ │ │ ├── test1345
│ │ │ ├── test1346
│ │ │ ├── test1347
│ │ │ ├── test1348
│ │ │ ├── test1349
│ │ │ ├── test135
│ │ │ ├── test1350
│ │ │ ├── test1351
│ │ │ ├── test1352
│ │ │ ├── test1353
│ │ │ ├── test1354
│ │ │ ├── test1355
│ │ │ ├── test1356
│ │ │ ├── test1357
│ │ │ ├── test1358
│ │ │ ├── test1359
│ │ │ ├── test136
│ │ │ ├── test1360
│ │ │ ├── test1361
│ │ │ ├── test1362
│ │ │ ├── test1363
│ │ │ ├── test1364
│ │ │ ├── test1365
│ │ │ ├── test1366
│ │ │ ├── test1367
│ │ │ ├── test1368
│ │ │ ├── test1369
│ │ │ ├── test137
│ │ │ ├── test1370
│ │ │ ├── test1371
│ │ │ ├── test1372
│ │ │ ├── test1373
│ │ │ ├── test1374
│ │ │ ├── test1375
│ │ │ ├── test1376
│ │ │ ├── test1377
│ │ │ ├── test1378
│ │ │ ├── test1379
│ │ │ ├── test138
│ │ │ ├── test1380
│ │ │ ├── test1381
│ │ │ ├── test1382
│ │ │ ├── test1383
│ │ │ ├── test1384
│ │ │ ├── test1385
│ │ │ ├── test1386
│ │ │ ├── test1387
│ │ │ ├── test1388
│ │ │ ├── test1389
│ │ │ ├── test139
│ │ │ ├── test1390
│ │ │ ├── test1391
│ │ │ ├── test1392
│ │ │ ├── test1393
│ │ │ ├── test1394
│ │ │ ├── test1395
│ │ │ ├── test1396
│ │ │ ├── test1397
│ │ │ ├── test1398
│ │ │ ├── test1399
│ │ │ ├── test14
│ │ │ ├── test140
│ │ │ ├── test1400
│ │ │ ├── test1401
│ │ │ ├── test1402
│ │ │ ├── test1403
│ │ │ ├── test1404
│ │ │ ├── test1405
│ │ │ ├── test1406
│ │ │ ├── test1407
│ │ │ ├── test1408
│ │ │ ├── test1409
│ │ │ ├── test141
│ │ │ ├── test1410
│ │ │ ├── test1411
│ │ │ ├── test1412
│ │ │ ├── test1413
│ │ │ ├── test1414
│ │ │ ├── test1415
│ │ │ ├── test1416
│ │ │ ├── test1417
│ │ │ ├── test1418
│ │ │ ├── test1419
│ │ │ ├── test142
│ │ │ ├── test1420
│ │ │ ├── test1421
│ │ │ ├── test1422
│ │ │ ├── test1423
│ │ │ ├── test1424
│ │ │ ├── test1425
│ │ │ ├── test1426
│ │ │ ├── test1427
│ │ │ ├── test1428
│ │ │ ├── test1429
│ │ │ ├── test143
│ │ │ ├── test1430
│ │ │ ├── test1431
│ │ │ ├── test1432
│ │ │ ├── test1433
│ │ │ ├── test1434
│ │ │ ├── test1435
│ │ │ ├── test1436
│ │ │ ├── test1437
│ │ │ ├── test1438
│ │ │ ├── test1439
│ │ │ ├── test144
│ │ │ ├── test1440
│ │ │ ├── test1441
│ │ │ ├── test1442
│ │ │ ├── test1443
│ │ │ ├── test1444
│ │ │ ├── test1445
│ │ │ ├── test1446
│ │ │ ├── test1447
│ │ │ ├── test1448
│ │ │ ├── test1449
│ │ │ ├── test145
│ │ │ ├── test1450
│ │ │ ├── test1451
│ │ │ ├── test1452
│ │ │ ├── test1453
│ │ │ ├── test1454
│ │ │ ├── test146
│ │ │ ├── test147
│ │ │ ├── test148
│ │ │ ├── test149
│ │ │ ├── test15
│ │ │ ├── test150
│ │ │ ├── test1500
│ │ │ ├── test1501
│ │ │ ├── test1502
│ │ │ ├── test1503
│ │ │ ├── test1504
│ │ │ ├── test1505
│ │ │ ├── test1506
│ │ │ ├── test1507
│ │ │ ├── test1508
│ │ │ ├── test1509
│ │ │ ├── test151
│ │ │ ├── test1510
│ │ │ ├── test1511
│ │ │ ├── test1512
│ │ │ ├── test1513
│ │ │ ├── test1514
│ │ │ ├── test1515
│ │ │ ├── test1516
│ │ │ ├── test1517
│ │ │ ├── test152
│ │ │ ├── test1520
│ │ │ ├── test1521
│ │ │ ├── test1525
│ │ │ ├── test1526
│ │ │ ├── test1527
│ │ │ ├── test1528
│ │ │ ├── test1529
│ │ │ ├── test153
│ │ │ ├── test1530
│ │ │ ├── test1531
│ │ │ ├── test1532
│ │ │ ├── test1533
│ │ │ ├── test1534
│ │ │ ├── test1535
│ │ │ ├── test1536
│ │ │ ├── test1537
│ │ │ ├── test1538
│ │ │ ├── test154
│ │ │ ├── test1540
│ │ │ ├── test155
│ │ │ ├── test1550
│ │ │ ├── test1551
│ │ │ ├── test1552
│ │ │ ├── test1553
│ │ │ ├── test1554
│ │ │ ├── test1555
│ │ │ ├── test1556
│ │ │ ├── test156
│ │ │ ├── test157
│ │ │ ├── test158
│ │ │ ├── test159
│ │ │ ├── test16
│ │ │ ├── test160
│ │ │ ├── test1600
│ │ │ ├── test1601
│ │ │ ├── test1602
│ │ │ ├── test1603
│ │ │ ├── test1604
│ │ │ ├── test1605
│ │ │ ├── test1606
│ │ │ ├── test1607
│ │ │ ├── test161
│ │ │ ├── test162
│ │ │ ├── test163
│ │ │ ├── test164
│ │ │ ├── test165
│ │ │ ├── test166
│ │ │ ├── test167
│ │ │ ├── test168
│ │ │ ├── test169
│ │ │ ├── test17
│ │ │ ├── test170
│ │ │ ├── test1700
│ │ │ ├── test1701
│ │ │ ├── test1702
│ │ │ ├── test171
│ │ │ ├── test172
│ │ │ ├── test173
│ │ │ ├── test174
│ │ │ ├── test175
│ │ │ ├── test176
│ │ │ ├── test177
│ │ │ ├── test178
│ │ │ ├── test179
│ │ │ ├── test18
│ │ │ ├── test180
│ │ │ ├── test1800
│ │ │ ├── test1801
│ │ │ ├── test181
│ │ │ ├── test182
│ │ │ ├── test183
│ │ │ ├── test184
│ │ │ ├── test185
│ │ │ ├── test186
│ │ │ ├── test187
│ │ │ ├── test188
│ │ │ ├── test189
│ │ │ ├── test19
│ │ │ ├── test190
│ │ │ ├── test1900
│ │ │ ├── test1901
│ │ │ ├── test1902
│ │ │ ├── test1903
│ │ │ ├── test1904
│ │ │ ├── test191
│ │ │ ├── test192
│ │ │ ├── test193
│ │ │ ├── test194
│ │ │ ├── test195
│ │ │ ├── test196
│ │ │ ├── test197
│ │ │ ├── test198
│ │ │ ├── test199
│ │ │ ├── test2
│ │ │ ├── test20
│ │ │ ├── test200
│ │ │ ├── test2000
│ │ │ ├── test2001
│ │ │ ├── test2002
│ │ │ ├── test2003
│ │ │ ├── test2004
│ │ │ ├── test2005
│ │ │ ├── test2006
│ │ │ ├── test2007
│ │ │ ├── test2008
│ │ │ ├── test2009
│ │ │ ├── test201
│ │ │ ├── test2010
│ │ │ ├── test2011
│ │ │ ├── test2012
│ │ │ ├── test2013
│ │ │ ├── test2014
│ │ │ ├── test2015
│ │ │ ├── test2016
│ │ │ ├── test2017
│ │ │ ├── test2018
│ │ │ ├── test2019
│ │ │ ├── test202
│ │ │ ├── test2020
│ │ │ ├── test2021
│ │ │ ├── test2022
│ │ │ ├── test2023
│ │ │ ├── test2024
│ │ │ ├── test2025
│ │ │ ├── test2026
│ │ │ ├── test2027
│ │ │ ├── test2028
│ │ │ ├── test2029
│ │ │ ├── test203
│ │ │ ├── test2030
│ │ │ ├── test2031
│ │ │ ├── test2032
│ │ │ ├── test2033
│ │ │ ├── test2034
│ │ │ ├── test2035
│ │ │ ├── test2036
│ │ │ ├── test2037
│ │ │ ├── test2038
│ │ │ ├── test2039
│ │ │ ├── test204
│ │ │ ├── test2040
│ │ │ ├── test2041
│ │ │ ├── test2042
│ │ │ ├── test2043
│ │ │ ├── test2044
│ │ │ ├── test2045
│ │ │ ├── test2046
│ │ │ ├── test2047
│ │ │ ├── test2048
│ │ │ ├── test2049
│ │ │ ├── test205
│ │ │ ├── test2050
│ │ │ ├── test2051
│ │ │ ├── test2052
│ │ │ ├── test2053
│ │ │ ├── test2054
│ │ │ ├── test2055
│ │ │ ├── test2056
│ │ │ ├── test2057
│ │ │ ├── test2058
│ │ │ ├── test2059
│ │ │ ├── test206
│ │ │ ├── test2060
│ │ │ ├── test2061
│ │ │ ├── test2062
│ │ │ ├── test2063
│ │ │ ├── test2064
│ │ │ ├── test2065
│ │ │ ├── test2066
│ │ │ ├── test2067
│ │ │ ├── test2068
│ │ │ ├── test2069
│ │ │ ├── test207
│ │ │ ├── test2070
│ │ │ ├── test2071
│ │ │ ├── test2072
│ │ │ ├── test2073
│ │ │ ├── test208
│ │ │ ├── test209
│ │ │ ├── test21
│ │ │ ├── test210
│ │ │ ├── test211
│ │ │ ├── test212
│ │ │ ├── test213
│ │ │ ├── test214
│ │ │ ├── test215
│ │ │ ├── test216
│ │ │ ├── test217
│ │ │ ├── test218
│ │ │ ├── test219
│ │ │ ├── test22
│ │ │ ├── test220
│ │ │ ├── test221
│ │ │ ├── test222
│ │ │ ├── test223
│ │ │ ├── test224
│ │ │ ├── test225
│ │ │ ├── test226
│ │ │ ├── test227
│ │ │ ├── test228
│ │ │ ├── test229
│ │ │ ├── test23
│ │ │ ├── test230
│ │ │ ├── test231
│ │ │ ├── test232
│ │ │ ├── test233
│ │ │ ├── test234
│ │ │ ├── test235
│ │ │ ├── test236
│ │ │ ├── test237
│ │ │ ├── test238
│ │ │ ├── test239
│ │ │ ├── test24
│ │ │ ├── test240
│ │ │ ├── test241
│ │ │ ├── test242
│ │ │ ├── test243
│ │ │ ├── test244
│ │ │ ├── test245
│ │ │ ├── test246
│ │ │ ├── test247
│ │ │ ├── test248
│ │ │ ├── test249
│ │ │ ├── test25
│ │ │ ├── test250
│ │ │ ├── test251
│ │ │ ├── test252
│ │ │ ├── test253
│ │ │ ├── test254
│ │ │ ├── test255
│ │ │ ├── test256
│ │ │ ├── test257
│ │ │ ├── test258
│ │ │ ├── test259
│ │ │ ├── test26
│ │ │ ├── test260
│ │ │ ├── test261
│ │ │ ├── test262
│ │ │ ├── test263
│ │ │ ├── test264
│ │ │ ├── test265
│ │ │ ├── test266
│ │ │ ├── test267
│ │ │ ├── test268
│ │ │ ├── test269
│ │ │ ├── test27
│ │ │ ├── test270
│ │ │ ├── test271
│ │ │ ├── test272
│ │ │ ├── test273
│ │ │ ├── test274
│ │ │ ├── test275
│ │ │ ├── test276
│ │ │ ├── test277
│ │ │ ├── test278
│ │ │ ├── test279
│ │ │ ├── test28
│ │ │ ├── test280
│ │ │ ├── test281
│ │ │ ├── test282
│ │ │ ├── test283
│ │ │ ├── test284
│ │ │ ├── test285
│ │ │ ├── test286
│ │ │ ├── test287
│ │ │ ├── test288
│ │ │ ├── test289
│ │ │ ├── test29
│ │ │ ├── test290
│ │ │ ├── test291
│ │ │ ├── test292
│ │ │ ├── test293
│ │ │ ├── test294
│ │ │ ├── test295
│ │ │ ├── test296
│ │ │ ├── test297
│ │ │ ├── test298
│ │ │ ├── test299
│ │ │ ├── test3
│ │ │ ├── test30
│ │ │ ├── test300
│ │ │ ├── test301
│ │ │ ├── test302
│ │ │ ├── test303
│ │ │ ├── test304
│ │ │ ├── test305
│ │ │ ├── test306
│ │ │ ├── test307
│ │ │ ├── test308
│ │ │ ├── test309
│ │ │ ├── test31
│ │ │ ├── test310
│ │ │ ├── test311
│ │ │ ├── test312
│ │ │ ├── test313
│ │ │ ├── test314
│ │ │ ├── test315
│ │ │ ├── test316
│ │ │ ├── test317
│ │ │ ├── test318
│ │ │ ├── test319
│ │ │ ├── test32
│ │ │ ├── test320
│ │ │ ├── test321
│ │ │ ├── test322
│ │ │ ├── test323
│ │ │ ├── test324
│ │ │ ├── test325
│ │ │ ├── test326
│ │ │ ├── test33
│ │ │ ├── test34
│ │ │ ├── test340
│ │ │ ├── test35
│ │ │ ├── test350
│ │ │ ├── test351
│ │ │ ├── test352
│ │ │ ├── test353
│ │ │ ├── test354
│ │ │ ├── test36
│ │ │ ├── test37
│ │ │ ├── test38
│ │ │ ├── test39
│ │ │ ├── test393
│ │ │ ├── test394
│ │ │ ├── test395
│ │ │ ├── test4
│ │ │ ├── test40
│ │ │ ├── test400
│ │ │ ├── test401
│ │ │ ├── test402
│ │ │ ├── test403
│ │ │ ├── test404
│ │ │ ├── test405
│ │ │ ├── test406
│ │ │ ├── test407
│ │ │ ├── test408
│ │ │ ├── test409
│ │ │ ├── test41
│ │ │ ├── test42
│ │ │ ├── test43
│ │ │ ├── test44
│ │ │ ├── test45
│ │ │ ├── test46
│ │ │ ├── test47
│ │ │ ├── test48
│ │ │ ├── test49
│ │ │ ├── test5
│ │ │ ├── test50
│ │ │ ├── test500
│ │ │ ├── test501
│ │ │ ├── test502
│ │ │ ├── test503
│ │ │ ├── test504
│ │ │ ├── test505
│ │ │ ├── test506
│ │ │ ├── test507
│ │ │ ├── test508
│ │ │ ├── test509
│ │ │ ├── test51
│ │ │ ├── test510
│ │ │ ├── test511
│ │ │ ├── test512
│ │ │ ├── test513
│ │ │ ├── test514
│ │ │ ├── test515
│ │ │ ├── test516
│ │ │ ├── test517
│ │ │ ├── test518
│ │ │ ├── test519
│ │ │ ├── test52
│ │ │ ├── test520
│ │ │ ├── test521
│ │ │ ├── test522
│ │ │ ├── test523
│ │ │ ├── test524
│ │ │ ├── test525
│ │ │ ├── test526
│ │ │ ├── test527
│ │ │ ├── test528
│ │ │ ├── test529
│ │ │ ├── test53
│ │ │ ├── test530
│ │ │ ├── test531
│ │ │ ├── test532
│ │ │ ├── test533
│ │ │ ├── test534
│ │ │ ├── test535
│ │ │ ├── test536
│ │ │ ├── test537
│ │ │ ├── test538
│ │ │ ├── test539
│ │ │ ├── test54
│ │ │ ├── test540
│ │ │ ├── test541
│ │ │ ├── test542
│ │ │ ├── test543
│ │ │ ├── test544
│ │ │ ├── test545
│ │ │ ├── test546
│ │ │ ├── test547
│ │ │ ├── test548
│ │ │ ├── test549
│ │ │ ├── test55
│ │ │ ├── test550
│ │ │ ├── test551
│ │ │ ├── test552
│ │ │ ├── test553
│ │ │ ├── test554
│ │ │ ├── test555
│ │ │ ├── test556
│ │ │ ├── test557
│ │ │ ├── test558
│ │ │ ├── test559
│ │ │ ├── test56
│ │ │ ├── test560
│ │ │ ├── test561
│ │ │ ├── test562
│ │ │ ├── test563
│ │ │ ├── test564
│ │ │ ├── test565
│ │ │ ├── test566
│ │ │ ├── test567
│ │ │ ├── test568
│ │ │ ├── test569
│ │ │ ├── test57
│ │ │ ├── test570
│ │ │ ├── test571
│ │ │ ├── test572
│ │ │ ├── test573
│ │ │ ├── test574
│ │ │ ├── test575
│ │ │ ├── test576
│ │ │ ├── test577
│ │ │ ├── test578
│ │ │ ├── test579
│ │ │ ├── test58
│ │ │ ├── test580
│ │ │ ├── test581
│ │ │ ├── test582
│ │ │ ├── test583
│ │ │ ├── test584
│ │ │ ├── test585
│ │ │ ├── test586
│ │ │ ├── test587
│ │ │ ├── test588
│ │ │ ├── test589
│ │ │ ├── test59
│ │ │ ├── test590
│ │ │ ├── test591
│ │ │ ├── test592
│ │ │ ├── test593
│ │ │ ├── test594
│ │ │ ├── test595
│ │ │ ├── test596
│ │ │ ├── test597
│ │ │ ├── test598
│ │ │ ├── test599
│ │ │ ├── test6
│ │ │ ├── test60
│ │ │ ├── test600
│ │ │ ├── test601
│ │ │ ├── test602
│ │ │ ├── test603
│ │ │ ├── test604
│ │ │ ├── test605
│ │ │ ├── test606
│ │ │ ├── test607
│ │ │ ├── test608
│ │ │ ├── test609
│ │ │ ├── test61
│ │ │ ├── test610
│ │ │ ├── test611
│ │ │ ├── test612
│ │ │ ├── test613
│ │ │ ├── test614
│ │ │ ├── test615
│ │ │ ├── test616
│ │ │ ├── test617
│ │ │ ├── test618
│ │ │ ├── test619
│ │ │ ├── test62
│ │ │ ├── test620
│ │ │ ├── test621
│ │ │ ├── test622
│ │ │ ├── test623
│ │ │ ├── test624
│ │ │ ├── test625
│ │ │ ├── test626
│ │ │ ├── test627
│ │ │ ├── test628
│ │ │ ├── test629
│ │ │ ├── test63
│ │ │ ├── test630
│ │ │ ├── test631
│ │ │ ├── test632
│ │ │ ├── test633
│ │ │ ├── test634
│ │ │ ├── test635
│ │ │ ├── test636
│ │ │ ├── test637
│ │ │ ├── test638
│ │ │ ├── test639
│ │ │ ├── test64
│ │ │ ├── test640
│ │ │ ├── test641
│ │ │ ├── test642
│ │ │ ├── test643
│ │ │ ├── test644
│ │ │ ├── test645
│ │ │ ├── test646
│ │ │ ├── test647
│ │ │ ├── test648
│ │ │ ├── test649
│ │ │ ├── test65
│ │ │ ├── test650
│ │ │ ├── test651
│ │ │ ├── test652
│ │ │ ├── test653
│ │ │ ├── test654
│ │ │ ├── test655
│ │ │ ├── test66
│ │ │ ├── test67
│ │ │ ├── test68
│ │ │ ├── test69
│ │ │ ├── test7
│ │ │ ├── test70
│ │ │ ├── test700
│ │ │ ├── test701
│ │ │ ├── test702
│ │ │ ├── test703
│ │ │ ├── test704
│ │ │ ├── test705
│ │ │ ├── test706
│ │ │ ├── test707
│ │ │ ├── test708
│ │ │ ├── test709
│ │ │ ├── test71
│ │ │ ├── test710
│ │ │ ├── test711
│ │ │ ├── test712
│ │ │ ├── test713
│ │ │ ├── test714
│ │ │ ├── test715
│ │ │ ├── test72
│ │ │ ├── test73
│ │ │ ├── test74
│ │ │ ├── test75
│ │ │ ├── test76
│ │ │ ├── test77
│ │ │ ├── test78
│ │ │ ├── test79
│ │ │ ├── test8
│ │ │ ├── test80
│ │ │ ├── test800
│ │ │ ├── test801
│ │ │ ├── test802
│ │ │ ├── test803
│ │ │ ├── test804
│ │ │ ├── test805
│ │ │ ├── test806
│ │ │ ├── test807
│ │ │ ├── test808
│ │ │ ├── test809
│ │ │ ├── test81
│ │ │ ├── test810
│ │ │ ├── test811
│ │ │ ├── test812
│ │ │ ├── test813
│ │ │ ├── test814
│ │ │ ├── test815
│ │ │ ├── test816
│ │ │ ├── test817
│ │ │ ├── test818
│ │ │ ├── test819
│ │ │ ├── test82
│ │ │ ├── test820
│ │ │ ├── test821
│ │ │ ├── test822
│ │ │ ├── test823
│ │ │ ├── test824
│ │ │ ├── test825
│ │ │ ├── test826
│ │ │ ├── test827
│ │ │ ├── test828
│ │ │ ├── test829
│ │ │ ├── test83
│ │ │ ├── test830
│ │ │ ├── test831
│ │ │ ├── test832
│ │ │ ├── test833
│ │ │ ├── test834
│ │ │ ├── test835
│ │ │ ├── test836
│ │ │ ├── test837
│ │ │ ├── test838
│ │ │ ├── test839
│ │ │ ├── test84
│ │ │ ├── test840
│ │ │ ├── test841
│ │ │ ├── test842
│ │ │ ├── test843
│ │ │ ├── test844
│ │ │ ├── test845
│ │ │ ├── test846
│ │ │ ├── test85
│ │ │ ├── test850
│ │ │ ├── test851
│ │ │ ├── test852
│ │ │ ├── test853
│ │ │ ├── test854
│ │ │ ├── test855
│ │ │ ├── test856
│ │ │ ├── test857
│ │ │ ├── test858
│ │ │ ├── test859
│ │ │ ├── test86
│ │ │ ├── test860
│ │ │ ├── test861
│ │ │ ├── test862
│ │ │ ├── test863
│ │ │ ├── test864
│ │ │ ├── test865
│ │ │ ├── test866
│ │ │ ├── test867
│ │ │ ├── test868
│ │ │ ├── test869
│ │ │ ├── test87
│ │ │ ├── test870
│ │ │ ├── test871
│ │ │ ├── test872
│ │ │ ├── test873
│ │ │ ├── test874
│ │ │ ├── test875
│ │ │ ├── test876
│ │ │ ├── test877
│ │ │ ├── test878
│ │ │ ├── test879
│ │ │ ├── test88
│ │ │ ├── test880
│ │ │ ├── test881
│ │ │ ├── test882
│ │ │ ├── test883
│ │ │ ├── test884
│ │ │ ├── test885
│ │ │ ├── test886
│ │ │ ├── test887
│ │ │ ├── test888
│ │ │ ├── test889
│ │ │ ├── test89
│ │ │ ├── test890
│ │ │ ├── test891
│ │ │ ├── test9
│ │ │ ├── test90
│ │ │ ├── test900
│ │ │ ├── test901
│ │ │ ├── test902
│ │ │ ├── test903
│ │ │ ├── test904
│ │ │ ├── test905
│ │ │ ├── test906
│ │ │ ├── test907
│ │ │ ├── test908
│ │ │ ├── test909
│ │ │ ├── test91
│ │ │ ├── test910
│ │ │ ├── test911
│ │ │ ├── test912
│ │ │ ├── test913
│ │ │ ├── test914
│ │ │ ├── test915
│ │ │ ├── test916
│ │ │ ├── test917
│ │ │ ├── test918
│ │ │ ├── test919
│ │ │ ├── test92
│ │ │ ├── test920
│ │ │ ├── test921
│ │ │ ├── test922
│ │ │ ├── test923
│ │ │ ├── test924
│ │ │ ├── test925
│ │ │ ├── test926
│ │ │ ├── test927
│ │ │ ├── test928
│ │ │ ├── test929
│ │ │ ├── test93
│ │ │ ├── test930
│ │ │ ├── test931
│ │ │ ├── test932
│ │ │ ├── test933
│ │ │ ├── test934
│ │ │ ├── test935
│ │ │ ├── test936
│ │ │ ├── test937
│ │ │ ├── test938
│ │ │ ├── test939
│ │ │ ├── test94
│ │ │ ├── test940
│ │ │ ├── test941
│ │ │ ├── test942
│ │ │ ├── test943
│ │ │ ├── test944
│ │ │ ├── test945
│ │ │ ├── test946
│ │ │ ├── test947
│ │ │ ├── test948
│ │ │ ├── test949
│ │ │ ├── test95
│ │ │ ├── test950
│ │ │ ├── test951
│ │ │ ├── test952
│ │ │ ├── test96
│ │ │ ├── test97
│ │ │ ├── test98
│ │ │ └── test99
│ │ ├── dictserver.py
│ │ ├── directories.pm
│ │ ├── extern-scan.pl
│ │ ├── ftp.pm
│ │ ├── ftpserver.pl
│ │ ├── getpart.pm
│ │ ├── http2-server.pl
│ │ ├── http_pipe.py
│ │ ├── httpserver.pl
│ │ ├── libtest/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── chkhostname.c
│ │ │ ├── first.c
│ │ │ ├── lib1500.c
│ │ │ ├── lib1501.c
│ │ │ ├── lib1502.c
│ │ │ ├── lib1506.c
│ │ │ ├── lib1507.c
│ │ │ ├── lib1508.c
│ │ │ ├── lib1509.c
│ │ │ ├── lib1510.c
│ │ │ ├── lib1511.c
│ │ │ ├── lib1512.c
│ │ │ ├── lib1513.c
│ │ │ ├── lib1514.c
│ │ │ ├── lib1515.c
│ │ │ ├── lib1517.c
│ │ │ ├── lib1520.c
│ │ │ ├── lib1521.c
│ │ │ ├── lib1525.c
│ │ │ ├── lib1526.c
│ │ │ ├── lib1527.c
│ │ │ ├── lib1528.c
│ │ │ ├── lib1529.c
│ │ │ ├── lib1530.c
│ │ │ ├── lib1531.c
│ │ │ ├── lib1532.c
│ │ │ ├── lib1533.c
│ │ │ ├── lib1534.c
│ │ │ ├── lib1535.c
│ │ │ ├── lib1536.c
│ │ │ ├── lib1537.c
│ │ │ ├── lib1538.c
│ │ │ ├── lib1540.c
│ │ │ ├── lib1550.c
│ │ │ ├── lib1551.c
│ │ │ ├── lib1552.c
│ │ │ ├── lib1553.c
│ │ │ ├── lib1554.c
│ │ │ ├── lib1555.c
│ │ │ ├── lib1556.c
│ │ │ ├── lib1900.c
│ │ │ ├── lib500.c
│ │ │ ├── lib501.c
│ │ │ ├── lib502.c
│ │ │ ├── lib503.c
│ │ │ ├── lib504.c
│ │ │ ├── lib505.c
│ │ │ ├── lib506.c
│ │ │ ├── lib507.c
│ │ │ ├── lib508.c
│ │ │ ├── lib509.c
│ │ │ ├── lib510.c
│ │ │ ├── lib511.c
│ │ │ ├── lib512.c
│ │ │ ├── lib513.c
│ │ │ ├── lib514.c
│ │ │ ├── lib515.c
│ │ │ ├── lib516.c
│ │ │ ├── lib517.c
│ │ │ ├── lib518.c
│ │ │ ├── lib519.c
│ │ │ ├── lib520.c
│ │ │ ├── lib521.c
│ │ │ ├── lib523.c
│ │ │ ├── lib524.c
│ │ │ ├── lib525.c
│ │ │ ├── lib526.c
│ │ │ ├── lib530.c
│ │ │ ├── lib533.c
│ │ │ ├── lib536.c
│ │ │ ├── lib537.c
│ │ │ ├── lib539.c
│ │ │ ├── lib540.c
│ │ │ ├── lib541.c
│ │ │ ├── lib542.c
│ │ │ ├── lib543.c
│ │ │ ├── lib544.c
│ │ │ ├── lib547.c
│ │ │ ├── lib549.c
│ │ │ ├── lib552.c
│ │ │ ├── lib553.c
│ │ │ ├── lib554.c
│ │ │ ├── lib555.c
│ │ │ ├── lib556.c
│ │ │ ├── lib557.c
│ │ │ ├── lib558.c
│ │ │ ├── lib559.c
│ │ │ ├── lib560.c
│ │ │ ├── lib562.c
│ │ │ ├── lib564.c
│ │ │ ├── lib566.c
│ │ │ ├── lib567.c
│ │ │ ├── lib568.c
│ │ │ ├── lib569.c
│ │ │ ├── lib570.c
│ │ │ ├── lib571.c
│ │ │ ├── lib572.c
│ │ │ ├── lib573.c
│ │ │ ├── lib574.c
│ │ │ ├── lib575.c
│ │ │ ├── lib576.c
│ │ │ ├── lib578.c
│ │ │ ├── lib579.c
│ │ │ ├── lib582.c
│ │ │ ├── lib583.c
│ │ │ ├── lib586.c
│ │ │ ├── lib589.c
│ │ │ ├── lib590.c
│ │ │ ├── lib591.c
│ │ │ ├── lib597.c
│ │ │ ├── lib598.c
│ │ │ ├── lib599.c
│ │ │ ├── lib643.c
│ │ │ ├── lib650.c
│ │ │ ├── lib651.c
│ │ │ ├── lib652.c
│ │ │ ├── lib653.c
│ │ │ ├── lib654.c
│ │ │ ├── lib655.c
│ │ │ ├── libauthretry.c
│ │ │ ├── libntlmconnect.c
│ │ │ ├── mk-lib1521.pl
│ │ │ ├── notexists.pl
│ │ │ ├── sethostname.c
│ │ │ ├── sethostname.h
│ │ │ ├── stub_gssapi.c
│ │ │ ├── stub_gssapi.h
│ │ │ ├── test.h
│ │ │ ├── test1013.pl
│ │ │ ├── test1022.pl
│ │ │ ├── test307.pl
│ │ │ ├── test610.pl
│ │ │ ├── test613.pl
│ │ │ ├── test75.pl
│ │ │ ├── testtrace.c
│ │ │ ├── testtrace.h
│ │ │ ├── testutil.c
│ │ │ └── testutil.h
│ │ ├── manpage-scan.pl
│ │ ├── mem-include-scan.pl
│ │ ├── memanalyze.pl
│ │ ├── negtelnetserver.py
│ │ ├── nroff-scan.pl
│ │ ├── pathhelp.pm
│ │ ├── python_dependencies/
│ │ │ └── impacket/
│ │ │ ├── __init__.py
│ │ │ ├── nmb.py
│ │ │ ├── nt_errors.py
│ │ │ ├── ntlm.py
│ │ │ ├── smb.py
│ │ │ ├── smb3.py
│ │ │ ├── smb3structs.py
│ │ │ ├── smbserver.py
│ │ │ ├── spnego.py
│ │ │ ├── structure.py
│ │ │ ├── uuid.py
│ │ │ └── version.py
│ │ ├── rtspserver.pl
│ │ ├── runtests.1
│ │ ├── runtests.pl
│ │ ├── secureserver.pl
│ │ ├── server/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── base64.pl
│ │ │ ├── fake_ntlm.c
│ │ │ ├── getpart.c
│ │ │ ├── getpart.h
│ │ │ ├── resolve.c
│ │ │ ├── rtspd.c
│ │ │ ├── server_setup.h
│ │ │ ├── server_sockaddr.h
│ │ │ ├── sockfilt.c
│ │ │ ├── sws.c
│ │ │ ├── testpart.c
│ │ │ ├── tftp.h
│ │ │ ├── tftpd.c
│ │ │ ├── util.c
│ │ │ └── util.h
│ │ ├── serverhelp.pm
│ │ ├── smbserver.py
│ │ ├── sshhelp.pm
│ │ ├── sshserver.pl
│ │ ├── stunnel.pem
│ │ ├── symbol-scan.pl
│ │ ├── testcurl.1
│ │ ├── testcurl.pl
│ │ ├── tftpserver.pl
│ │ ├── unit/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile.am
│ │ │ ├── Makefile.in
│ │ │ ├── Makefile.inc
│ │ │ ├── README
│ │ │ ├── curlcheck.h
│ │ │ ├── unit1300.c
│ │ │ ├── unit1301.c
│ │ │ ├── unit1302.c
│ │ │ ├── unit1303.c
│ │ │ ├── unit1304.c
│ │ │ ├── unit1305.c
│ │ │ ├── unit1307.c
│ │ │ ├── unit1308.c
│ │ │ ├── unit1309.c
│ │ │ ├── unit1323.c
│ │ │ ├── unit1330.c
│ │ │ ├── unit1394.c
│ │ │ ├── unit1395.c
│ │ │ ├── unit1396.c
│ │ │ ├── unit1397.c
│ │ │ ├── unit1398.c
│ │ │ ├── unit1399.c
│ │ │ ├── unit1600.c
│ │ │ ├── unit1601.c
│ │ │ ├── unit1602.c
│ │ │ ├── unit1603.c
│ │ │ ├── unit1604.c
│ │ │ ├── unit1605.c
│ │ │ ├── unit1606.c
│ │ │ └── unit1607.c
│ │ ├── valgrind.pm
│ │ └── valgrind.supp
│ └── winbuild/
│ ├── BUILD.WINDOWS.txt
│ ├── Makefile.vc
│ ├── MakefileBuild.vc
│ └── gen_resp_file.bat
├── curlcpp/
│ ├── .gitignore
│ ├── CMake/
│ │ └── curlcppConfig.cmake.in
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── bii/
│ │ ├── layout.bii
│ │ ├── policies.bii
│ │ └── settings.bii
│ ├── biicode.conf
│ ├── include/
│ │ ├── cookie.h
│ │ ├── cookie_date.h
│ │ ├── cookie_datetime.h
│ │ ├── cookie_time.h
│ │ ├── curl_config.h
│ │ ├── curl_cookie.h
│ │ ├── curl_easy.h
│ │ ├── curl_easy_info.h
│ │ ├── curl_exception.h
│ │ ├── curl_form.h
│ │ ├── curl_global.h
│ │ ├── curl_header.h
│ │ ├── curl_info.h
│ │ ├── curl_interface.h
│ │ ├── curl_ios.h
│ │ ├── curl_multi.h
│ │ ├── curl_option.h
│ │ ├── curl_pair.h
│ │ ├── curl_receiver.h
│ │ ├── curl_sender.h
│ │ ├── curl_share.h
│ │ └── curl_utility.h
│ ├── src/
│ │ ├── CMakeLists.txt
│ │ ├── cookie.cpp
│ │ ├── cookie_date.cpp
│ │ ├── cookie_datetime.cpp
│ │ ├── cookie_time.cpp
│ │ ├── curl_cookie.cpp
│ │ ├── curl_easy.cpp
│ │ ├── curl_exception.cpp
│ │ ├── curl_form.cpp
│ │ ├── curl_global.cpp
│ │ ├── curl_header.cpp
│ │ ├── curl_info.cpp
│ │ ├── curl_multi.cpp
│ │ └── curl_share.cpp
│ └── test/
│ ├── cookie.cpp
│ ├── custom_request.cpp
│ ├── easy.cpp
│ ├── easy_info.cpp
│ ├── header.cpp
│ └── recv_header.cpp
├── date/
│ ├── LICENSE.txt
│ ├── README.md
│ ├── include/
│ │ └── date/
│ │ ├── chrono_io.h
│ │ ├── date.h
│ │ ├── ios.h
│ │ ├── ios.mm
│ │ ├── islamic.h
│ │ ├── iso_week.h
│ │ ├── julian.h
│ │ ├── ptz.h
│ │ ├── tz.h
│ │ └── tz_private.h
│ ├── src/
│ │ └── tz.cpp
│ └── tzdata/
│ ├── CONTRIBUTING
│ ├── LICENSE
│ ├── Makefile
│ ├── NEWS
│ ├── README
│ ├── africa
│ ├── antarctica
│ ├── asia
│ ├── australasia
│ ├── backward
│ ├── backzone
│ ├── calendars
│ ├── checklinks.awk
│ ├── checktab.awk
│ ├── etcetera
│ ├── europe
│ ├── factory
│ ├── iso3166.tab
│ ├── leap-seconds.list
│ ├── leapseconds
│ ├── leapseconds.awk
│ ├── northamerica
│ ├── pacificnew
│ ├── southamerica
│ ├── systemv
│ ├── theory.html
│ ├── version
│ ├── windowsZones.xml
│ ├── yearistype.sh
│ ├── zishrink.awk
│ ├── zone.tab
│ ├── zone1970.tab
│ └── zoneinfo2tdf.pl
├── nlohmannjson/
│ └── json.hpp
├── pugixml/
│ ├── pugiconfig.hpp
│ ├── pugixml.cpp
│ └── pugixml.hpp
├── sqlite/
│ ├── sqlite3.c
│ └── sqlite3.h
├── sqlite_modern_cpp/
│ ├── sqlite_modern_cpp/
│ │ ├── errors.h
│ │ ├── lists/
│ │ │ └── error_codes.h
│ │ ├── log.h
│ │ ├── sqlcipher.h
│ │ └── utility/
│ │ ├── function_traits.h
│ │ ├── uncaught_exceptions.h
│ │ ├── utf16_utf8.h
│ │ └── variant.h
│ └── sqlite_modern_cpp.h
└── stduuid/
└── uuid.h
Copy disabled (too large)
Download .txt
Showing preview only (13,359K chars total). Download the full file to get everything.
SYMBOL INDEX (28282 symbols across 2483 files)
FILE: Chapter01/problem_01/main.cpp
function main (line 3) | int main()
FILE: Chapter01/problem_02/main.cpp
function gcd (line 3) | unsigned int gcd(unsigned int const a, unsigned int const b)
function gcd2 (line 8) | unsigned int gcd2(unsigned int a, unsigned int b)
function main (line 20) | int main()
FILE: Chapter01/problem_03/main.cpp
function gcd (line 5) | int gcd(int const a, int const b)
function lcm (line 10) | int lcm(int const a, int const b)
function lcmr (line 17) | int lcmr(InputIt first, InputIt last)
function main (line 22) | int main()
FILE: Chapter01/problem_04/main.cpp
function is_prime (line 3) | bool is_prime(int const num)
function main (line 27) | int main()
FILE: Chapter01/problem_05/main.cpp
function is_prime (line 3) | bool is_prime(int const num)
function main (line 27) | int main()
FILE: Chapter01/problem_06/main.cpp
function sum_proper_divisors (line 4) | int sum_proper_divisors(int const number)
function print_abundant (line 18) | void print_abundant(int const limit)
function main (line 32) | int main()
FILE: Chapter01/problem_07/main.cpp
function sum_proper_divisors (line 5) | int sum_proper_divisors(int const number)
function print_amicables (line 19) | void print_amicables(int const limit)
function print_amicables_once (line 37) | void print_amicables_once(int const limit)
function main (line 61) | int main()
FILE: Chapter01/problem_08/main.cpp
type perf_timer (line 9) | struct perf_timer
method Time (line 12) | static Time duration(F&& f, Args... args)
function print_narcissistics_1 (line 24) | void print_narcissistics_1(bool const printResults)
function print_narcissistics_2 (line 43) | void print_narcissistics_2(bool const printResults)
function print_narcissistics_3 (line 63) | void print_narcissistics_3(int const limit, bool const printResults)
function main (line 87) | int main()
FILE: Chapter01/problem_09/main.cpp
function prime_factors (line 7) | std::vector<unsigned long long> prime_factors(unsigned long long n)
function main (line 34) | int main()
FILE: Chapter01/problem_10/main.cpp
function gray_encode (line 5) | unsigned int gray_encode(unsigned int const num)
function gray_decode (line 10) | unsigned int gray_decode(unsigned int gray)
function to_binary (line 19) | std::string to_binary(unsigned int value, int const digits)
function main (line 24) | int main()
FILE: Chapter01/problem_11/main.cpp
function to_roman (line 5) | std::string to_roman(unsigned int value)
function main (line 31) | int main()
FILE: Chapter01/problem_12/main.cpp
function longest_collatz_uncached (line 4) | std::pair<unsigned long long, long> longest_collatz_uncached(unsigned lo...
function longest_collatz (line 32) | std::pair<unsigned long long, long> longest_collatz(unsigned long long c...
function main (line 63) | int main()
FILE: Chapter01/problem_13/main.cpp
function compute_pi (line 9) | double compute_pi(E& engine, D& dist,
function main (line 25) | int main()
FILE: Chapter01/problem_14/main.cpp
function validate_isbn_10 (line 8) | bool validate_isbn_10(std::string_view isbn)
function main (line 27) | int main()
FILE: Chapter02/problem_15/main.cpp
class ipv4 (line 6) | class ipv4
method ipv4 (line 10) | constexpr ipv4() :data{ {0} } {}
method ipv4 (line 11) | constexpr ipv4(unsigned char const a, unsigned char const b,
method ipv4 (line 14) | explicit constexpr ipv4(unsigned long a) :
method ipv4 (line 19) | ipv4(ipv4 const & other) noexcept : data(other.data) {}
method ipv4 (line 20) | ipv4& operator=(ipv4 const & other) noexcept
method to_string (line 26) | std::string to_string() const
method to_ulong (line 33) | constexpr unsigned long to_ulong() const noexcept
function main (line 65) | int main()
FILE: Chapter02/problem_16/main.cpp
class ipv4 (line 5) | class ipv4
method ipv4 (line 9) | constexpr ipv4() :data{ { 0 } } {}
method ipv4 (line 10) | constexpr ipv4(unsigned char const a, unsigned char const b,
method ipv4 (line 13) | explicit constexpr ipv4(unsigned long a) :
method ipv4 (line 18) | ipv4(ipv4 const & other) noexcept : data(other.data) {}
method ipv4 (line 19) | ipv4& operator=(ipv4 const & other) noexcept
method to_ulong (line 25) | constexpr unsigned long to_ulong() const noexcept
method to_string (line 34) | std::string to_string() const
method is_loopback (line 41) | constexpr bool is_loopback() const noexcept
method is_unspecified (line 46) | constexpr bool is_unspecified() const noexcept
method is_class_a (line 51) | constexpr bool is_class_a() const noexcept
method is_class_b (line 56) | constexpr bool is_class_b() const noexcept
method is_class_c (line 61) | constexpr bool is_class_c() const noexcept
method is_multicast (line 66) | constexpr bool is_multicast() const noexcept
method ipv4 (line 71) | ipv4& operator++()
method ipv4 (line 77) | ipv4& operator++(int)
function main (line 137) | int main()
FILE: Chapter02/problem_17/main.cpp
class array2d (line 7) | class array2d
method array2d (line 15) | array2d() :arr(R*C) {}
method array2d (line 16) | explicit array2d(std::initializer_list<T> l):arr(l) {}
method T (line 17) | constexpr T* data() noexcept { return arr.data(); }
method T (line 18) | constexpr T const * data() const noexcept { return arr.data(); }
method T (line 20) | constexpr T& at(size_t const r, size_t const c)
method T (line 25) | constexpr T const & at(size_t const r, size_t const c) const
method T (line 30) | constexpr T& operator() (size_t const r, size_t const c)
method T (line 35) | constexpr T const & operator() (size_t const r, size_t const c) const
method empty (line 40) | constexpr bool empty() const noexcept
method size (line 45) | constexpr size_t size(int const rank) const
method fill (line 52) | void fill(T const & value)
method swap (line 57) | void swap(array2d & other) noexcept
method const_iterator (line 62) | const_iterator begin() const { return arr.data(); }
method const_iterator (line 63) | const_iterator end() const { return arr.data() + arr.size(); }
method iterator (line 64) | iterator begin() { return arr.data(); }
method iterator (line 65) | iterator end() { return arr.data() + arr.size(); }
function print_array2d (line 69) | void print_array2d(array2d<T, R, C> const & arr)
function main (line 82) | int main()
FILE: Chapter02/problem_18/main.cpp
function T (line 5) | T minimum(T const a, T const b) { return a < b ? a : b; }
function T1 (line 8) | T1 minimum(T1 a, T... args)
function T (line 14) | T minimumc(Compare comp, T const a, T const b) { return comp(a, b) ? a :...
function T1 (line 17) | T1 minimumc(Compare comp, T1 a, T... args)
function main (line 22) | int main()
FILE: Chapter02/problem_19/main.cpp
function push_back (line 8) | void push_back(C& c, Args&&... args)
function main (line 13) | int main()
FILE: Chapter02/problem_20/main.cpp
function contains (line 8) | bool contains(C const & c, T const & value)
function contains_any (line 14) | bool contains_any(C const & c, T &&... value)
function contains_all (line 20) | bool contains_all(C const & c, T &&... value)
function contains_none (line 26) | bool contains_none(C const & c, T &&... value)
function main (line 31) | int main()
FILE: Chapter02/problem_21/main.cpp
type SECURITY_ATTRIBUTES (line 16) | struct SECURITY_ATTRIBUTES
type OVERLAPPED (line 23) | struct OVERLAPPED
function CloseHandle (line 39) | int CloseHandle(HANDLE hObject) {return 0;}
function HANDLE (line 40) | HANDLE CreateFile(char const *,
function ReadFile (line 49) | int ReadFile(HANDLE,
class unique_handle (line 71) | class unique_handle
method unique_handle (line 78) | unique_handle(unique_handle const &) = delete;
method unique_handle (line 79) | unique_handle& operator=(unique_handle const &) = delete;
method unique_handle (line 81) | explicit unique_handle(pointer value = Traits::invalid()) noexcept
method unique_handle (line 85) | unique_handle(unique_handle && other) noexcept
method unique_handle (line 89) | unique_handle& operator=(unique_handle && other) noexcept
method pointer (line 109) | pointer get() const noexcept
method pointer (line 114) | pointer release() noexcept
method reset (line 121) | bool reset(pointer value = Traits::invalid()) noexcept
method swap (line 132) | void swap(unique_handle<Traits> & other) noexcept
function swap (line 139) | void swap(unique_handle<Traits> & left,
type null_handle_traits (line 161) | struct null_handle_traits
method pointer (line 165) | static pointer invalid() noexcept
method close (line 170) | static void close(pointer value) noexcept
type invalid_handle_traits (line 176) | struct invalid_handle_traits
method pointer (line 180) | static pointer invalid() noexcept
method close (line 185) | static void close(pointer value) noexcept
function function_that_throws (line 194) | void function_that_throws()
function bad_handle_example (line 199) | void bad_handle_example()
function good_handle_example (line 236) | void good_handle_example()
function main (line 267) | int main()
FILE: Chapter02/problem_22/main.cpp
function are_equal (line 4) | bool are_equal(double const d1, double const d2, double const epsilon = ...
type temperature (line 9) | namespace temperature
type scale (line 11) | enum class scale
class quantity (line 19) | class quantity
method quantity (line 23) | constexpr explicit quantity(double const a) : amount(a) {}
type conversion_traits (line 77) | struct conversion_traits
method convert (line 79) | static double convert(double const value) = delete;
type conversion_traits<scale::celsius, scale::kelvin> (line 83) | struct conversion_traits<scale::celsius, scale::kelvin>
method convert (line 85) | static double convert(double const value)
type conversion_traits<scale::kelvin, scale::celsius> (line 92) | struct conversion_traits<scale::kelvin, scale::celsius>
method convert (line 94) | static double convert(double const value)
type conversion_traits<scale::celsius, scale::fahrenheit> (line 101) | struct conversion_traits<scale::celsius, scale::fahrenheit>
method convert (line 103) | static double convert(double const value)
type conversion_traits<scale::fahrenheit, scale::celsius> (line 110) | struct conversion_traits<scale::fahrenheit, scale::celsius>
method convert (line 112) | static double convert(double const value)
type conversion_traits<scale::fahrenheit, scale::kelvin> (line 119) | struct conversion_traits<scale::fahrenheit, scale::kelvin>
method convert (line 121) | static double convert(double const value)
type conversion_traits<scale::kelvin, scale::fahrenheit> (line 128) | struct conversion_traits<scale::kelvin, scale::fahrenheit>
method convert (line 130) | static double convert(double const value)
function temperature_cast (line 137) | constexpr quantity<R> temperature_cast(quantity<S> const q)
type temperature_scale_literals (line 142) | namespace temperature_scale_literals
function main (line 161) | int main()
FILE: Chapter03/problem_23/main.cpp
function bytes_to_hexstr (line 9) | std::string bytes_to_hexstr(Iter begin, Iter end, bool const uppercase =...
function bytes_to_hexstr (line 20) | std::string bytes_to_hexstr(C const & c, bool const uppercase = false)
function main (line 25) | int main()
FILE: Chapter03/problem_24/main.cpp
function hexchar_to_int (line 8) | unsigned char hexchar_to_int(char const ch)
function hexstr_to_bytes (line 16) | std::vector<unsigned char> hexstr_to_bytes(std::string_view str)
function main (line 29) | int main()
FILE: Chapter03/problem_25/main.cpp
function capitalize (line 13) | tstring<Elem> capitalize(tstring<Elem> const & text)
function main (line 37) | int main()
FILE: Chapter03/problem_26/main.cpp
function join_strings (line 10) | std::string join_strings(Iter begin, Iter end, char const * const separa...
function join_strings (line 20) | std::string join_strings(C const & c, char const * const separator)
function main (line 26) | int main()
FILE: Chapter03/problem_27/main.cpp
function split (line 13) | inline std::vector<tstring<Elem>> split(tstring<Elem> text, Elem const d...
function split (line 27) | inline std::vector<tstring<Elem>> split(tstring<Elem> text, tstring<Elem...
function main (line 45) | int main()
FILE: Chapter03/problem_28/main.cpp
function longest_palindrome (line 6) | std::string longest_palindrome(std::string_view str)
function main (line 52) | int main()
FILE: Chapter03/problem_29/main.cpp
function validate_license_plate_format (line 6) | bool validate_license_plate_format(std::string_view str)
function extract_license_plate_numbers (line 12) | std::vector<std::string> extract_license_plate_numbers(std::string const...
function main (line 28) | int main()
FILE: Chapter03/problem_30/main.cpp
type uri_parts (line 14) | struct uri_parts
function parse_uri (line 24) | optional<uri_parts> parse_uri(std::string uri)
function main (line 52) | int main()
FILE: Chapter03/problem_31/main.cpp
function transform_date (line 6) | std::string transform_date(std::string_view text)
function main (line 12) | int main()
FILE: Chapter04/problem_32/main.cpp
function number_of_digits (line 5) | unsigned int number_of_digits(unsigned int const i)
function print_pascal_triangle (line 10) | void print_pascal_triangle(int const n)
function main (line 27) | int main()
FILE: Chapter04/problem_33/main.cpp
type procstatus (line 7) | enum class procstatus {suspended, running}
function status_to_string (line 8) | std::string status_to_string(procstatus const status)
type platforms (line 14) | enum class platforms {p32bit, p64bit}
function platform_to_string (line 15) | std::string platform_to_string(platforms const platform)
type procinfo (line 21) | struct procinfo
function print_processes (line 31) | void print_processes(std::vector<procinfo> processes)
function main (line 54) | int main()
FILE: Chapter04/problem_34/main.cpp
function remove_empty_lines (line 17) | void remove_empty_lines(fs::path filepath)
function main (line 45) | int main()
FILE: Chapter04/problem_35/main.cpp
function get_directory_size (line 18) | std::uintmax_t get_directory_size(
function main (line 42) | int main()
FILE: Chapter04/problem_36/main.cpp
function is_older_than (line 20) | bool is_older_than(fs::path const & path, Duration const duration)
function remove_files_older_than (line 33) | void remove_files_older_than(fs::path const & path, Duration const durat...
function main (line 58) | int main()
FILE: Chapter04/problem_37/main.cpp
function find_files (line 21) | std::vector<fs::directory_entry> find_files(
function main (line 40) | int main()
FILE: Chapter04/problem_38/main.cpp
class logger (line 19) | class logger
method logger (line 24) | logger()
method persist (line 43) | void persist(fs::path const & path)
method logger (line 50) | logger& operator<<(std::string_view message)
function main (line 57) | int main()
FILE: Chapter05/problem_39/main.cpp
type perf_timer (line 7) | struct perf_timer
method Time (line 10) | static Time duration(F&& f, Args... args)
function f (line 24) | void f()
function g (line 30) | void g(int const a, int const b)
function main (line 36) | int main()
FILE: Chapter05/problem_40/main.cpp
function number_of_days (line 4) | inline int number_of_days(
function number_of_days (line 14) | inline int number_of_days(date::sys_days const & first,
function main (line 20) | int main()
FILE: Chapter05/problem_41/main.cpp
function week_day (line 6) | unsigned int week_day(int const y, unsigned int const m, unsigned int co...
function main (line 18) | int main()
FILE: Chapter05/problem_42/main.cpp
function calendar_week (line 5) | unsigned int calendar_week(int const y, unsigned int const m, unsigned i...
function day_of_year (line 17) | int day_of_year(int const y, unsigned int const m, unsigned int const d)
function main (line 27) | int main()
FILE: Chapter05/problem_43/main.cpp
type user (line 11) | struct user
method user (line 16) | user(std::string_view name, std::string_view zone)
function print_meeting_times (line 23) | void print_meeting_times(
function main (line 42) | int main()
FILE: Chapter05/problem_44/main.cpp
function week_day (line 6) | unsigned int week_day(int const y, unsigned int const m, unsigned int co...
function print_month_calendar (line 18) | void print_month_calendar(int const y, unsigned int m)
function main (line 46) | int main()
FILE: Chapter06/problem_45/main.cpp
class priority_queue (line 8) | class priority_queue
method empty (line 15) | bool empty() const noexcept { return data.empty(); }
method size_type (line 16) | size_type size() const noexcept { return data.size(); }
method push (line 18) | void push(value_type const & value)
method pop (line 24) | void pop()
method const_reference (line 30) | const_reference top() const { return data.front(); }
method swap (line 32) | void swap(priority_queue& other) noexcept
function swap (line 44) | void swap(
function main (line 51) | int main()
FILE: Chapter06/problem_46/main.cpp
class circular_buffer (line 6) | class circular_buffer
method circular_buffer (line 76) | circular_buffer() = delete;
method circular_buffer (line 78) | explicit circular_buffer(size_t const size) :data_(size)
method clear (line 81) | bool clear() noexcept { head_ = -1; size_ = 0; }
method empty (line 83) | bool empty() const noexcept { return size_ == 0; }
method full (line 84) | bool full() const noexcept { return size_ == data_.size(); }
method capacity (line 85) | size_t capacity() const noexcept { return data_.size(); }
method size (line 86) | size_t size() const noexcept { return size_; }
method push (line 88) | void push(T const item)
method T (line 95) | T pop()
method const_iterator (line 104) | const_iterator begin() const
method const_iterator (line 109) | const_iterator end() const
method next_pos (line 119) | size_t next_pos() const noexcept { return size_ == 0 ? 0 : (head_ + 1)...
method first_pos (line 120) | size_t first_pos() const noexcept { return size_ == 0 ? 0 : (head_ + d...
class circular_buffer_iterator (line 9) | class circular_buffer_iterator
method circular_buffer_iterator (line 19) | circular_buffer_iterator(circular_buffer<T> const & buf, size_t const ...
method self_type (line 23) | self_type & operator++ ()
method self_type (line 32) | self_type operator++ (int)
method const_reference (line 50) | const_reference operator* () const
method const_reference (line 55) | const_reference operator-> () const
method compatible (line 61) | bool compatible(self_type const & other) const
class circular_buffer (line 72) | class circular_buffer
method circular_buffer (line 76) | circular_buffer() = delete;
method circular_buffer (line 78) | explicit circular_buffer(size_t const size) :data_(size)
method clear (line 81) | bool clear() noexcept { head_ = -1; size_ = 0; }
method empty (line 83) | bool empty() const noexcept { return size_ == 0; }
method full (line 84) | bool full() const noexcept { return size_ == data_.size(); }
method capacity (line 85) | size_t capacity() const noexcept { return data_.size(); }
method size (line 86) | size_t size() const noexcept { return size_; }
method push (line 88) | void push(T const item)
method T (line 95) | T pop()
method const_iterator (line 104) | const_iterator begin() const
method const_iterator (line 109) | const_iterator end() const
method next_pos (line 119) | size_t next_pos() const noexcept { return size_ == 0 ? 0 : (head_ + 1)...
method first_pos (line 120) | size_t first_pos() const noexcept { return size_ == 0 ? 0 : (head_ + d...
function print (line 127) | void print(circular_buffer<T> & buf)
function main (line 138) | int main()
FILE: Chapter06/problem_47/main.cpp
class double_buffer (line 10) | class double_buffer
method double_buffer (line 17) | explicit double_buffer(size_t const size) :
method size (line 21) | size_t size() const noexcept { return rdbuf.size(); }
method write (line 23) | void write(T const * const ptr, size_t const size)
method read (line 32) | void read(Output it) const
method pointer (line 38) | pointer data() const
method reference (line 44) | reference operator[](size_t const pos)
method const_reference (line 50) | const_reference operator[](size_t const pos) const
method swap (line 56) | void swap(double_buffer other)
function print_buffer (line 69) | void print_buffer(double_buffer<T> const & buf)
function main (line 75) | int main()
FILE: Chapter06/problem_48/main.cpp
function find_most_frequent (line 7) | std::vector<std::pair<T, size_t>> find_most_frequent(std::vector<T> cons...
function main (line 31) | int main()
FILE: Chapter06/problem_49/main.cpp
function analyze_text (line 9) | std::map<char, double> analyze_text(std::string_view text)
function main (line 37) | int main()
FILE: Chapter06/problem_50/main.cpp
function starts_with (line 7) | bool starts_with(std::string_view str, std::string_view prefix)
function filter_numbers (line 13) | std::vector<std::string> filter_numbers(
function filter_numbers (line 30) | std::vector<std::string> filter_numbers(
function main (line 40) | int main()
FILE: Chapter06/problem_51/main.cpp
function starts_with (line 6) | bool starts_with(std::string_view str, std::string_view prefix)
function normalize_phone_numbers (line 11) | void normalize_phone_numbers(
function main (line 42) | int main()
FILE: Chapter06/problem_52/main.cpp
function print_permutations (line 5) | void print_permutations(std::string str)
function next_permutation (line 15) | void next_permutation(std::string str, std::string perm)
function print_permutations_recursive (line 29) | void print_permutations_recursive(std::string str)
function main (line 34) | int main()
FILE: Chapter06/problem_53/main.cpp
type movie (line 8) | struct movie
function truncated_mean (line 15) | double truncated_mean(std::vector<int> values, double const percentage)
function print_movie_ratings (line 33) | void print_movie_ratings(std::vector<movie> const & movies)
function main (line 44) | int main()
FILE: Chapter06/problem_54/main.cpp
function pairwise (line 5) | void pairwise(Input begin, Input end, Output result)
function pairwise (line 17) | std::vector<std::pair<T, T>> pairwise(std::vector<T> const & range)
function main (line 26) | int main()
FILE: Chapter06/problem_55/main.cpp
function zip (line 5) | void zip(
function zip (line 19) | std::vector<std::pair<T, U>> zip(
function main (line 33) | int main()
FILE: Chapter06/problem_56/main.cpp
function select (line 9) | std::vector<R> select(std::vector<T, A> const & c, F&& f)
type book (line 20) | struct book
function main (line 27) | int main()
FILE: Chapter06/problem_57/main.cpp
function RandomIt (line 13) | RandomIt partition(RandomIt first, RandomIt last)
function RandomIt (line 31) | RandomIt partitionc(RandomIt first, RandomIt last, Compare comp)
function quicksorti (line 49) | void quicksorti(RandomIt first, RandomIt last)
function quicksort (line 68) | void quicksort(RandomIt first, RandomIt last)
function quicksort (line 79) | void quicksort(RandomIt first, RandomIt last, Compare comp)
function print (line 90) | void print(RandomIt first, RandomIt last)
function main (line 99) | int main()
FILE: Chapter06/problem_58/main.cpp
class graph (line 11) | class graph
method add_edge (line 19) | void add_edge(Vertex const source, Vertex const target, Weight const w...
method vertex_count (line 25) | size_t vertex_count() const { return adjacency_list.size(); }
method verteces (line 26) | std::vector<Vertex> verteces() const
method neighbor_list_type (line 34) | neighbor_list_type const & neighbors(Vertex const & v) const
function shortest_path (line 50) | void shortest_path(
function build_path (line 95) | void build_path(
function build_path (line 109) | std::vector<Vertex> build_path(
function print_path (line 119) | void print_path(std::vector<Vertex> const & path)
function make_graph (line 129) | graph<char, double> make_graph()
function make_graph_wiki (line 150) | graph<char, double> make_graph_wiki()
function make_graph_map (line 166) | graph<std::string, double> make_graph_map()
function main (line 186) | int main()
FILE: Chapter06/problem_59/main.cpp
class weasel (line 10) | class weasel
method weasel (line 19) | weasel(std::string_view t) :
method run (line 31) | void run(int const copies)
method weasel (line 56) | weasel() = delete;
method fitness (line 58) | double fitness(std::string_view candidate)
method mutate (line 70) | std::string mutate(std::string_view parent, double const rate)
method make_random (line 82) | std::string make_random()
function main (line 93) | int main()
FILE: Chapter06/problem_60/main.cpp
class universe (line 8) | class universe
method universe (line 11) | universe() = delete;
type seed (line 14) | enum class seed
method universe (line 22) | universe(size_t const width, size_t const height):
method run (line 32) | void run(
method next_generation (line 54) | void next_generation()
method reset_display (line 78) | void reset_display()
method display (line 85) | void display()
method initialize (line 99) | void initialize(seed const s)
method reset (line 151) | void reset()
method count_alive (line 163) | int count_alive() { return 0; }
method count_alive (line 166) | auto count_alive(T1 s, T... ts) { return s + count_alive(ts...); }
method count_neighbors (line 168) | int count_neighbors(size_t const row, size_t const col)
function main (line 207) | int main()
FILE: Chapter07/problem_61/main.cpp
function alter (line 12) | std::vector<T> alter(std::vector<T> data, F&& f)
function palter (line 22) | std::vector<T> palter(std::vector<T> data, F&& f)
function ptransform (line 56) | void ptransform(RandomAccessIterator begin, RandomAccessIterator end, F&...
function palter2 (line 86) | std::vector<T> palter2(std::vector<T> data, F&& f)
function main (line 95) | int main()
FILE: Chapter07/problem_62/main.cpp
function sprocess (line 12) | auto sprocess(Iterator begin, Iterator end, F&& f)
function smin (line 18) | auto smin(Iterator begin, Iterator end)
function smax (line 25) | auto smax(Iterator begin, Iterator end)
function pprocess (line 32) | auto pprocess(Iterator begin, Iterator end, F&& f)
function pmin (line 66) | auto pmin(Iterator begin, Iterator end)
function pmax (line 73) | auto pmax(Iterator begin, Iterator end)
function main (line 79) | int main()
FILE: Chapter07/problem_63/main.cpp
function sprocess (line 12) | auto sprocess(Iterator begin, Iterator end, F&& f)
function smin (line 18) | auto smin(Iterator begin, Iterator end)
function smax (line 25) | auto smax(Iterator begin, Iterator end)
function pprocess (line 32) | auto pprocess(Iterator begin, Iterator end, F&& f)
function pmin (line 69) | auto pmin(Iterator begin, Iterator end)
function pmax (line 76) | auto pmax(Iterator begin, Iterator end)
function main (line 82) | int main()
FILE: Chapter07/problem_64/main.cpp
function RandomIt (line 11) | RandomIt partition(RandomIt first, RandomIt last)
function RandomIt (line 29) | RandomIt partitionc(RandomIt first, RandomIt last, Compare comp)
function quicksort (line 47) | void quicksort(RandomIt first, RandomIt last)
function quicksort (line 58) | void quicksort(RandomIt first, RandomIt last, Compare comp)
function pquicksort (line 69) | void pquicksort(RandomIt first, RandomIt last)
function main (line 92) | int main()
FILE: Chapter07/problem_65/main.cpp
class logger (line 10) | class logger
method logger (line 13) | logger() {}
method logger (line 15) | static logger& instance()
method logger (line 21) | logger(logger const &) = delete;
method logger (line 22) | logger& operator=(logger const &) = delete;
method log (line 24) | void log(std::string_view message)
function main (line 34) | int main()
FILE: Chapter07/problem_66/main.cpp
class logger (line 13) | class logger
method logger (line 16) | logger() {}
method logger (line 18) | static logger& instance()
method logger (line 24) | logger(logger const &) = delete;
method logger (line 25) | logger& operator=(logger const &) = delete;
method log (line 27) | void log(std::string_view message)
class ticketing_machine (line 37) | class ticketing_machine
method ticketing_machine (line 40) | ticketing_machine(int const start) : last_ticket(start), first_ticket(...
method next (line 42) | int next() { return last_ticket++; }
method last (line 43) | int last() const { return last_ticket - 1; }
method reset (line 44) | void reset() { last_ticket = first_ticket; }
class customer (line 50) | class customer
method customer (line 53) | customer(int const no) : number(no)
method ticket_number (line 56) | int ticket_number() const noexcept { return number; }
function main (line 69) | int main()
FILE: Chapter08/problem_67/main.cpp
class password_validator (line 6) | class password_validator
class length_validator (line 13) | class length_validator final : public password_validator
method length_validator (line 16) | length_validator(unsigned int min_length):
method validate (line 20) | virtual bool validate(std::string_view password) override
class password_validator_decorator (line 29) | class password_validator_decorator : public password_validator
method password_validator_decorator (line 32) | explicit password_validator_decorator(std::unique_ptr<password_validat...
method validate (line 37) | virtual bool validate(std::string_view password) override
class digit_password_validator (line 46) | class digit_password_validator final : public password_validator_decorator
method digit_password_validator (line 49) | explicit digit_password_validator(std::unique_ptr<password_validator> ...
method validate (line 54) | virtual bool validate(std::string_view password) override
class case_password_validator (line 63) | class case_password_validator final : public password_validator_decorator
method case_password_validator (line 66) | explicit case_password_validator(std::unique_ptr<password_validator> v...
method validate (line 71) | virtual bool validate(std::string_view password) override
class symbol_password_validator (line 89) | class symbol_password_validator final : public password_validator_decorator
method symbol_password_validator (line 92) | explicit symbol_password_validator(std::unique_ptr<password_validator>...
method validate (line 97) | virtual bool validate(std::string_view password) override
function main (line 106) | int main()
FILE: Chapter08/problem_68/main.cpp
class password_generator (line 8) | class password_generator
class basic_password_generator (line 21) | class basic_password_generator : public password_generator
method basic_password_generator (line 25) | explicit basic_password_generator(size_t const len) noexcept : len(len...
method generate (line 27) | virtual std::string generate() override
method add (line 30) | virtual void add(std::unique_ptr<password_generator>) override
method length (line 33) | virtual size_t length() const noexcept override final
class digit_generator (line 37) | class digit_generator : public basic_password_generator
method digit_generator (line 40) | explicit digit_generator(size_t const len) noexcept
method allowed_chars (line 43) | virtual std::string allowed_chars() const override
class symbol_generator (line 47) | class symbol_generator : public basic_password_generator
method symbol_generator (line 50) | explicit symbol_generator(size_t const len) noexcept
method allowed_chars (line 53) | virtual std::string allowed_chars() const override
class upper_letter_generator (line 57) | class upper_letter_generator : public basic_password_generator
method upper_letter_generator (line 60) | explicit upper_letter_generator(size_t const len) noexcept
method allowed_chars (line 63) | virtual std::string allowed_chars() const override
class lower_letter_generator (line 67) | class lower_letter_generator : public basic_password_generator
method lower_letter_generator (line 70) | explicit lower_letter_generator(size_t const len) noexcept
method allowed_chars (line 73) | virtual std::string allowed_chars() const override
class composite_password_generator (line 77) | class composite_password_generator : public password_generator
method allowed_chars (line 79) | virtual std::string allowed_chars() const override
method length (line 81) | virtual size_t length() const override
method composite_password_generator (line 84) | composite_password_generator()
method generate (line 92) | virtual std::string generate() override
method add (line 109) | virtual void add(std::unique_ptr<password_generator> generator) override
function main (line 120) | int main()
FILE: Chapter08/problem_69/main.cpp
type sex_type (line 13) | enum class sex_type {female, male}
class social_number_generator (line 15) | class social_number_generator
method social_number_generator (line 22) | social_number_generator(int const min, int const max):ud(min, max)
method generate (line 32) | std::string generate(
class southeria_social_number_generator (line 65) | class southeria_social_number_generator final : public social_number_gen...
method southeria_social_number_generator (line 68) | southeria_social_number_generator():
method sex_digit (line 74) | virtual int sex_digit(sex_type const sex) const noexcept override
method next_random (line 80) | virtual int next_random(unsigned const year, unsigned const month, uns...
method modulo_value (line 95) | virtual int modulo_value() const noexcept override
class northeria_social_number_generator (line 101) | class northeria_social_number_generator final : public social_number_gen...
method northeria_social_number_generator (line 104) | northeria_social_number_generator():
method sex_digit (line 110) | virtual int sex_digit(sex_type const sex) const noexcept override
method next_random (line 116) | virtual int next_random(unsigned const year, unsigned const month, uns...
method modulo_value (line 131) | virtual int modulo_value() const noexcept override
class social_number_generator_factory (line 137) | class social_number_generator_factory
method social_number_generator_factory (line 140) | social_number_generator_factory()
method social_number_generator (line 146) | social_number_generator* get_generator(std::string_view country) const
function main (line 159) | int main()
FILE: Chapter08/problem_70/main.cpp
class role (line 6) | class role
class employee_role (line 13) | class employee_role : public role
method approval_limit (line 16) | virtual double approval_limit() const noexcept override
class team_manager_role (line 22) | class team_manager_role : public role
method approval_limit (line 25) | virtual double approval_limit() const noexcept override
class department_manager_role (line 31) | class department_manager_role : public role
method approval_limit (line 34) | virtual double approval_limit() const noexcept override
class president_role (line 40) | class president_role : public role
method approval_limit (line 43) | virtual double approval_limit() const noexcept override
type expense (line 49) | struct expense
method expense (line 54) | expense(double const amount, std::string_view desc):
class employee (line 60) | class employee
method employee (line 63) | explicit employee(std::string_view name, std::unique_ptr<role> ownrole) :
method set_direct_manager (line 68) | void set_direct_manager(std::shared_ptr<employee> manager)
method approve (line 73) | void approve(expense const & e)
function main (line 88) | int main()
FILE: Chapter08/problem_71/main.cpp
type collection_action (line 7) | enum class collection_action
function to_string (line 15) | std::string to_string(collection_action const action)
type collection_change_notification (line 26) | struct collection_change_notification
class collection_observer (line 32) | class collection_observer
class observable_vector (line 40) | class observable_vector final
method observable_vector (line 44) | observable_vector() noexcept(noexcept(Allocator()))
method observable_vector (line 46) | explicit observable_vector( const Allocator& alloc ) noexcept
method observable_vector (line 48) | observable_vector( size_type count, const T& value, const Allocator& a...
method observable_vector (line 50) | explicit observable_vector( size_type count, const Allocator& alloc = ...
method observable_vector (line 52) | observable_vector(observable_vector&& other) noexcept
method observable_vector (line 54) | observable_vector(observable_vector&& other, const Allocator& alloc)
method observable_vector (line 56) | observable_vector(std::initializer_list<T> init,
method observable_vector (line 60) | observable_vector(InputIt first, InputIt last, const Allocator& alloc ...
method observable_vector (line 63) | observable_vector& operator=(observable_vector const & other)
method observable_vector (line 84) | observable_vector& operator=(observable_vector&& other)
method push_back (line 105) | void push_back(T&& value)
method pop_back (line 121) | void pop_back()
method clear (line 137) | void clear() noexcept
method size_type (line 153) | size_type size() const noexcept
method empty (line 158) | [[nodiscard]] bool empty() const noexcept
method add_observer (line 163) | void add_observer(collection_observer * const o)
method remove_observer (line 168) | void remove_observer(collection_observer const * const o)
class observer (line 179) | class observer : public collection_observer
method collection_changed (line 182) | virtual void collection_changed(collection_change_notification notific...
function main (line 195) | int main()
FILE: Chapter08/problem_72/main.cpp
function are_equal (line 8) | inline bool are_equal(double const d1, double const d2, double const dif...
type discount_type (line 13) | struct discount_type
type fixed_discount (line 19) | struct fixed_discount final : public discount_type
method fixed_discount (line 21) | explicit fixed_discount(double const discount) noexcept : discount(dis...
method discount_percent (line 22) | virtual double discount_percent(double const, double const) const noex...
type volume_discount (line 28) | struct volume_discount final : public discount_type
method volume_discount (line 30) | explicit volume_discount(double const quantity, double const discount)...
method discount_percent (line 31) | virtual double discount_percent(double const, double const quantity) c...
type price_discount (line 38) | struct price_discount : public discount_type
method price_discount (line 40) | explicit price_discount(double const price, double const discount) noe...
method discount_percent (line 41) | virtual double discount_percent(double const price, double const quant...
type amount_discount (line 48) | struct amount_discount : public discount_type
method amount_discount (line 50) | explicit amount_discount(double const price, double const discount) no...
method discount_percent (line 51) | virtual double discount_percent(double const price, double const) cons...
type customer (line 58) | struct customer
type article_unit (line 64) | enum class article_unit
type article (line 69) | struct article
type order_line (line 78) | struct order_line
type order (line 85) | struct order
type price_calculator (line 93) | struct price_calculator
type cumulative_price_calculator (line 98) | struct cumulative_price_calculator : public price_calculator
method calculate_price (line 100) | virtual double calculate_price(order const & o) override
function main (line 127) | int main()
FILE: Chapter09/problem_73/main.cpp
function serialize (line 8) | void serialize(movie_list const & movies, std::string_view filepath)
function movie_list (line 49) | movie_list deserialize(std::string_view filepath)
function main (line 93) | int main()
FILE: Chapter09/problem_74/main.cpp
function main (line 7) | int main()
FILE: Chapter09/problem_75/main.cpp
function to_json (line 10) | void to_json(json& j, casting_role const & c)
function to_json (line 15) | void to_json(json& j, movie const & m)
function serialize (line 28) | void serialize(movie_list const & movies, std::string_view filepath)
function main (line 39) | int main()
FILE: Chapter09/problem_76/main.cpp
function movie_list (line 11) | movie_list deserialize(std::string_view filepath)
function main (line 65) | int main()
FILE: Chapter09/problem_77/main.cpp
function print_pdf (line 21) | void print_pdf(
function main (line 124) | int main()
FILE: Chapter09/problem_78/main.cpp
function get_images (line 22) | std::vector<std::string> get_images(fs::path const & dirpath)
function print_pdf (line 35) | void print_pdf(
function main (line 85) | int main()
FILE: Chapter10/problem_79/main.cpp
function find_in_archive (line 23) | std::vector<std::string> find_in_archive(
function main (line 60) | int main()
FILE: Chapter10/problem_80/main.cpp
function compress (line 22) | void compress(
function ensure_directory_exists (line 53) | void ensure_directory_exists(fs::path const & dir)
function decompress (line 66) | void decompress(
function main (line 112) | int main()
FILE: Chapter10/problem_81/main.cpp
function compress (line 22) | void compress(
function ensure_directory_exists (line 64) | void ensure_directory_exists(fs::path const & dir)
function decompress (line 77) | void decompress(
function main (line 127) | int main()
FILE: Chapter10/problem_82/main.cpp
function create_flag (line 7) | void create_flag(int const width, int const height, std::string_view fil...
function main (line 22) | int main()
FILE: Chapter10/problem_83/main.cpp
function create_image (line 9) | void create_image(
function main (line 67) | int main()
FILE: Chapter10/problem_84/main.cpp
type ean13 (line 11) | struct ean13
method ean13 (line 14) | ean13(std::string_view code)
method ean13 (line 29) | ean13(unsigned long long code)
method to_array (line 34) | std::array<unsigned char, 13> to_array() const
method to_string (line 42) | std::string to_string() const noexcept
method get_crc (line 48) | unsigned char get_crc(std::string_view code)
type ean13_barcode_generator (line 63) | struct ean13_barcode_generator
method create (line 65) | void create(ean13 const & code,
method draw_digit (line 102) | int draw_digit(
function main (line 156) | int main()
FILE: Chapter10/problem_85/main.cpp
function print_movie (line 8) | void print_movie(movie const & m)
function get_directors (line 24) | std::vector<std::string> get_directors(sqlite3_int64 const movie_id,
function get_writers (line 40) | std::vector<std::string> get_writers(sqlite3_int64 const movie_id,
function get_cast (line 56) | std::vector<casting_role> get_cast(sqlite3_int64 const movie_id,
function movie_list (line 72) | movie_list get_movies(sqlite::database & db)
function main (line 94) | int main()
FILE: Chapter10/problem_85/moviesdb.sql
type movies (line 1) | create table movies(
type persons (line 6) | create table persons(name text not null)
type directors (line 8) | create table directors(
type writers (line 12) | create table writers(
type casting (line 16) | create table casting(
FILE: Chapter10/problem_86/main.cpp
function split (line 10) | std::vector<std::string> split(std::string text, char const delimiter)
function print_movie (line 22) | void print_movie(movie const & m)
function movie (line 38) | movie read_movie()
function get_directors (line 72) | std::vector<std::string> get_directors(sqlite3_int64 const movie_id,
function get_writers (line 88) | std::vector<std::string> get_writers(sqlite3_int64 const movie_id,
function get_cast (line 104) | std::vector<casting_role> get_cast(sqlite3_int64 const movie_id,
function movie_list (line 120) | movie_list get_movies(sqlite::database & db)
function sqlite_int64 (line 142) | sqlite_int64 get_person_id(std::string const & name, sqlite::database & db)
function sqlite_int64 (line 153) | sqlite_int64 insert_person(std::string_view name, sqlite::database & db)
function insert_directors (line 160) | void insert_directors(sqlite_int64 const movie_id,
function insert_writers (line 177) | void insert_writers(sqlite_int64 const movie_id,
function insert_cast (line 194) | void insert_cast(sqlite_int64 const movie_id,
function insert_movie (line 212) | void insert_movie(movie& m, sqlite::database & db)
function main (line 239) | int main()
FILE: Chapter10/problem_87/main.cpp
function movie_list (line 34) | movie_list get_movies(std::string_view title, sqlite::database & db)
function add_media (line 57) | bool add_media(sqlite_int64 const movieid,
function media_list (line 76) | media_list get_media(sqlite_int64 const movieid,
function delete_media (line 109) | bool delete_media(sqlite_int64 const mediaid,
function split (line 122) | std::vector<std::string> split(std::string text, char const delimiter)
function starts_with (line 134) | inline bool starts_with(std::string_view text, std::string_view part)
function trim (line 139) | inline std::string trim(std::string_view text)
function load_image (line 146) | std::vector<char> load_image(std::string_view filepath)
function run_find (line 163) | void run_find(std::string_view line, sqlite::database & db)
function run_list (line 184) | void run_list(std::string_view line, sqlite::database & db)
function run_add (line 212) | void run_add(std::string_view line, sqlite::database & db)
function run_del (line 234) | void run_del(std::string_view line, sqlite::database & db)
function print_commands (line 249) | void print_commands()
function main (line 260) | int main()
FILE: Chapter10/problem_87/moviesdb.sql
type media (line 1) | create table media(
FILE: Chapter11/problem_88/main.cpp
function caesar_encrypt (line 6) | std::string caesar_encrypt(std::string_view text, int const shift)
function caesar_decrypt (line 21) | std::string caesar_decrypt(std::string_view text, int const shift)
function main (line 36) | int main()
FILE: Chapter11/problem_89/main.cpp
function caesar_encrypt (line 6) | std::string caesar_encrypt(std::string_view text, int const shift)
function caesar_decrypt (line 21) | std::string caesar_decrypt(std::string_view text, int const shift)
function build_vigenere_table (line 37) | std::string build_vigenere_table()
function vigenere_encrypt (line 48) | std::string vigenere_encrypt(std::string_view text, std::string_view key)
function vigenere_decrypt (line 66) | std::string vigenere_decrypt(std::string_view text, std::string_view key)
function main (line 90) | int main()
FILE: Chapter11/problem_90/main.cpp
class encoder (line 7) | class encoder
method to_base64 (line 34) | std::string to_base64(std::vector<unsigned char> const & data)
method from_base64 (line 73) | std::vector<unsigned char> from_base64(std::string data)
type converter (line 128) | struct converter
method from_string (line 130) | static std::vector<unsigned char> from_string(std::string_view data)
method from_range (line 141) | static std::string from_range(std::vector<unsigned char> const & data)
function main (line 153) | int main()
FILE: Chapter11/problem_91/main.cpp
type user (line 10) | struct user
function get_hash (line 19) | std::string get_hash(std::string_view password)
function main (line 39) | int main()
FILE: Chapter11/problem_92/main.cpp
function compute_hash (line 27) | std::string compute_hash(fs::path const & filepath)
function compute_hash_ex (line 66) | std::string compute_hash_ex(fs::path const & filepath)
function main (line 81) | int main()
FILE: Chapter11/problem_93/main.cpp
function encrypt_file (line 23) | void encrypt_file(
function encrypt_file (line 39) | void encrypt_file(
function decrypt_file (line 51) | void decrypt_file(
function decrypt_file (line 67) | void decrypt_file(
function main (line 79) | int main()
FILE: Chapter11/problem_94/main.cpp
function encode (line 24) | void encode(
function encode_private_key (line 34) | void encode_private_key(
function encode_public_key (line 44) | void encode_public_key(
function decode (line 54) | void decode(
function decode_private_key (line 64) | void decode_private_key(
function decode_public_key (line 74) | void decode_public_key(
function rsa_sign_file (line 84) | void rsa_sign_file(
function rsa_verify_file (line 105) | bool rsa_verify_file(
function generate_keys (line 136) | void generate_keys(
function main (line 157) | int main()
FILE: Chapter12/problem_95/main.cpp
function get_ip_address (line 9) | std::vector<std::string> get_ip_address(std::string_view hostname)
function main (line 30) | int main()
FILE: Chapter12/problem_96c/main.cpp
function run_client (line 7) | void run_client(std::string_view host, short const port)
function main (line 43) | int main()
FILE: Chapter12/problem_96s/main.cpp
function fizzbuzz (line 7) | std::string fizzbuzz(int const number)
class session (line 21) | class session : public std::enable_shared_from_this<session>
method session (line 24) | session(asio::ip::tcp::socket socket) :
method start (line 29) | void start()
method read (line 35) | void read()
method write (line 55) | void write(std::string_view response)
class server (line 74) | class server
method server (line 77) | server(asio::io_context& context, short const port)
method accept (line 87) | void accept()
function run_server (line 104) | void run_server(short const port)
function main (line 120) | int main()
FILE: Chapter12/problem_97/main.cpp
type exchange_info (line 14) | struct exchange_info
function from_json (line 25) | void from_json(const json& jdata, exchange_info& info)
function get_json_document (line 34) | std::stringstream get_json_document(std::string_view url)
function main (line 57) | int main()
FILE: Chapter12/problem_98/main.cpp
class imap_connection (line 8) | class imap_connection
method imap_connection (line 11) | imap_connection(
method get_folders (line 20) | std::string get_folders()
method examine_folder (line 42) | std::string examine_folder(std::string_view folder)
method fetch_unread_uids (line 65) | std::vector<unsigned int> fetch_unread_uids(std::string_view folder)
method fetch_email (line 95) | std::string fetch_email(std::string_view folder, unsigned int uid)
method setup_easy (line 119) | void setup_easy(curl::curl_easy& easy)
function main (line 137) | int main()
FILE: Chapter12/problem_99/main.cpp
function utf8_to_utf16 (line 16) | std::wstring utf8_to_utf16(std::string_view text)
function utf16_to_utf8 (line 23) | std::string utf16_to_utf8(std::wstring_view wtext)
class text_translator (line 30) | class text_translator
method text_translator (line 33) | text_translator(std::string_view endpoint,
method translate_text (line 38) | std::wstring translate_text(
method deserialize_result (line 84) | std::string deserialize_result(std::string_view text)
function set_utf8_conversion (line 100) | void set_utf8_conversion(std::wostream& stream)
function main (line 108) | int main()
FILE: Chapter12/problem_9a/main.cpp
function load_image (line 14) | std::vector<uint8_t> load_image(std::string_view filepath)
type face_rectangle (line 31) | struct face_rectangle
type face_point (line 39) | struct face_point
type face_landmarks (line 45) | struct face_landmarks
type face_emotion (line 76) | struct face_emotion
type face_attributes (line 88) | struct face_attributes
type face_info (line 95) | struct face_info
type face_error (line 103) | struct face_error
type face_error_response (line 109) | struct face_error_response
function from_json (line 116) | void from_json(const json& jdata, face_rectangle& rect)
function from_json (line 124) | void from_json(const json& jdata, face_point& point)
function from_json (line 130) | void from_json(const json& jdata, face_landmarks& mark)
function from_json (line 161) | void from_json(const json& jdata, face_emotion& emo)
function from_json (line 173) | void from_json(const json& jdata, face_attributes& attr)
function from_json (line 180) | void from_json(const json& jdata, face_info& info)
function from_json (line 188) | void from_json(const json& jdata, face_error& error)
function from_json (line 194) | void from_json(const json& jdata, face_error_response& response)
class face_manager (line 199) | class face_manager
method face_manager (line 202) | face_manager(std::string_view endpoint,
method face_detect_response (line 207) | face_detect_response detect_from_file(std::string_view path)
method face_detect_response (line 254) | face_detect_response parse_detect_response(
function main (line 289) | int main()
FILE: include/movies.h
type casting_role (line 14) | struct casting_role
type movie (line 20) | struct movie
type media (line 32) | struct media
FILE: libs/PDF-Writer/FreeType/builds/amiga/src/base/ftdebug.c
type Library (line 62) | struct Library
type DOSIFace (line 64) | struct DOSIFace
function FT_Message (line 77) | FT_BASE_DEF( void )
function FT_Panic (line 92) | FT_BASE_DEF( void )
function FT_Trace_Get_Count (line 130) | FT_BASE_DEF( FT_Int )
function FT_Trace_Get_Name (line 139) | FT_BASE_DEF( const char * )
function ft_debug_init (line 170) | FT_BASE_DEF( void )
function ft_debug_init (line 249) | FT_BASE_DEF( void )
function FT_Trace_Get_Count (line 256) | FT_BASE_DEF( FT_Int )
function FT_Trace_Get_Name (line 263) | FT_BASE_DEF( const char * )
FILE: libs/PDF-Writer/FreeType/builds/amiga/src/base/ftsystem.c
type ExecIFace (line 51) | struct ExecIFace
type DOSIFace (line 52) | struct DOSIFace
type Library (line 54) | struct Library
type Library (line 55) | struct Library
type SysFile (line 63) | struct SysFile
function APTR (line 73) | APTR
function Free_VecPooled (line 87) | void
function ft_alloc (line 140) | FT_CALLBACK_DEF( void* )
function ft_realloc (line 172) | FT_CALLBACK_DEF( void* )
function ft_free (line 212) | FT_CALLBACK_DEF( void )
function ft_amiga_stream_close (line 256) | FT_CALLBACK_DEF( void )
function ft_amiga_stream_io (line 291) | FT_CALLBACK_DEF( unsigned long )
function FT_Stream_Open (line 380) | FT_BASE_DEF( FT_Error )
function FT_New_Memory (line 474) | FT_BASE_DEF( FT_Memory )
function FT_Done_Memory (line 514) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/builds/mac/ftmac.c
type ResourceIndex (line 164) | typedef short ResourceIndex;
function FT_GetFile_From_Mac_Name (line 178) | FT_EXPORT_DEF( FT_Error )
function FT_GetFile_From_Mac_Name (line 192) | FT_EXPORT_DEF( FT_Error )
function OSStatus (line 286) | static OSStatus
function FT_Error (line 308) | static FT_Error
function FT_GetFilePath_From_Mac_ATS_Name (line 357) | FT_EXPORT_DEF( FT_Error )
function FT_GetFilePath_From_Mac_ATS_Name (line 373) | FT_EXPORT_DEF( FT_Error )
function FT_GetFile_From_Mac_ATS_Name (line 398) | FT_EXPORT_DEF( FT_Error )
function FT_GetFile_From_Mac_ATS_Name (line 413) | FT_EXPORT_DEF( FT_Error )
function ft_FSp_stream_close (line 441) | FT_CALLBACK_DEF( void )
function ft_FSp_stream_io (line 452) | FT_CALLBACK_DEF( unsigned long )
function OSErr (line 474) | static OSErr
function OSErr (line 530) | static OSErr
function OSErr (line 571) | static OSErr
function OSType (line 615) | static OSType
function create_lwfn_name (line 654) | static void
function count_faces_sfnt (line 684) | static short
function count_faces_scalable (line 695) | static short
function parse_fond (line 725) | static void
function FT_Error (line 833) | static FT_Error
function count_faces (line 921) | static short
function FT_Error (line 961) | static FT_Error
function FT_Error (line 1078) | static FT_Error
function FT_Error (line 1110) | static FT_Error
function FT_Error (line 1179) | static FT_Error
function FT_New_Face_From_FOND (line 1224) | FT_EXPORT_DEF( FT_Error )
function FT_Error (line 1339) | static FT_Error
function FT_New_Face (line 1380) | FT_EXPORT_DEF( FT_Error )
function FT_New_Face_From_FSRef (line 1421) | FT_EXPORT_DEF( FT_Error )
function FT_New_Face_From_FSSpec (line 1477) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/builds/unix/ftconfig.h
type FT_Int16 (line 183) | typedef signed short FT_Int16;
type FT_UInt16 (line 184) | typedef unsigned short FT_UInt16;
type FT_Int32 (line 188) | typedef signed int FT_Int32;
type FT_UInt32 (line 189) | typedef unsigned int FT_UInt32;
type FT_Int32 (line 193) | typedef signed long FT_Int32;
type FT_UInt32 (line 194) | typedef unsigned long FT_UInt32;
type FT_Fast (line 204) | typedef int FT_Fast;
type FT_UFast (line 205) | typedef unsigned int FT_UFast;
type FT_Fast (line 209) | typedef long FT_Fast;
type FT_UFast (line 210) | typedef unsigned long FT_UFast;
function FT_Int32 (line 324) | static __inline__ FT_Int32
function FT_Int32 (line 351) | static __inline__ FT_Int32
FILE: libs/PDF-Writer/FreeType/builds/unix/ftsystem.c
function ft_alloc (line 96) | FT_CALLBACK_DEF( void* )
function ft_realloc (line 126) | FT_CALLBACK_DEF( void* )
function ft_free (line 152) | FT_CALLBACK_DEF( void )
function ft_close_stream_by_munmap (line 194) | FT_CALLBACK_DEF( void )
function ft_close_stream_by_free (line 216) | FT_CALLBACK_DEF( void )
function FT_Stream_Open (line 229) | FT_BASE_DEF( FT_Error )
function FT_New_Memory (line 385) | FT_BASE_DEF( FT_Memory )
function FT_Done_Memory (line 409) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/builds/vms/ftconfig.h
type FT_Int16 (line 127) | typedef signed short FT_Int16;
type FT_UInt16 (line 128) | typedef unsigned short FT_UInt16;
type FT_Int32 (line 132) | typedef signed int FT_Int32;
type FT_UInt32 (line 133) | typedef unsigned int FT_UInt32;
type FT_Int32 (line 137) | typedef signed long FT_Int32;
type FT_UInt32 (line 138) | typedef unsigned long FT_UInt32;
type FT_Fast (line 147) | typedef int FT_Fast;
type FT_UFast (line 148) | typedef unsigned int FT_UFast;
type FT_Fast (line 152) | typedef long FT_Fast;
type FT_UFast (line 153) | typedef unsigned long FT_UFast;
FILE: libs/PDF-Writer/FreeType/builds/vms/ftsystem.c
function ft_alloc (line 95) | FT_CALLBACK_DEF( void* )
function ft_realloc (line 125) | FT_CALLBACK_DEF( void* )
function ft_free (line 151) | FT_CALLBACK_DEF( void )
function ft_close_stream (line 193) | FT_CALLBACK_DEF( void )
function FT_Stream_Open (line 206) | FT_BASE_DEF( FT_Error )
function FT_New_Memory (line 294) | FT_BASE_DEF( FT_Memory )
function FT_Done_Memory (line 318) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/builds/win32/ftdebug.c
function FT_Message (line 58) | FT_BASE_DEF( void )
function FT_Panic (line 74) | FT_BASE_DEF( void )
function ft_debug_init (line 126) | FT_BASE_DEF( void )
function ft_debug_init (line 202) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/builds/wince/ftdebug.c
function OutputDebugStringEx (line 58) | void
function FT_Message (line 73) | FT_BASE_DEF( void )
function FT_Panic (line 89) | FT_BASE_DEF( void )
function ft_debug_init (line 141) | FT_BASE_DEF( void )
function ft_debug_init (line 224) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/include/freetype/config/ftconfig.h
type FT_Int16 (line 162) | typedef signed short FT_Int16;
type FT_UInt16 (line 173) | typedef unsigned short FT_UInt16;
type FT_Int32 (line 190) | typedef signed XXX FT_Int32;
type FT_UInt32 (line 201) | typedef unsigned XXX FT_UInt32;
type FT_Int32 (line 209) | typedef signed int FT_Int32;
type FT_UInt32 (line 210) | typedef unsigned int FT_UInt32;
type FT_Int32 (line 214) | typedef signed long FT_Int32;
type FT_UInt32 (line 215) | typedef unsigned long FT_UInt32;
type FT_Fast (line 225) | typedef int FT_Fast;
type FT_UFast (line 226) | typedef unsigned int FT_UFast;
type FT_Fast (line 230) | typedef long FT_Fast;
type FT_UFast (line 231) | typedef unsigned long FT_UFast;
function FT_Int32 (line 342) | static __inline__ FT_Int32
function FT_Int32 (line 370) | static __inline__ FT_Int32
FILE: libs/PDF-Writer/FreeType/include/freetype/freetype.h
type FT_Glyph_Metrics_ (line 244) | struct FT_Glyph_Metrics_
type FT_Bitmap_Size (line 298) | typedef struct FT_Bitmap_Size_
type FT_LibraryRec_ (line 339) | struct FT_LibraryRec_
type FT_ModuleRec_ (line 352) | struct FT_ModuleRec_
type FT_DriverRec_ (line 364) | struct FT_DriverRec_
type FT_RendererRec_ (line 378) | struct FT_RendererRec_
type FT_FaceRec_ (line 403) | struct FT_FaceRec_
type FT_SizeRec_ (line 433) | struct FT_SizeRec_
type FT_GlyphSlotRec_ (line 454) | struct FT_GlyphSlotRec_
type FT_CharMapRec_ (line 486) | struct FT_CharMapRec_
type FT_Encoding (line 659) | typedef enum FT_Encoding_
type FT_CharMapRec (line 740) | typedef struct FT_CharMapRec_
type FT_Face_InternalRec_ (line 771) | struct FT_Face_InternalRec_
type FT_FaceRec (line 916) | typedef struct FT_FaceRec_
type FT_Size_InternalRec_ (line 1306) | struct FT_Size_InternalRec_
type FT_Size_Metrics (line 1364) | typedef struct FT_Size_Metrics_
type FT_SizeRec (line 1399) | typedef struct FT_SizeRec_
type FT_SubGlyphRec_ (line 1425) | struct FT_SubGlyphRec_
type FT_Slot_InternalRec_ (line 1437) | struct FT_Slot_InternalRec_
type FT_GlyphSlotRec (line 1609) | typedef struct FT_GlyphSlotRec_
type FT_Parameter (line 1767) | typedef struct FT_Parameter_
type FT_Open_Args (line 1833) | typedef struct FT_Open_Args_
type FT_Size_Request_Type (line 2149) | typedef enum FT_Size_Request_Type_
type FT_Size_RequestRec (line 2189) | typedef struct FT_Size_RequestRec_
type FT_Size_RequestRec_ (line 2208) | struct FT_Size_RequestRec_
type FT_Render_Mode (line 2744) | typedef enum FT_Render_Mode_
type FT_Kerning_Mode (line 2820) | typedef enum FT_Kerning_Mode_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftautoh.h
type FT_Prop_GlyphToScriptMap (line 242) | typedef struct FT_Prop_GlyphToScriptMap_
type FT_Prop_IncreaseXHeight (line 334) | typedef struct FT_Prop_IncreaseXHeight_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftbdf.h
type BDF_PropertyType_ (line 74) | enum BDF_PropertyType_
type BDF_PropertyRec_ (line 93) | struct BDF_PropertyRec_
type BDF_PropertyRec (line 117) | typedef struct BDF_PropertyRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftcache.h
type FT_Error (line 209) | typedef FT_Error
type FTC_ManagerRec_ (line 261) | struct FTC_ManagerRec_
type FTC_NodeRec_ (line 281) | struct FTC_NodeRec_
type FTC_ScalerRec (line 436) | typedef struct FTC_ScalerRec_
type FTC_ScalerRec_ (line 456) | struct FTC_ScalerRec_
type FTC_CMapCacheRec_ (line 571) | struct FTC_CMapCacheRec_
type FTC_ImageTypeRec (line 678) | typedef struct FTC_ImageTypeRec_
type FTC_ImageTypeRec_ (line 697) | struct FTC_ImageTypeRec_
type FTC_ImageCacheRec_ (line 730) | struct FTC_ImageCacheRec_
type FTC_SBitRec_ (line 871) | struct FTC_SBitRec_
type FTC_SBitRec (line 909) | typedef struct FTC_SBitRec_
type FTC_SBitCacheRec_ (line 938) | struct FTC_SBitCacheRec_
type FTC_FontRec (line 1093) | typedef struct FTC_FontRec_
type FTC_FontRec (line 1116) | typedef FTC_FontRec* FTC_Font;
FILE: libs/PDF-Writer/FreeType/include/freetype/ftglyph.h
type FT_Glyph_Class_ (line 69) | struct FT_Glyph_Class_
type FT_GlyphRec_ (line 87) | struct FT_GlyphRec_
type FT_GlyphRec (line 108) | typedef struct FT_GlyphRec_
type FT_BitmapGlyphRec_ (line 127) | struct FT_BitmapGlyphRec_
type FT_BitmapGlyphRec (line 160) | typedef struct FT_BitmapGlyphRec_
type FT_OutlineGlyphRec_ (line 179) | struct FT_OutlineGlyphRec_
type FT_OutlineGlyphRec (line 208) | typedef struct FT_OutlineGlyphRec_
type FT_Glyph_BBox_Mode (line 317) | typedef enum FT_Glyph_BBox_Mode_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftimage.h
type FT_Vector (line 75) | typedef struct FT_Vector_
type FT_BBox (line 116) | typedef struct FT_BBox_
type FT_Pixel_Mode (line 172) | typedef enum FT_Pixel_Mode_
type FT_Palette_Mode (line 235) | typedef enum FT_Palette_Mode_
type FT_Bitmap (line 310) | typedef struct FT_Bitmap_
type FT_Outline (line 383) | typedef struct FT_Outline_
type FT_Outline_Funcs (line 691) | typedef struct FT_Outline_Funcs_
type FT_Glyph_Format (line 778) | typedef enum FT_Glyph_Format_
type FT_RasterRec_ (line 862) | struct FT_RasterRec_
type FT_Span (line 891) | typedef struct FT_Span_
type FT_Raster_Params (line 1104) | typedef struct FT_Raster_Params_
type FT_Raster_Funcs (line 1288) | typedef struct FT_Raster_Funcs_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftincrem.h
type FT_IncrementalRec_ (line 84) | struct FT_IncrementalRec_
type FT_Incremental_MetricsRec (line 115) | typedef struct FT_Incremental_MetricsRec_
type FT_Incremental_MetricsRec_ (line 134) | struct FT_Incremental_MetricsRec_
type FT_Error (line 178) | typedef FT_Error
type FT_Error (line 240) | typedef FT_Error
type FT_Incremental_FuncsRec (line 269) | typedef struct FT_Incremental_FuncsRec_
type FT_Incremental_InterfaceRec (line 314) | typedef struct FT_Incremental_InterfaceRec_
type FT_Incremental_InterfaceRec (line 331) | typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface;
FILE: libs/PDF-Writer/FreeType/include/freetype/ftlcdfil.h
type FT_LcdFilter_ (line 94) | enum FT_LcdFilter_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftmm.h
type FT_MM_Axis_ (line 73) | struct FT_MM_Axis_
type FT_Multi_Master (line 103) | typedef struct FT_Multi_Master_
type FT_Var_Axis (line 140) | typedef struct FT_Var_Axis_
type FT_Var_Named_Style (line 170) | typedef struct FT_Var_Named_Style_
type FT_MM_Var (line 210) | typedef struct FT_MM_Var_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftmodapi.h
type FT_Pointer (line 106) | typedef FT_Pointer FT_Module_Interface;
type FT_Error (line 120) | typedef FT_Error
type FT_Module_Interface (line 152) | typedef FT_Module_Interface
type FT_Module_Class (line 186) | typedef struct FT_Module_Class_
type FT_TrueTypeEngineType (line 593) | typedef enum FT_TrueTypeEngineType_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftoutln.h
function FT_BEGIN_HEADER (line 34) | FT_BEGIN_HEADER
FILE: libs/PDF-Writer/FreeType/include/freetype/ftrender.h
type FT_Error (line 57) | typedef FT_Error
type FT_Error (line 61) | typedef FT_Error
type FT_Glyph_Class_ (line 74) | struct FT_Glyph_Class_
type FT_Error (line 87) | typedef FT_Error
type FT_Error (line 93) | typedef FT_Error
type FT_Error (line 106) | typedef FT_Error
type FT_Renderer_Class (line 144) | typedef struct FT_Renderer_Class_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftsnames.h
type FT_SfntName_ (line 98) | struct FT_SfntName_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftstroke.h
type FT_StrokerRec_ (line 60) | struct FT_StrokerRec_
type FT_Stroker_LineJoin (line 109) | typedef enum FT_Stroker_LineJoin_
type FT_Stroker_LineCap (line 142) | typedef enum FT_Stroker_LineCap_
type FT_StrokerBorder (line 176) | typedef enum FT_StrokerBorder_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftsystem.h
type FT_MemoryRec_ (line 66) | struct FT_MemoryRec_
type FT_MemoryRec_ (line 171) | struct FT_MemoryRec_
type FT_StreamRec_ (line 196) | struct FT_StreamRec_
type FT_StreamDesc (line 209) | typedef union FT_StreamDesc_
type FT_StreamRec (line 321) | typedef struct FT_StreamRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/fttypes.h
type FT_FWord (line 116) | typedef signed short FT_FWord;
type FT_UFWord (line 128) | typedef unsigned short FT_UFWord;
type FT_Char (line 139) | typedef signed char FT_Char;
type FT_Byte (line 150) | typedef unsigned char FT_Byte;
type FT_Byte (line 161) | typedef const FT_Byte* FT_Bytes;
type FT_UInt32 (line 172) | typedef FT_UInt32 FT_Tag;
type FT_String (line 183) | typedef char FT_String;
type FT_Short (line 194) | typedef signed short FT_Short;
type FT_UShort (line 205) | typedef unsigned short FT_UShort;
type FT_Int (line 216) | typedef signed int FT_Int;
type FT_UInt (line 227) | typedef unsigned int FT_UInt;
type FT_Long (line 238) | typedef signed long FT_Long;
type FT_ULong (line 249) | typedef unsigned long FT_ULong;
type FT_F2Dot14 (line 260) | typedef signed short FT_F2Dot14;
type FT_F26Dot6 (line 272) | typedef signed long FT_F26Dot6;
type FT_Fixed (line 284) | typedef signed long FT_Fixed;
type FT_Error (line 296) | typedef int FT_Error;
type FT_Offset (line 320) | typedef size_t FT_Offset;
type ft_ptrdiff_t (line 333) | typedef ft_ptrdiff_t FT_PtrDist;
type FT_UnitVector (line 350) | typedef struct FT_UnitVector_
type FT_Matrix (line 381) | typedef struct FT_Matrix_
type FT_Data (line 402) | typedef struct FT_Data_
type FT_Generic (line 455) | typedef struct FT_Generic_
type FT_ListNodeRec_ (line 511) | struct FT_ListNodeRec_
type FT_ListRec_ (line 522) | struct FT_ListRec_
type FT_ListNodeRec (line 540) | typedef struct FT_ListNodeRec_
type FT_ListRec (line 563) | typedef struct FT_ListRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/ftwinfnt.h
type FT_WinFNT_HeaderRec (line 183) | typedef struct FT_WinFNT_HeaderRec_
type FT_WinFNT_HeaderRec_ (line 233) | struct FT_WinFNT_HeaderRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/autohint.h
type FT_AutoHinterRec_ (line 80) | struct FT_AutoHinterRec_
type FT_Error (line 174) | typedef FT_Error
type FT_AutoHinter_InterfaceRec (line 190) | typedef struct FT_AutoHinter_InterfaceRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftdebug.h
type FT_Trace (line 57) | typedef enum FT_Trace_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftdriver.h
type FT_Error (line 41) | typedef FT_Error
type FT_Error (line 48) | typedef FT_Error
type FT_Error (line 55) | typedef FT_Error
type FT_Error (line 59) | typedef FT_Error
type FT_Error (line 65) | typedef FT_Error
type FT_Error (line 72) | typedef FT_Error
type FT_Error (line 79) | typedef FT_Error
type FT_UInt (line 86) | typedef FT_UInt
type FT_Long (line 90) | typedef FT_Long
type FT_Error (line 95) | typedef FT_Error
type FT_Error (line 102) | typedef FT_Error
type FT_Error (line 107) | typedef FT_Error
type FT_Driver_ClassRec (line 182) | typedef struct FT_Driver_ClassRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftgloadr.h
type FT_GlyphLoaderRec_ (line 43) | struct FT_GlyphLoaderRec_
type FT_SubGlyphRec (line 57) | typedef struct FT_SubGlyphRec_
type FT_GlyphLoadRec (line 68) | typedef struct FT_GlyphLoadRec_
type FT_GlyphLoaderRec (line 79) | typedef struct FT_GlyphLoaderRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftmemory.h
function T (line 69) | T*
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftobjs.h
type FT_CMapRec_ (line 125) | struct FT_CMapRec_
type FT_CMap_ClassRec_ (line 128) | struct FT_CMap_ClassRec_
type FT_CMapRec (line 131) | typedef struct FT_CMapRec_
type FT_Error (line 149) | typedef FT_Error
type FT_UInt (line 156) | typedef FT_UInt
type FT_UInt (line 160) | typedef FT_UInt
type FT_UInt (line 164) | typedef FT_UInt
type FT_Bool (line 170) | typedef FT_Bool
type FT_UInt32 (line 175) | typedef FT_UInt32 *
type FT_UInt32 (line 179) | typedef FT_UInt32 *
type FT_UInt32 (line 184) | typedef FT_UInt32 *
type FT_CMap_ClassRec (line 190) | typedef struct FT_CMap_ClassRec_
type FT_Face_InternalRec (line 353) | typedef struct FT_Face_InternalRec_
type FT_GlyphSlot_InternalRec (line 411) | typedef struct FT_Slot_InternalRec_
type FT_Size_InternalRec (line 436) | typedef struct FT_Size_InternalRec_
type FT_ModuleRec (line 473) | typedef struct FT_ModuleRec_
type FT_RendererRec (line 692) | typedef struct FT_RendererRec_
type FT_DriverRec (line 749) | typedef struct FT_DriverRec_
type FT_LibraryRec (line 858) | typedef struct FT_LibraryRec_
type FT_Error (line 908) | typedef FT_Error
type FT_UInt (line 914) | typedef FT_UInt
type FT_Error (line 1346) | typedef FT_Error
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftpic.h
type FT_PIC_Container (line 34) | typedef struct FT_PIC_Container_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftrfork.h
type FT_RFork_Ref (line 44) | typedef struct FT_RFork_Ref_
type FT_Error (line 52) | typedef FT_Error
type FT_RFork_Rule (line 59) | typedef enum FT_RFork_Rule_ {
type ft_raccess_guess_rec (line 77) | typedef struct ft_raccess_guess_rec_ {
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftserv.h
type FT_ServiceDescRec (line 158) | typedef struct FT_ServiceDescRec_
type FT_ServiceDescRec (line 165) | typedef const FT_ServiceDescRec* FT_ServiceDesc;
type FT_ServiceCacheRec (line 568) | typedef struct FT_ServiceCacheRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftstream.h
type FT_Frame_Op (line 57) | typedef enum FT_Frame_Op_
type FT_Frame_Field (line 86) | typedef struct FT_Frame_Field_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/ftvalid.h
type FT_ValidatorRec_ (line 42) | struct FT_ValidatorRec_
type FT_ValidationLevel (line 70) | typedef enum FT_ValidationLevel_
type FT_ValidatorRec (line 80) | typedef struct FT_ValidatorRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/psaux.h
type PS_TableRec_ (line 42) | struct PS_TableRec_
type PS_Table_FuncsRec_ (line 43) | struct PS_Table_FuncsRec_
type PS_Table_FuncsRec (line 63) | typedef struct PS_Table_FuncsRec_
type PS_TableRec (line 117) | typedef struct PS_TableRec_
type PS_ParserRec_ (line 143) | struct PS_ParserRec_
type T1_TokenRec_ (line 145) | struct T1_TokenRec_
type T1_FieldRec_ (line 147) | struct T1_FieldRec_
type T1_TokenType (line 151) | typedef enum T1_TokenType_
type T1_TokenRec (line 166) | typedef struct T1_TokenRec_
type T1_FieldType (line 176) | typedef enum T1_FieldType_
type T1_FieldLocation (line 196) | typedef enum T1_FieldLocation_
type T1_FieldRec (line 220) | typedef struct T1_FieldRec_
type PS_Parser_FuncsRec_ (line 336) | struct PS_Parser_FuncsRec_
type PS_Parser_FuncsRec (line 338) | typedef struct PS_Parser_FuncsRec_
type PS_ParserRec (line 424) | typedef struct PS_ParserRec_
type T1_BuilderRec_ (line 446) | struct T1_BuilderRec_
type FT_Error (line 449) | typedef FT_Error
type FT_Error (line 459) | typedef FT_Error
type FT_Error (line 464) | typedef FT_Error
type FT_Error (line 467) | typedef FT_Error
type T1_Builder_FuncsRec_ (line 476) | struct T1_Builder_FuncsRec_
type T1_Builder_FuncsRec (line 478) | typedef struct T1_Builder_FuncsRec_
type T1_ParseState (line 501) | typedef enum T1_ParseState_
type T1_BuilderRec (line 559) | typedef struct T1_BuilderRec_
type T1_Decoder_ZoneRec (line 617) | typedef struct T1_Decoder_ZoneRec_
type T1_DecoderRec_ (line 626) | struct T1_DecoderRec_
type T1_Decoder_FuncsRec_ (line 627) | struct T1_Decoder_FuncsRec_
type FT_Error (line 630) | typedef FT_Error
type T1_Decoder_FuncsRec (line 635) | typedef struct T1_Decoder_FuncsRec_
type T1_DecoderRec (line 659) | typedef struct T1_DecoderRec_
type AFM_ParserRec_ (line 708) | struct AFM_ParserRec_
type AFM_Parser_FuncsRec (line 710) | typedef struct AFM_Parser_FuncsRec_
type AFM_StreamRec_ (line 727) | struct AFM_StreamRec_
type AFM_ParserRec (line 749) | typedef struct AFM_ParserRec_
type T1_CMap_ClassesRec_ (line 774) | struct T1_CMap_ClassesRec_
type T1_CMap_ClassesRec (line 776) | typedef struct T1_CMap_ClassesRec_
type PSAux_ServiceRec (line 794) | typedef struct PSAux_ServiceRec_
type PSAux_ServiceRec (line 815) | typedef PSAux_ServiceRec PSAux_Interface;
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/pshints.h
type PSH_GlobalsRec_ (line 41) | struct PSH_GlobalsRec_
type FT_Error (line 43) | typedef FT_Error
type FT_Error (line 48) | typedef FT_Error
type PSH_Globals_FuncsRec (line 59) | typedef struct PSH_Globals_FuncsRec_
type T1_HintsRec_ (line 104) | struct T1_HintsRec_
type T1_Hints_FuncsRec_ (line 117) | struct T1_Hints_FuncsRec_
type FT_Error (line 265) | typedef FT_Error
type FT_Error (line 304) | typedef FT_Error
type T1_Hints_FuncsRec (line 342) | typedef struct T1_Hints_FuncsRec_
type T2_HintsRec_ (line 391) | struct T2_HintsRec_
type T2_Hints_FuncsRec_ (line 404) | struct T2_Hints_FuncsRec_
type FT_Error (line 579) | typedef FT_Error
type FT_Error (line 618) | typedef FT_Error
type T2_Hints_FuncsRec (line 656) | typedef struct T2_Hints_FuncsRec_
type PSHinter_Interface (line 672) | typedef struct PSHinter_Interface_
type PSHinter_Interface (line 680) | typedef PSHinter_Interface* PSHinter_Service;
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svbdf.h
type FT_Error (line 31) | typedef FT_Error
type FT_Error (line 36) | typedef FT_Error
function FT_DEFINE_SERVICE (line 42) | FT_DEFINE_SERVICE( BDF )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svcid.h
type FT_Error (line 29) | typedef FT_Error
type FT_Error (line 34) | typedef FT_Error
type FT_Error (line 37) | typedef FT_Error
function FT_DEFINE_SERVICE (line 42) | FT_DEFINE_SERVICE( CID )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svgldict.h
type FT_Error (line 37) | typedef FT_Error
type FT_UInt (line 43) | typedef FT_UInt
function FT_DEFINE_SERVICE (line 48) | FT_DEFINE_SERVICE( GlyphDict )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svgxval.h
type FT_Error (line 40) | typedef FT_Error
type FT_Error (line 47) | typedef FT_Error
function FT_DEFINE_SERVICE (line 53) | FT_DEFINE_SERVICE( GXvalidate )
function FT_DEFINE_SERVICE (line 58) | FT_DEFINE_SERVICE( CKERNvalidate )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svkern.h
type FT_Error (line 31) | typedef FT_Error
function FT_DEFINE_SERVICE (line 37) | FT_DEFINE_SERVICE( Kerning )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svmm.h
type FT_Error (line 38) | typedef FT_Error
type FT_Error (line 42) | typedef FT_Error
type FT_Error (line 46) | typedef FT_Error
type FT_Error (line 51) | typedef FT_Error
type FT_Error (line 56) | typedef FT_Error
function FT_DEFINE_SERVICE (line 62) | FT_DEFINE_SERVICE( MultiMasters )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svotval.h
type FT_Error (line 31) | typedef FT_Error
function FT_DEFINE_SERVICE (line 41) | FT_DEFINE_SERVICE( OTvalidate )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svpfr.h
type FT_Error (line 32) | typedef FT_Error
type FT_Error (line 39) | typedef FT_Error
type FT_Error (line 45) | typedef FT_Error
function FT_DEFINE_SERVICE (line 51) | FT_DEFINE_SERVICE( PfrMetrics )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svpostnm.h
function FT_DEFINE_SERVICE (line 44) | FT_DEFINE_SERVICE( PsFontName )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svprop.h
type FT_Error (line 29) | typedef FT_Error
type FT_Error (line 34) | typedef FT_Error
function FT_DEFINE_SERVICE (line 40) | FT_DEFINE_SERVICE( Properties )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svpscmap.h
type FT_UInt32 (line 34) | typedef FT_UInt32
type PS_UniMap (line 54) | typedef struct PS_UniMap_
type PS_UnicodesRec_ (line 62) | struct PS_UnicodesRec_
type PS_UnicodesRec (line 64) | typedef struct PS_UnicodesRec_
type FT_Error (line 89) | typedef FT_Error
type FT_UInt (line 97) | typedef FT_UInt
type FT_UInt32 (line 101) | typedef FT_UInt32
function FT_DEFINE_SERVICE (line 106) | FT_DEFINE_SERVICE( PsCMaps )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svpsinfo.h
type FT_Error (line 32) | typedef FT_Error
type FT_Error (line 36) | typedef FT_Error
type FT_Int (line 40) | typedef FT_Int
type FT_Error (line 43) | typedef FT_Error
type FT_Long (line 47) | typedef FT_Long
function FT_DEFINE_SERVICE (line 55) | FT_DEFINE_SERVICE( PsInfo )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svsfnt.h
type FT_Error (line 39) | typedef FT_Error
type FT_Error (line 57) | typedef FT_Error
function FT_DEFINE_SERVICE (line 65) | FT_DEFINE_SERVICE( SFNT_Table )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svttcmap.h
type TT_CMapInfo (line 59) | typedef struct TT_CMapInfo_
type FT_Error (line 67) | typedef FT_Error
function FT_DEFINE_SERVICE (line 72) | FT_DEFINE_SERVICE( TTCMaps )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svtteng.h
function FT_DEFINE_SERVICE (line 39) | FT_DEFINE_SERVICE( TrueTypeEngine )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svttglyf.h
type FT_ULong (line 30) | typedef FT_ULong
function FT_DEFINE_SERVICE (line 35) | FT_DEFINE_SERVICE( TTGlyf )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/services/svwinfnt.h
type FT_Error (line 31) | typedef FT_Error
function FT_DEFINE_SERVICE (line 36) | FT_DEFINE_SERVICE( WinFnt )
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/sfnt.h
type FT_Error (line 102) | typedef FT_Error
type FT_Error (line 161) | typedef FT_Error
type FT_Error (line 191) | typedef FT_Error
type FT_Error (line 239) | typedef FT_Error
type FT_Error (line 275) | typedef FT_Error
type FT_Error (line 311) | typedef FT_Error
type FT_Error (line 356) | typedef FT_Error
type FT_Error (line 388) | typedef FT_Error
type FT_Error (line 419) | typedef FT_Error
type FT_Error (line 441) | typedef FT_Error
type FT_Error (line 468) | typedef FT_Error
type FT_Error (line 494) | typedef FT_Error
type FT_Error (line 519) | typedef FT_Error
type FT_Error (line 544) | typedef FT_Error
type FT_Error (line 568) | typedef FT_Error
type FT_Error (line 596) | typedef FT_Error
type FT_Int (line 631) | typedef FT_Int
type SFNT_Interface (line 649) | typedef struct SFNT_Interface_
type SFNT_Interface (line 754) | typedef SFNT_Interface* SFNT_Service;
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/t1types.h
type T1_EncodingRecRec_ (line 69) | struct T1_EncodingRecRec_
type PS_FontExtraRec (line 86) | typedef struct PS_FontExtraRec_
type T1_FontRec (line 93) | typedef struct T1_FontRec_
type CID_SubrsRec (line 128) | typedef struct CID_SubrsRec_
type AFM_TrackKernRec (line 148) | typedef struct AFM_TrackKernRec_
type AFM_KernPairRec (line 158) | typedef struct AFM_KernPairRec_
type AFM_FontInfoRec (line 167) | typedef struct AFM_FontInfoRec_
type T1_FaceRec_ (line 194) | struct T1_FaceRec_
type CID_FaceRec_ (line 195) | struct CID_FaceRec_
type T1_FaceRec (line 198) | typedef struct T1_FaceRec_
type CID_FaceRec (line 232) | typedef struct CID_FaceRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/internal/tttypes.h
type TTC_HeaderRec_ (line 70) | struct TTC_HeaderRec_
type SFNT_HeaderRec (line 99) | typedef struct SFNT_HeaderRec_
type TT_TableRec (line 130) | typedef struct TT_TableRec_
type TT_LongMetricsRec (line 154) | typedef struct TT_LongMetricsRec_
type FT_Short (line 171) | typedef FT_Short TT_ShortMetrics;
type TT_NameEntryRec (line 201) | typedef struct TT_NameEntryRec_
type TT_NameTableRec (line 238) | typedef struct TT_NameTableRec_
type TT_GaspRangeRec (line 277) | typedef struct TT_GaspRangeRec_
type TT_GaspRec (line 305) | typedef struct TT_Gasp_
type TT_HdmxEntryRec (line 332) | typedef struct TT_HdmxEntryRec_
type TT_HdmxRec (line 357) | typedef struct TT_HdmxRec_
type TT_Kern0_PairRec (line 384) | typedef struct TT_Kern0_PairRec_
type TT_SBit_MetricsRec (line 435) | typedef struct TT_SBit_MetricsRec_
type TT_SBit_SmallMetricsRec (line 472) | typedef struct TT_SBit_Small_Metrics_
type TT_SBit_LineMetricsRec (line 535) | typedef struct TT_SBit_LineMetricsRec_
type TT_SBit_RangeRec (line 589) | typedef struct TT_SBit_RangeRec_
type TT_SBit_StrikeRec (line 653) | typedef struct TT_SBit_StrikeRec_
type TT_SBit_ComponentRec (line 691) | typedef struct TT_SBit_ComponentRec_
type TT_SBit_ScaleRec (line 722) | typedef struct TT_SBit_ScaleRec_
type TT_Post_20Rec (line 767) | typedef struct TT_Post_20Rec_
type TT_Post_25Rec (line 792) | typedef struct TT_Post_25_
type TT_Post_NamesRec (line 815) | typedef struct TT_Post_NamesRec_
type GX_BlendRec_ (line 843) | struct GX_BlendRec_
type TT_BDFRec (line 900) | typedef struct TT_BDFRec_
type TT_FaceRec_ (line 951) | struct TT_FaceRec_
type FT_Error (line 955) | typedef FT_Error
type TT_LoaderRec_ (line 959) | struct TT_LoaderRec_
type FT_Error (line 987) | typedef FT_Error
type FT_Error (line 1022) | typedef FT_Error
type FT_Error (line 1044) | typedef FT_Error
type TT_FaceRec (line 1258) | typedef struct TT_FaceRec_
type TT_GlyphZoneRec (line 1465) | typedef struct TT_GlyphZoneRec_
type TT_ExecContextRec_ (line 1486) | struct TT_ExecContextRec_
type TT_LoaderRec (line 1489) | typedef struct TT_LoaderRec_
FILE: libs/PDF-Writer/FreeType/include/freetype/t1tables.h
type PS_FontInfoRec_ (line 69) | struct PS_FontInfoRec_
type PS_FontInfoRec_ (line 92) | struct PS_FontInfoRec_
type PS_FontInfoRec (line 105) | typedef PS_FontInfoRec T1_FontInfo;
type PS_PrivateRec (line 118) | typedef struct PS_PrivateRec_
type PS_PrivateRec_ (line 167) | struct PS_PrivateRec_
type PS_PrivateRec (line 180) | typedef PS_PrivateRec T1_Private;
type T1_Blend_Flags (line 193) | typedef enum T1_Blend_Flags_
type PS_DesignMapRec (line 250) | typedef struct PS_DesignMap_
type PS_DesignMapRec (line 259) | typedef PS_DesignMapRec T1_DesignMap;
type PS_BlendRec (line 262) | typedef struct PS_BlendRec_
type PS_BlendRec (line 294) | typedef PS_BlendRec T1_Blend;
type CID_FaceDictRec (line 305) | typedef struct CID_FaceDictRec_
type CID_FaceDictRec_ (line 334) | struct CID_FaceDictRec_
type CID_FaceDictRec (line 340) | typedef CID_FaceDictRec CID_FontDict;
type CID_FaceInfoRec (line 351) | typedef struct CID_FaceInfoRec_
type CID_FaceInfoRec_ (line 389) | struct CID_FaceInfoRec_
type CID_FaceInfoRec (line 402) | typedef CID_FaceInfoRec CID_Info;
type T1_EncodingType (line 506) | typedef enum T1_EncodingType_
type PS_Dict_Keys (line 526) | typedef enum PS_Dict_Keys_
FILE: libs/PDF-Writer/FreeType/include/freetype/tttables.h
type TT_Header_ (line 63) | struct TT_Header_
type TT_HoriHeader (line 180) | typedef struct TT_HoriHeader_
type TT_VertHeader (line 306) | typedef struct TT_VertHeader_
type TT_OS2 (line 350) | typedef struct TT_OS2_
type TT_Postscript (line 414) | typedef struct TT_Postscript_
type TT_PCLT (line 441) | typedef struct TT_PCLT_
type TT_MaxProfile (line 528) | typedef struct TT_MaxProfile_
type FT_Sfnt_Tag (line 558) | typedef enum FT_Sfnt_Tag_
FILE: libs/PDF-Writer/FreeType/src/autofit/afangles.c
function af_corner_is_flat (line 25) | FT_LOCAL_DEF( FT_Int )
function af_corner_orientation (line 63) | FT_LOCAL_DEF( FT_Int )
function af_angle_atan (line 104) | FT_LOCAL_DEF( AF_Angle )
function af_angle_atan (line 183) | FT_LOCAL_DEF( AF_Angle )
function af_sort_pos (line 246) | FT_LOCAL_DEF( void )
function af_sort_and_quantize_widths (line 269) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/autofit/afcjk.c
function af_cjk_metrics_init_widths (line 68) | FT_LOCAL_DEF( void )
function af_cjk_metrics_init_blues (line 266) | static void
function af_cjk_metrics_check_digits (line 503) | FT_LOCAL_DEF( void )
function af_cjk_metrics_init (line 549) | FT_LOCAL_DEF( FT_Error )
function af_cjk_metrics_scale_dim (line 573) | static void
function af_cjk_metrics_scale (line 665) | FT_LOCAL_DEF( void )
function FT_Error (line 684) | static FT_Error
function af_cjk_hints_link_segments (line 728) | static void
function FT_Error (line 893) | static FT_Error
function FT_Error (line 1154) | static FT_Error
function af_cjk_hints_compute_blue_edges (line 1172) | FT_LOCAL_DEF( void )
function af_cjk_hints_init (line 1259) | FT_LOCAL_DEF( FT_Error )
function FT_Pos (line 1332) | static FT_Pos
function FT_Pos (line 1379) | static FT_Pos
function af_cjk_align_linked_edge (line 1500) | static void
function af_cjk_align_serif_edge (line 1518) | static void
function FT_Pos (line 1545) | static FT_Pos
function af_cjk_hint_edges (line 1671) | static void
function af_cjk_align_edge_points (line 2015) | static void
function af_cjk_hints_apply (line 2105) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/autofit/afcjk.h
function FT_BEGIN_HEADER (line 26) | FT_BEGIN_HEADER
type AF_CJKAxisRec (line 75) | typedef struct AF_CJKAxisRec_
type AF_CJKMetricsRec (line 97) | typedef struct AF_CJKMetricsRec_
FILE: libs/PDF-Writer/FreeType/src/autofit/afdummy.c
function FT_Error (line 25) | static FT_Error
function FT_Error (line 35) | static FT_Error
FILE: libs/PDF-Writer/FreeType/src/autofit/afglobal.c
function FT_Error (line 55) | static FT_Error
function af_face_globals_new (line 158) | FT_LOCAL_DEF( FT_Error )
function af_face_globals_free (line 194) | FT_LOCAL_DEF( void )
function af_face_globals_get_metrics (line 228) | FT_LOCAL_DEF( FT_Error )
function af_face_globals_is_digit (line 293) | FT_LOCAL_DEF( FT_Bool )
FILE: libs/PDF-Writer/FreeType/src/autofit/afglobal.h
type AF_FaceGlobalsRec (line 62) | typedef struct AF_FaceGlobalsRec_
FILE: libs/PDF-Writer/FreeType/src/autofit/afhints.c
function af_axis_hints_new_segment (line 37) | FT_LOCAL_DEF( FT_Error )
function af_axis_hints_new_edge (line 79) | FT_LOCAL( FT_Error )
function af_glyph_hints_dump_points (line 181) | void
function af_glyph_hints_dump_segments (line 249) | void
function FT_Error (line 305) | FT_Error
function FT_Error (line 331) | FT_Error
function af_glyph_hints_dump_edges (line 368) | void
function af_glyph_hints_dump_points (line 423) | void
function af_glyph_hints_dump_segments (line 430) | void
function FT_Error (line 437) | FT_Error
function FT_Error (line 450) | FT_Error
function af_glyph_hints_dump_edges (line 465) | void
function af_direction_compute (line 480) | FT_LOCAL_DEF( AF_Direction )
function af_glyph_hints_init (line 529) | FT_LOCAL_DEF( void )
function af_glyph_hints_done (line 538) | FT_LOCAL_DEF( void )
function af_glyph_hints_rescale (line 580) | FT_LOCAL_DEF( void )
function af_glyph_hints_reload (line 592) | FT_LOCAL_DEF( FT_Error )
function af_glyph_hints_save (line 800) | FT_LOCAL_DEF( void )
function af_glyph_hints_align_edge_points (line 835) | FT_LOCAL_DEF( void )
function af_glyph_hints_align_strong_points (line 910) | FT_LOCAL_DEF( void )
function af_iup_shift (line 1067) | static void
function af_iup_interp (line 1094) | static void
function af_glyph_hints_align_weak_points (line 1165) | FT_LOCAL_DEF( void )
function af_glyph_hints_scale_dim (line 1296) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/autofit/afhints.h
type AF_Dimension_ (line 33) | enum AF_Dimension_
type AF_Direction (line 47) | typedef enum AF_Direction_
type AF_Flags (line 204) | typedef enum AF_Flags_
type AF_Edge_Flags (line 235) | typedef enum AF_Edge_Flags_
type AF_PointRec_ (line 245) | struct AF_PointRec_
type AF_SegmentRec_ (line 246) | struct AF_SegmentRec_
type AF_EdgeRec_ (line 247) | struct AF_EdgeRec_
type AF_PointRec (line 250) | typedef struct AF_PointRec_
type AF_SegmentRec (line 267) | typedef struct AF_SegmentRec_
type AF_EdgeRec (line 291) | typedef struct AF_EdgeRec_
type AF_AxisHintsRec (line 313) | typedef struct AF_AxisHintsRec_
type AF_GlyphHintsRec (line 331) | typedef struct AF_GlyphHintsRec_
FILE: libs/PDF-Writer/FreeType/src/autofit/afindic.c
function FT_Error (line 35) | static FT_Error
function af_indic_metrics_scale (line 63) | static void
function FT_Error (line 72) | static FT_Error
function FT_Error (line 81) | static FT_Error
FILE: libs/PDF-Writer/FreeType/src/autofit/aflatin.c
function af_latin_metrics_init_widths (line 55) | FT_LOCAL_DEF( void )
function af_latin_metrics_init_blues (line 215) | static void
function af_latin_metrics_check_digits (line 500) | FT_LOCAL_DEF( void )
function af_latin_metrics_init (line 547) | FT_LOCAL_DEF( FT_Error )
function af_latin_metrics_scale_dim (line 571) | static void
function af_latin_metrics_scale (line 768) | FT_LOCAL_DEF( void )
function af_latin_hints_compute_segments (line 792) | FT_LOCAL_DEF( FT_Error )
function af_latin_hints_link_segments (line 1012) | FT_LOCAL_DEF( void )
function af_latin_hints_compute_edges (line 1105) | FT_LOCAL_DEF( FT_Error )
function af_latin_hints_detect_features (line 1399) | FT_LOCAL_DEF( FT_Error )
function af_latin_hints_compute_blue_edges (line 1420) | FT_LOCAL_DEF( void )
function FT_Error (line 1521) | static FT_Error
function FT_Pos (line 1601) | static FT_Pos
function FT_Pos (line 1650) | static FT_Pos
function af_latin_align_linked_edge (line 1814) | static void
function af_latin_align_serif_edge (line 1840) | static void
function af_latin_hint_edges (line 1864) | FT_LOCAL_DEF( void )
function FT_Error (line 2353) | static FT_Error
FILE: libs/PDF-Writer/FreeType/src/autofit/aflatin.h
function FT_BEGIN_HEADER (line 25) | FT_BEGIN_HEADER
type AF_LatinAxisRec (line 96) | typedef struct AF_LatinAxisRec_
type AF_LatinMetricsRec (line 117) | typedef struct AF_LatinMetricsRec_
FILE: libs/PDF-Writer/FreeType/src/autofit/aflatin2.c
function af_latin2_metrics_init_widths (line 58) | FT_LOCAL_DEF( void )
function af_latin2_metrics_init_blues (line 183) | static void
function af_latin2_metrics_check_digits (line 428) | FT_LOCAL_DEF( void )
function af_latin2_metrics_init (line 474) | FT_LOCAL_DEF( FT_Error )
function af_latin2_metrics_scale_dim (line 514) | static void
function af_latin2_metrics_scale (line 682) | FT_LOCAL_DEF( void )
function af_latin2_hints_compute_segments (line 705) | FT_LOCAL_DEF( FT_Error )
function af_latin2_hints_compute_edges (line 1062) | FT_LOCAL_DEF( FT_Error )
function af_latin2_hints_detect_features (line 1368) | FT_LOCAL_DEF( FT_Error )
function af_latin2_hints_compute_blue_edges (line 1386) | FT_LOCAL_DEF( void )
function FT_Error (line 1492) | static FT_Error
function FT_Pos (line 1574) | static FT_Pos
function FT_Pos (line 1621) | static FT_Pos
function af_latin2_align_linked_edge (line 1789) | static void
function af_latin2_align_serif_edge (line 1812) | static void
function af_latin2_hint_edges (line 1834) | FT_LOCAL_DEF( void )
function FT_Error (line 2301) | static FT_Error
FILE: libs/PDF-Writer/FreeType/src/autofit/afloader.c
function af_loader_init (line 28) | FT_LOCAL_DEF( FT_Error )
function af_loader_reset (line 47) | FT_LOCAL_DEF( FT_Error )
function af_loader_done (line 78) | FT_LOCAL_DEF( void )
function FT_Error (line 101) | static FT_Error
function af_loader_load_glyph (line 492) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/autofit/afloader.h
type AF_ModuleRec_ (line 28) | struct AF_ModuleRec_
type AF_LoaderRec (line 38) | typedef struct AF_LoaderRec_
FILE: libs/PDF-Writer/FreeType/src/autofit/afmodule.c
function FT_Error (line 48) | FT_Error
function FT_Error (line 82) | FT_Error
function FT_Error (line 119) | FT_Error
function af_get_interface (line 181) | FT_CALLBACK_DEF( FT_Module_Interface )
function af_autofitter_init (line 203) | FT_CALLBACK_DEF( FT_Error )
function af_autofitter_done (line 212) | FT_CALLBACK_DEF( void )
function af_autofitter_load_glyph (line 219) | FT_CALLBACK_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/autofit/afmodule.h
type AF_ModuleRec_ (line 39) | struct AF_ModuleRec_
FILE: libs/PDF-Writer/FreeType/src/autofit/afpic.c
function autofit_module_class_pic_free (line 55) | void
function FT_Error (line 78) | FT_Error
FILE: libs/PDF-Writer/FreeType/src/autofit/afpic.h
type AFModulePIC (line 54) | typedef struct AFModulePIC_
FILE: libs/PDF-Writer/FreeType/src/autofit/aftypes.h
type AF_WidthRec (line 76) | typedef struct AF_WidthRec_
type FT_Int (line 109) | typedef FT_Int AF_Angle;
type AF_GlyphHintsRec_ (line 156) | struct AF_GlyphHintsRec_
type AF_ScalerFlags (line 172) | typedef enum AF_ScalerFlags_
type AF_ScalerRec (line 181) | typedef struct AF_ScalerRec_
type AF_Script (line 230) | typedef enum AF_Script_
type AF_ScriptClassRec_ (line 248) | struct AF_ScriptClassRec_
type AF_FaceGlobalsRec_ (line 249) | struct AF_FaceGlobalsRec_
type AF_ScriptMetricsRec (line 251) | typedef struct AF_ScriptMetricsRec_
type FT_Error (line 265) | typedef FT_Error
type FT_Error (line 277) | typedef FT_Error
type AF_Script_UniRangeRec (line 287) | typedef struct AF_Script_UniRangeRec_
type AF_Script_UniRangeRec (line 296) | typedef const AF_Script_UniRangeRec *AF_Script_UniRange;
type AF_ScriptClassRec (line 299) | typedef struct AF_ScriptClassRec_
FILE: libs/PDF-Writer/FreeType/src/autofit/afwarp.c
function af_warper_compute_line_best (line 71) | static void
function af_warper_compute (line 161) | FT_LOCAL_DEF( void )
type _af_warp_dummy (line 370) | typedef int _af_warp_dummy;
FILE: libs/PDF-Writer/FreeType/src/autofit/afwarp.h
type FT_Int32 (line 32) | typedef FT_Int32 AF_WarpScore;
type AF_WarperRec (line 34) | typedef struct AF_WarperRec_
FILE: libs/PDF-Writer/FreeType/src/base/basepic.c
function ft_base_pic_free (line 49) | void
function FT_Error (line 68) | FT_Error
FILE: libs/PDF-Writer/FreeType/src/base/basepic.h
type BasePIC (line 44) | typedef struct BasePIC_
FILE: libs/PDF-Writer/FreeType/src/base/ftadvanc.c
function FT_Error (line 24) | static FT_Error
function FT_Get_Advance (line 69) | FT_EXPORT_DEF( FT_Error )
function FT_Get_Advances (line 104) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftapi.c
function FT_New_Memory_Stream (line 43) | FT_BASE_DEF( void )
function FT_Seek_Stream (line 55) | FT_BASE_DEF( FT_Error )
function FT_Skip_Stream (line 63) | FT_BASE_DEF( FT_Error )
function FT_Read_Stream (line 71) | FT_BASE_DEF( FT_Error )
function FT_Read_Stream_At (line 80) | FT_BASE_DEF( FT_Error )
function FT_Extract_Frame (line 90) | FT_BASE_DEF( FT_Error )
function FT_Release_Frame (line 99) | FT_BASE_DEF( void )
function FT_Access_Frame (line 106) | FT_BASE_DEF( FT_Error )
function FT_Forget_Frame (line 114) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftbbox.c
type TBBox_Rec (line 35) | typedef struct TBBox_Rec_
function BBox_Move_To (line 63) | static int
function BBox_Conic_Check (line 102) | static void
function BBox_Conic_To (line 162) | static int
function BBox_Cubic_Check (line 217) | static void
function test_cubic_extrema (line 288) | static void
function BBox_Cubic_Check (line 332) | static void
function BBox_Cubic_To (line 531) | static int
function FT_Outline_Get_BBox (line 573) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftbdf.c
function FT_Get_BDF_Charset_ID (line 26) | FT_EXPORT_DEF( FT_Error )
function FT_Get_BDF_Property (line 61) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftbitmap.c
function FT_Bitmap_New (line 31) | FT_EXPORT_DEF( void )
function FT_Bitmap_Copy (line 40) | FT_EXPORT_DEF( FT_Error )
function FT_Error (line 97) | static FT_Error
function FT_Bitmap_Embolden (line 213) | FT_EXPORT_DEF( FT_Error )
function FT_Bitmap_Convert (line 374) | FT_EXPORT_DEF( FT_Error )
function FT_GlyphSlot_Own_Bitmap (line 620) | FT_EXPORT_DEF( FT_Error )
function FT_Bitmap_Done (line 645) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftcalc.c
type FT_INT64 (line 49) | typedef FT_INT64 FT_Int64;
type FT_Int64 (line 53) | typedef struct FT_Int64_
function FT_RoundFix (line 78) | FT_EXPORT_DEF( FT_Fixed )
function FT_CeilFix (line 88) | FT_EXPORT_DEF( FT_Fixed )
function FT_FloorFix (line 98) | FT_EXPORT_DEF( FT_Fixed )
function FT_Sqrt32 (line 110) | FT_EXPORT_DEF( FT_Int32 )
function FT_MulDiv (line 145) | FT_EXPORT_DEF( FT_Long )
function FT_MulDiv_No_Round (line 170) | FT_BASE_DEF( FT_Long )
function FT_MulFix (line 195) | FT_EXPORT_DEF( FT_Long )
function FT_DivFix (line 231) | FT_EXPORT_DEF( FT_Long )
function ft_multo64 (line 256) | static void
function FT_UInt32 (line 288) | static FT_UInt32
function FT_Add64 (line 322) | static void
function FT_MulDiv (line 357) | FT_EXPORT_DEF( FT_Long )
function FT_MulDiv_No_Round (line 397) | FT_BASE_DEF( FT_Long )
function FT_MulFix (line 434) | FT_EXPORT_DEF( FT_Long )
function FT_DivFix (line 535) | FT_EXPORT_DEF( FT_Long )
function FT_MulTo64 (line 579) | FT_EXPORT_DEF( void )
function FT_Div64by32 (line 605) | FT_EXPORT_DEF( FT_Int32 )
function FT_Div64by32 (line 659) | FT_EXPORT_DEF( FT_Int32 )
function FT_Matrix_Multiply (line 701) | FT_EXPORT_DEF( void )
function FT_Matrix_Invert (line 723) | FT_EXPORT_DEF( FT_Error )
function FT_Matrix_Multiply_Scaled (line 754) | FT_BASE_DEF( void )
function FT_Vector_Transform_Scaled (line 779) | FT_BASE_DEF( void )
function FT_SqrtFixed (line 805) | FT_BASE_DEF( FT_Int32 )
function ft_corner_orientation (line 840) | FT_BASE_DEF( FT_Int )
function ft_corner_is_flat (line 920) | FT_BASE_DEF( FT_Int )
FILE: libs/PDF-Writer/FreeType/src/base/ftcid.c
function FT_Get_CID_Registry_Ordering_Supplement (line 26) | FT_EXPORT_DEF( FT_Error )
function FT_Get_CID_Is_Internally_CID_Keyed (line 64) | FT_EXPORT_DEF( FT_Error )
function FT_Get_CID_From_Glyph_Index (line 90) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftdbgmem.c
type FT_MemSourceRec_ (line 45) | struct FT_MemSourceRec_
type FT_MemNodeRec_ (line 46) | struct FT_MemNodeRec_
type FT_MemTableRec_ (line 47) | struct FT_MemTableRec_
type FT_MemSourceRec (line 57) | typedef struct FT_MemSourceRec_
type FT_MemNodeRec (line 91) | typedef struct FT_MemNodeRec_
type FT_MemTableRec (line 112) | typedef struct FT_MemTableRec_
function FT_ULong (line 192) | static FT_ULong
function ft_mem_debug_panic (line 207) | extern void
function FT_Pointer (line 225) | static FT_Pointer
function ft_mem_table_free (line 241) | static void
function ft_mem_table_resize (line 254) | static void
function FT_MemTable (line 304) | static FT_MemTable
function ft_mem_table_destroy (line 343) | static void
function FT_MemNode (line 429) | static FT_MemNode*
function FT_MemSource (line 455) | static FT_MemSource
function ft_mem_table_set (line 508) | static void
function ft_mem_table_remove (line 607) | static void
function FT_Pointer (line 679) | extern FT_Pointer
function ft_mem_debug_free (line 715) | extern void
function FT_Pointer (line 739) | extern FT_Pointer
function FT_Int (line 823) | extern FT_Int
function ft_mem_debug_done (line 886) | extern void
function ft_mem_source_compare (line 905) | static int
function FT_DumpMemory (line 922) | extern void
type _debug_mem_dummy (line 992) | typedef int _debug_mem_dummy;
FILE: libs/PDF-Writer/FreeType/src/base/ftdebug.c
function FT_Message (line 53) | FT_BASE_DEF( void )
function FT_Panic (line 67) | FT_BASE_DEF( void )
function FT_Trace_Get_Count (line 104) | FT_BASE_DEF( FT_Int )
function FT_Trace_Get_Name (line 113) | FT_BASE_DEF( const char * )
function ft_debug_init (line 144) | FT_BASE_DEF( void )
function ft_debug_init (line 220) | FT_BASE_DEF( void )
function FT_Trace_Get_Count (line 227) | FT_BASE_DEF( FT_Int )
function FT_Trace_Get_Name (line 234) | FT_BASE_DEF( const char * )
FILE: libs/PDF-Writer/FreeType/src/base/ftfstype.c
function FT_Get_FSType_Flags (line 27) | FT_EXPORT_DEF( FT_UShort )
FILE: libs/PDF-Writer/FreeType/src/base/ftgasp.c
function FT_Get_Gasp (line 24) | FT_EXPORT_DEF( FT_Int )
FILE: libs/PDF-Writer/FreeType/src/base/ftgloadr.c
function FT_GlyphLoader_New (line 68) | FT_BASE_DEF( FT_Error )
function FT_GlyphLoader_Rewind (line 86) | FT_BASE_DEF( void )
function FT_GlyphLoader_Reset (line 103) | FT_BASE_DEF( void )
function FT_GlyphLoader_Done (line 126) | FT_BASE_DEF( void )
function FT_GlyphLoader_Adjust_Points (line 141) | static void
function FT_GlyphLoader_CreateExtra (line 164) | FT_BASE_DEF( FT_Error )
function FT_GlyphLoader_Adjust_Subglyphs (line 184) | static void
function FT_GlyphLoader_CheckPoints (line 199) | FT_BASE_DEF( FT_Error )
function FT_GlyphLoader_CheckSubGlyphs (line 275) | FT_BASE_DEF( FT_Error )
function FT_GlyphLoader_Prepare (line 306) | FT_BASE_DEF( void )
function FT_GlyphLoader_Add (line 322) | FT_BASE_DEF( void )
function FT_GlyphLoader_CopyPoints (line 359) | FT_BASE_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftglyph.c
function ft_bitmap_glyph_init (line 57) | FT_CALLBACK_DEF( FT_Error )
function ft_bitmap_glyph_copy (line 92) | FT_CALLBACK_DEF( FT_Error )
function ft_bitmap_glyph_done (line 108) | FT_CALLBACK_DEF( void )
function ft_bitmap_glyph_bbox (line 119) | FT_CALLBACK_DEF( void )
function ft_outline_glyph_init (line 155) | FT_CALLBACK_DEF( FT_Error )
function ft_outline_glyph_done (line 186) | FT_CALLBACK_DEF( void )
function ft_outline_glyph_copy (line 196) | FT_CALLBACK_DEF( FT_Error )
function ft_outline_glyph_transform (line 215) | FT_CALLBACK_DEF( void )
function ft_outline_glyph_bbox (line 231) | FT_CALLBACK_DEF( void )
function ft_outline_glyph_prepare (line 242) | FT_CALLBACK_DEF( FT_Error )
function FT_Error (line 278) | static FT_Error
function FT_Glyph_Copy (line 305) | FT_EXPORT_DEF( FT_Error )
function FT_Get_Glyph (line 352) | FT_EXPORT_DEF( FT_Error )
function FT_Glyph_Transform (line 420) | FT_EXPORT_DEF( FT_Error )
function FT_Glyph_Get_CBox (line 452) | FT_EXPORT_DEF( void )
function FT_Glyph_To_Bitmap (line 504) | FT_EXPORT_DEF( FT_Error )
function FT_Done_Glyph (line 610) | FT_EXPORT_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftgxval.c
function FT_TrueTypeGX_Validate (line 35) | FT_EXPORT_DEF( FT_Error )
function FT_TrueTypeGX_Free (line 72) | FT_EXPORT_DEF( void )
function FT_ClassicKern_Validate (line 88) | FT_EXPORT_DEF( FT_Error )
function FT_ClassicKern_Free (line 123) | FT_EXPORT_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftinit.c
function ft_destroy_default_module_classes (line 122) | FT_BASE_DEF( void )
function ft_create_default_module_classes (line 154) | FT_BASE_DEF( FT_Error )
function FT_Add_Default_Modules (line 197) | FT_EXPORT_DEF( void )
function FT_Init_FreeType (line 231) | FT_EXPORT_DEF( FT_Error )
function FT_Done_FreeType (line 263) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftlcdfil.c
function _ft_lcd_filter_fir (line 31) | static void
function _ft_lcd_filter_legacy (line 165) | static void
function FT_Library_SetLcdFilterWeights (line 269) | FT_EXPORT_DEF( FT_Error )
function FT_Library_SetLcdFilter (line 282) | FT_EXPORT_DEF( FT_Error )
function FT_Library_SetLcdFilterWeights (line 352) | FT_EXPORT_DEF( FT_Error )
function FT_Library_SetLcdFilter (line 363) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftmac.c
type ResourceIndex (line 97) | typedef short ResourceIndex;
function FT_GetFile_From_Mac_Name (line 125) | FT_EXPORT_DEF( FT_Error )
function OSStatus (line 143) | static OSStatus
function FT_Error (line 175) | static FT_Error
function FT_GetFilePath_From_Mac_ATS_Name (line 221) | FT_EXPORT_DEF( FT_Error )
function FT_GetFile_From_Mac_ATS_Name (line 243) | FT_EXPORT_DEF( FT_Error )
function OSErr (line 273) | static OSErr
function OSType (line 298) | static OSType
function create_lwfn_name (line 317) | static void
function count_faces_sfnt (line 347) | static short
function count_faces_scalable (line 358) | static short
function parse_fond (line 389) | static void
function FT_Error (line 497) | static FT_Error
function count_faces (line 540) | static short
function FT_Error (line 578) | static FT_Error
function FT_Error (line 695) | static FT_Error
function FT_Error (line 727) | static FT_Error
function FT_Error (line 794) | static FT_Error
function FT_New_Face_From_FOND (line 839) | FT_EXPORT_DEF( FT_Error )
function FT_Error (line 911) | static FT_Error
function FT_New_Face (line 952) | FT_EXPORT_DEF( FT_Error )
function FT_New_Face_From_FSRef (line 993) | FT_EXPORT_DEF( FT_Error )
function FT_New_Face_From_FSSpec (line 1033) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftmm.c
function FT_Error (line 35) | static FT_Error
function FT_Get_Multi_Master (line 65) | FT_EXPORT_DEF( FT_Error )
function FT_Get_MM_Var (line 87) | FT_EXPORT_DEF( FT_Error )
function FT_Set_MM_Design_Coordinates (line 109) | FT_EXPORT_DEF( FT_Error )
function FT_Set_Var_Design_Coordinates (line 132) | FT_EXPORT_DEF( FT_Error )
function FT_Set_MM_Blend_Coordinates (line 155) | FT_EXPORT_DEF( FT_Error )
function FT_Set_Var_Blend_Coordinates (line 181) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftobjs.c
function ft_service_list_lookup (line 47) | FT_BASE_DEF( FT_Pointer )
function ft_validator_init (line 71) | FT_BASE_DEF( void )
function ft_validator_run (line 84) | FT_BASE_DEF( FT_Int )
function ft_validator_error (line 94) | FT_BASE_DEF( void )
function FT_Stream_New (line 127) | FT_BASE_DEF( FT_Error )
function FT_Stream_Free (line 195) | FT_BASE_DEF( void )
function FT_Error (line 235) | static FT_Error
function ft_glyphslot_free_bitmap (line 263) | FT_BASE_DEF( void )
function ft_glyphslot_set_bitmap (line 283) | FT_BASE_DEF( void )
function ft_glyphslot_alloc_bitmap (line 295) | FT_BASE_DEF( FT_Error )
function ft_glyphslot_clear (line 313) | static void
function ft_glyphslot_done (line 345) | static void
function FT_New_GlyphSlot (line 376) | FT_BASE_DEF( FT_Error )
function FT_Done_GlyphSlot (line 425) | FT_BASE_DEF( void )
function FT_Set_Transform (line 466) | FT_EXPORT_DEF( void )
function ft_glyphslot_grid_fit_metrics (line 518) | static void
function FT_Load_Glyph (line 563) | FT_EXPORT_DEF( FT_Error )
function FT_Load_Char (line 809) | FT_EXPORT_DEF( FT_Error )
function destroy_size (line 829) | static void
function destroy_charmaps (line 851) | static void
function destroy_face (line 877) | static void
function Destroy_Driver (line 928) | static void
function FT_Error (line 956) | static FT_Error
function FT_CharMap (line 1060) | static FT_CharMap
function FT_Error (line 1108) | static FT_Error
function FT_New_Face (line 1199) | FT_EXPORT_DEF( FT_Error )
function FT_New_Memory_Face (line 1224) | FT_EXPORT_DEF( FT_Error )
function memory_stream_close (line 1279) | static void
function FT_Error (line 1295) | static FT_Error
function open_face_from_buffer (line 1331) | FT_LOCAL_DEF( FT_Error )
function FT_Error (line 1401) | static FT_Error
function open_face_PS_from_sfnt_stream (line 1466) | FT_LOCAL_DEF( FT_Error )
function FT_Error (line 1536) | static FT_Error
function FT_Error (line 1679) | static FT_Error
function FT_Error (line 1747) | static FT_Error
function FT_Error (line 1804) | static FT_Error
function FT_Error (line 1854) | static FT_Error
function FT_Error (line 1951) | static FT_Error
function FT_Open_Face (line 1994) | FT_EXPORT_DEF( FT_Error )
function FT_Attach_File (line 2253) | FT_EXPORT_DEF( FT_Error )
function FT_Attach_Stream (line 2275) | FT_EXPORT_DEF( FT_Error )
function FT_Reference_Face (line 2319) | FT_EXPORT_DEF( FT_Error )
function FT_Done_Face (line 2330) | FT_EXPORT_DEF( FT_Error )
function FT_New_Size (line 2371) | FT_EXPORT_DEF( FT_Error )
function FT_Done_Size (line 2432) | FT_EXPORT_DEF( FT_Error )
function FT_Match_Size (line 2480) | FT_BASE_DEF( FT_Error )
function ft_synthesize_vertical_metrics (line 2531) | FT_BASE_DEF( void )
function ft_recompute_scaled_metrics (line 2557) | static void
function FT_Select_Metrics (line 2591) | FT_BASE_DEF( void )
function FT_Request_Metrics (line 2638) | FT_BASE_DEF( void )
function FT_Select_Size (line 2760) | FT_EXPORT_DEF( FT_Error )
function FT_Request_Size (line 2812) | FT_EXPORT_DEF( FT_Error )
function FT_Set_Char_Size (line 2888) | FT_EXPORT_DEF( FT_Error )
function FT_Set_Pixel_Sizes (line 2928) | FT_EXPORT_DEF( FT_Error )
function FT_Get_Kerning (line 2964) | FT_EXPORT_DEF( FT_Error )
function FT_Get_Track_Kerning (line 3024) | FT_EXPORT_DEF( FT_Error )
function FT_Select_Charmap (line 3055) | FT_EXPORT_DEF( FT_Error )
function FT_Set_Charmap (line 3106) | FT_EXPORT_DEF( FT_Error )
function FT_Get_Charmap_Index (line 3148) | FT_EXPORT_DEF( FT_Int )
function ft_cmap_done_internal (line 3176) | static void
function FT_CMap_Done (line 3191) | FT_BASE_DEF( void )
function FT_CMap_New (line 3237) | FT_BASE_DEF( FT_Error )
function FT_Get_Char_Index (line 3291) | FT_EXPORT_DEF( FT_UInt )
function FT_Get_First_Char (line 3316) | FT_EXPORT_DEF( FT_ULong )
function FT_Get_Next_Char (line 3340) | FT_EXPORT_DEF( FT_ULong )
function FT_Face_GetCharVariantIndex (line 3371) | FT_EXPORT_DEF( FT_UInt )
function FT_Face_GetCharVariantIsDefault (line 3414) | FT_EXPORT_DEF( FT_Int )
function FT_Face_GetVariantSelectors (line 3455) | FT_EXPORT_DEF( FT_UInt32* )
function FT_Face_GetVariantsOfChar (line 3482) | FT_EXPORT_DEF( FT_UInt32* )
function FT_Face_GetCharsOfVariant (line 3516) | FT_EXPORT_DEF( FT_UInt32* )
function FT_Get_Name_Index (line 3551) | FT_EXPORT_DEF( FT_UInt )
function FT_Get_Glyph_Name (line 3577) | FT_EXPORT_DEF( FT_Error )
function FT_Get_Postscript_Name (line 3611) | FT_EXPORT_DEF( const char* )
function FT_Get_Sfnt_Table (line 3640) | FT_EXPORT_DEF( void* )
function FT_Load_Sfnt_Table (line 3661) | FT_EXPORT_DEF( FT_Error )
function FT_Sfnt_Table_Info (line 3684) | FT_EXPORT_DEF( FT_Error )
function FT_Get_CMap_Language_ID (line 3707) | FT_EXPORT_DEF( FT_ULong )
function FT_Get_CMap_Format (line 3731) | FT_EXPORT_DEF( FT_Long )
function FT_Activate_Size (line 3755) | FT_EXPORT_DEF( FT_Error )
function FT_Lookup_Renderer (line 3789) | FT_BASE_DEF( FT_Renderer )
function FT_Renderer (line 3831) | static FT_Renderer
function ft_set_current_renderer (line 3846) | static void
function FT_Error (line 3857) | static FT_Error
function ft_remove_renderer (line 3905) | static void
function FT_Get_Renderer (line 3935) | FT_EXPORT_DEF( FT_Renderer )
function FT_Set_Renderer (line 3947) | FT_EXPORT_DEF( FT_Error )
function FT_Render_Glyph_Internal (line 3994) | FT_BASE_DEF( FT_Error )
function FT_Render_Glyph (line 4055) | FT_EXPORT_DEF( FT_Error )
function Destroy_Module (line 4099) | static void
function FT_Add_Module (line 4129) | FT_EXPORT_DEF( FT_Error )
function FT_Get_Module (line 4257) | FT_EXPORT_DEF( FT_Module )
function FT_Get_Module_Interface (line 4285) | FT_BASE_DEF( const void* )
function ft_module_get_service (line 4300) | FT_BASE_DEF( FT_Pointer )
function FT_Remove_Module (line 4346) | FT_EXPORT_DEF( FT_Error )
function FT_Error (line 4386) | FT_Error
function FT_Error (line 4468) | FT_Error
function FT_Error (line 4484) | FT_Error
function FT_Reference_Library (line 4513) | FT_EXPORT_DEF( FT_Error )
function FT_New_Library (line 4524) | FT_EXPORT_DEF( FT_Error )
function FT_Library_Version (line 4582) | FT_EXPORT_DEF( void )
function FT_Done_Library (line 4613) | FT_EXPORT_DEF( FT_Error )
function FT_Set_Debug_Hook (line 4725) | FT_EXPORT_DEF( void )
function FT_Get_TrueType_Engine_Type (line 4739) | FT_EXPORT_DEF( FT_TrueTypeEngineType )
function ft_stub_set_char_sizes (line 4769) | FT_BASE_DEF( FT_Error )
function ft_stub_set_pixel_sizes (line 4805) | FT_BASE_DEF( FT_Error )
function FT_Get_SubGlyph_Info (line 4833) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftotval.c
function FT_OpenType_Validate (line 26) | FT_EXPORT_DEF( FT_Error )
function FT_OpenType_Free (line 73) | FT_EXPORT_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftoutln.c
function FT_Outline_Decompose (line 49) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_New_Internal (line 293) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_New (line 328) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_Check (line 344) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_Copy (line 389) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_Done_Internal (line 421) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_Done (line 444) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_Get_CBox (line 459) | FT_EXPORT_DEF( void )
function FT_Outline_Translate (line 509) | FT_EXPORT_DEF( void )
function FT_Outline_Reverse (line 534) | FT_EXPORT_DEF( void )
function FT_Outline_Render (line 593) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_Get_Bitmap (line 644) | FT_EXPORT_DEF( FT_Error )
function FT_Vector_Transform (line 671) | FT_EXPORT_DEF( void )
function FT_Outline_Transform (line 694) | FT_EXPORT_DEF( void )
function FT_Bool (line 729) | static FT_Bool
function FT_Bool (line 778) | static FT_Bool
function FT_Orientation (line 812) | static FT_Orientation
function FT_Outline_Embolden (line 881) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_EmboldenXY (line 891) | FT_EXPORT_DEF( FT_Error )
function FT_Outline_Get_Orientation (line 1002) | FT_EXPORT_DEF( FT_Orientation )
FILE: libs/PDF-Writer/FreeType/src/base/ftpatent.c
function FT_Bool (line 27) | static FT_Bool
function FT_Bool (line 112) | static FT_Bool
function FT_Bool (line 146) | static FT_Bool
function FT_Face_CheckTrueTypePatents (line 249) | FT_EXPORT_DEF( FT_Bool )
function FT_Face_SetUnpatentedHinting (line 264) | FT_EXPORT_DEF( FT_Bool )
FILE: libs/PDF-Writer/FreeType/src/base/ftpfr.c
function FT_Service_PfrMetrics (line 24) | static FT_Service_PfrMetrics
function FT_Get_PFR_Metrics (line 39) | FT_EXPORT_DEF( FT_Error )
function FT_Get_PFR_Kerning (line 96) | FT_EXPORT_DEF( FT_Error )
function FT_Get_PFR_Advance (line 122) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftpic.c
function ft_pic_container_init (line 28) | FT_BASE_DEF( FT_Error )
function ft_pic_container_destroy (line 45) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftrfork.c
function FT_Raccess_Get_HeaderInfo (line 49) | FT_BASE_DEF( FT_Error )
function ft_raccess_sort_ref_by_id (line 135) | static int
function FT_Raccess_Get_DataOffsets (line 148) | FT_BASE_DEF( FT_Error )
function FT_Raccess_Guess (line 357) | FT_BASE_DEF( void )
function FT_RFork_Rule (line 390) | static FT_RFork_Rule
function ft_raccess_rule_by_darwin_vfs (line 406) | FT_LOCAL_DEF( FT_Bool )
function FT_Error (line 423) | static FT_Error
function FT_Error (line 445) | static FT_Error
function FT_Error (line 467) | static FT_Error
function FT_Error (line 497) | static FT_Error
function FT_Error (line 533) | static FT_Error
function FT_Error (line 569) | static FT_Error
function FT_Error (line 596) | static FT_Error
function FT_Error (line 622) | static FT_Error
function FT_Error (line 653) | static FT_Error
function FT_Error (line 685) | static FT_Error
function FT_Error (line 751) | static FT_Error
function FT_Raccess_Guess (line 822) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftsnames.c
function FT_Get_Sfnt_Name_Count (line 33) | FT_EXPORT_DEF( FT_UInt )
function FT_Get_Sfnt_Name (line 42) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftstream.c
function FT_Stream_OpenMemory (line 34) | FT_BASE_DEF( void )
function FT_Stream_Close (line 48) | FT_BASE_DEF( void )
function FT_Stream_Seek (line 56) | FT_BASE_DEF( FT_Error )
function FT_Stream_Skip (line 91) | FT_BASE_DEF( FT_Error )
function FT_Stream_Pos (line 102) | FT_BASE_DEF( FT_Long )
function FT_Stream_Read (line 109) | FT_BASE_DEF( FT_Error )
function FT_Stream_ReadAt (line 118) | FT_BASE_DEF( FT_Error )
function FT_Stream_TryRead (line 163) | FT_BASE_DEF( FT_ULong )
function FT_Stream_ExtractFrame (line 192) | FT_BASE_DEF( FT_Error )
function FT_Stream_ReleaseFrame (line 214) | FT_BASE_DEF( void )
function FT_Stream_EnterFrame (line 233) | FT_BASE_DEF( FT_Error )
function FT_Stream_ExitFrame (line 311) | FT_BASE_DEF( void )
function FT_Stream_GetChar (line 341) | FT_BASE_DEF( FT_Char )
function FT_Stream_GetUShort (line 357) | FT_BASE_DEF( FT_UShort )
function FT_Stream_GetUShortLE (line 376) | FT_BASE_DEF( FT_UShort )
function FT_Stream_GetUOffset (line 395) | FT_BASE_DEF( FT_ULong )
function FT_Stream_GetULong (line 413) | FT_BASE_DEF( FT_ULong )
function FT_Stream_GetULongLE (line 431) | FT_BASE_DEF( FT_ULong )
function FT_Stream_ReadChar (line 449) | FT_BASE_DEF( FT_Char )
function FT_Stream_ReadUShort (line 486) | FT_BASE_DEF( FT_UShort )
function FT_Stream_ReadUShortLE (line 533) | FT_BASE_DEF( FT_UShort )
function FT_Stream_ReadUOffset (line 580) | FT_BASE_DEF( FT_ULong )
function FT_Stream_ReadULong (line 627) | FT_BASE_DEF( FT_ULong )
function FT_Stream_ReadULongLE (line 674) | FT_BASE_DEF( FT_ULong )
function FT_Stream_ReadFields (line 721) | FT_BASE_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftstroke.c
function FT_Outline_GetInsideBorder (line 30) | FT_EXPORT_DEF( FT_StrokerBorder )
function FT_Outline_GetOutsideBorder (line 43) | FT_EXPORT_DEF( FT_StrokerBorder )
function FT_Pos (line 70) | static FT_Pos
function ft_conic_split (line 77) | static void
function FT_Bool (line 97) | static FT_Bool
function ft_cubic_split (line 148) | static void
function FT_Angle (line 179) | static FT_Angle
function FT_Bool (line 187) | static FT_Bool
type FT_StrokeTags (line 291) | typedef enum FT_StrokeTags_
type FT_StrokeBorderRec (line 302) | typedef struct FT_StrokeBorderRec_
function FT_Error (line 316) | static FT_Error
function ft_stroke_border_close (line 346) | static void
function FT_Error (line 412) | static FT_Error
function FT_Error (line 454) | static FT_Error
function FT_Error (line 486) | static FT_Error
function FT_Error (line 524) | static FT_Error
function FT_Error (line 594) | static FT_Error
function ft_stroke_border_init (line 609) | static void
function ft_stroke_border_reset (line 624) | static void
function ft_stroke_border_done (line 633) | static void
function FT_Error (line 649) | static FT_Error
function ft_stroke_border_export (line 700) | static void
type FT_StrokerRec (line 761) | typedef struct FT_StrokerRec_
function FT_Stroker_New (line 788) | FT_EXPORT_DEF( FT_Error )
function FT_Stroker_Set (line 818) | FT_EXPORT_DEF( void )
function FT_Stroker_Rewind (line 844) | FT_EXPORT_DEF( void )
function FT_Stroker_Done (line 857) | FT_EXPORT_DEF( void )
function FT_Error (line 875) | static FT_Error
function FT_Error (line 902) | static FT_Error
function FT_Error (line 977) | static FT_Error
function FT_Error (line 1039) | static FT_Error
function FT_Error (line 1200) | static FT_Error
function FT_Error (line 1237) | static FT_Error
function FT_Stroker_LineTo (line 1278) | FT_EXPORT_DEF( FT_Error )
function FT_Stroker_ConicTo (line 1351) | FT_EXPORT_DEF( FT_Error )
function FT_Stroker_CubicTo (line 1546) | FT_EXPORT_DEF( FT_Error )
function FT_Stroker_BeginSubPath (line 1756) | FT_EXPORT_DEF( FT_Error )
function FT_Error (line 1788) | static FT_Error
function FT_Stroker_EndSubPath (line 1855) | FT_EXPORT_DEF( FT_Error )
function FT_Stroker_GetBorderCounts (line 1945) | FT_EXPORT_DEF( FT_Error )
function FT_Stroker_GetCounts (line 1976) | FT_EXPORT_DEF( FT_Error )
function FT_Stroker_ExportBorder (line 2008) | FT_EXPORT_DEF( void )
function FT_Stroker_Export (line 2027) | FT_EXPORT_DEF( void )
function FT_Stroker_ParseOutline (line 2042) | FT_EXPORT_DEF( FT_Error )
function FT_Glyph_Stroke (line 2256) | FT_EXPORT_DEF( FT_Error )
function FT_Glyph_StrokeBorder (line 2331) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftsynth.c
function FT_GlyphSlot_Oblique (line 47) | FT_EXPORT_DEF( void )
function FT_GlyphSlot_Embolden (line 84) | FT_EXPORT_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftsystem.c
function ft_alloc (line 68) | FT_CALLBACK_DEF( void* )
function ft_realloc (line 98) | FT_CALLBACK_DEF( void* )
function ft_free (line 124) | FT_CALLBACK_DEF( void )
function ft_ansi_stream_close (line 167) | FT_CALLBACK_DEF( void )
function ft_ansi_stream_io (line 200) | FT_CALLBACK_DEF( unsigned long )
function FT_Stream_Open (line 223) | FT_BASE_DEF( FT_Error )
function FT_New_Memory (line 286) | FT_BASE_DEF( FT_Memory )
function FT_Done_Memory (line 310) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/fttrigon.c
type FT_INT64 (line 25) | typedef FT_INT64 FT_Int64;
function FT_Fixed (line 50) | static FT_Fixed
function FT_Fixed (line 69) | static FT_Fixed
function FT_Int (line 104) | static FT_Int
function ft_trig_pseudo_rotate (line 190) | static void
function ft_trig_pseudo_polarize (line 244) | static void
function FT_Cos (line 303) | FT_EXPORT_DEF( FT_Fixed )
function FT_Sin (line 319) | FT_EXPORT_DEF( FT_Fixed )
function FT_Tan (line 328) | FT_EXPORT_DEF( FT_Fixed )
function FT_Atan2 (line 344) | FT_EXPORT_DEF( FT_Angle )
function FT_Vector_Unit (line 365) | FT_EXPORT_DEF( void )
function FT_Vector_Rotate (line 387) | FT_EXPORT_DEF( void )
function FT_Vector_Length (line 425) | FT_EXPORT_DEF( FT_Fixed )
function FT_Vector_Polarize (line 459) | FT_EXPORT_DEF( void )
function FT_Vector_From_Polar (line 485) | FT_EXPORT_DEF( void )
function FT_Angle_Diff (line 499) | FT_EXPORT_DEF( FT_Angle )
FILE: libs/PDF-Writer/FreeType/src/base/fttype1.c
function FT_Get_PS_Font_Info (line 27) | FT_EXPORT_DEF( FT_Error )
function FT_Has_PS_Glyph_Names (line 51) | FT_EXPORT_DEF( FT_Int )
function FT_Get_PS_Font_Private (line 72) | FT_EXPORT_DEF( FT_Error )
function FT_Get_PS_Font_Value (line 96) | FT_EXPORT_DEF( FT_Long )
FILE: libs/PDF-Writer/FreeType/src/base/ftutil.c
function ft_mem_alloc (line 49) | FT_BASE_DEF( FT_Pointer )
function ft_mem_qalloc (line 65) | FT_BASE_DEF( FT_Pointer )
function ft_mem_realloc (line 91) | FT_BASE_DEF( FT_Pointer )
function ft_mem_qrealloc (line 112) | FT_BASE_DEF( FT_Pointer )
function ft_mem_free (line 166) | FT_BASE_DEF( void )
function ft_mem_dup (line 175) | FT_BASE_DEF( FT_Pointer )
function ft_mem_strdup (line 193) | FT_BASE_DEF( FT_Pointer )
function ft_mem_strcpyn (line 206) | FT_BASE_DEF( FT_Int )
function FT_List_Find (line 240) | FT_EXPORT_DEF( FT_ListNode )
function FT_List_Add (line 262) | FT_EXPORT_DEF( void )
function FT_List_Insert (line 283) | FT_EXPORT_DEF( void )
function FT_List_Remove (line 304) | FT_EXPORT_DEF( void )
function FT_List_Up (line 328) | FT_EXPORT_DEF( void )
function FT_List_Iterate (line 358) | FT_EXPORT_DEF( FT_Error )
function FT_List_Finalize (line 385) | FT_EXPORT_DEF( void )
function ft_highpow2 (line 413) | FT_BASE_DEF( FT_UInt32 )
function FT_Alloc (line 437) | FT_BASE_DEF( FT_Error )
function FT_QAlloc (line 450) | FT_BASE_DEF( FT_Error )
function FT_Realloc (line 463) | FT_BASE_DEF( FT_Error )
function FT_QRealloc (line 477) | FT_BASE_DEF( FT_Error )
function FT_Free (line 491) | FT_BASE_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/base/ftwinfnt.c
function FT_Get_WinFNT_Header (line 27) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/base/ftxf86.c
function FT_Get_X11_Font_Format (line 27) | FT_EXPORT_DEF( const char* )
FILE: libs/PDF-Writer/FreeType/src/bdf/bdf.h
type bdf_options_t (line 77) | typedef struct bdf_options_t_
type bdf_property_t (line 109) | typedef struct bdf_property_t_
type bdf_bbx_t (line 132) | typedef struct bdf_bbx_t_
type bdf_glyph_t (line 146) | typedef struct bdf_glyph_t_
type _hashnode (line 160) | typedef struct _hashnode_
type hashtable (line 168) | typedef struct hashtable_
type bdf_glyphlist_t (line 178) | typedef struct bdf_glyphlist_t_
type bdf_font_t (line 192) | typedef struct bdf_font_t_
FILE: libs/PDF-Writer/FreeType/src/bdf/bdfdrivr.c
type BDF_CMapRec (line 54) | typedef struct BDF_CMapRec_
function bdf_cmap_init (line 63) | FT_CALLBACK_DEF( FT_Error )
function bdf_cmap_done (line 79) | FT_CALLBACK_DEF( void )
function bdf_cmap_char_index (line 90) | FT_CALLBACK_DEF( FT_UInt )
function bdf_cmap_char_next (line 129) | FT_CALLBACK_DEF( FT_UInt )
function FT_Error (line 198) | static FT_Error
function BDF_Face_Done (line 311) | FT_CALLBACK_DEF( void )
function BDF_Face_Init (line 338) | FT_CALLBACK_DEF( FT_Error )
function BDF_Size_Select (line 598) | FT_CALLBACK_DEF( FT_Error )
function BDF_Size_Request (line 615) | FT_CALLBACK_DEF( FT_Error )
function BDF_Glyph_Load (line 655) | FT_CALLBACK_DEF( FT_Error )
function FT_Error (line 742) | static FT_Error
function FT_Error (line 793) | static FT_Error
function bdf_driver_requester (line 826) | FT_CALLBACK_DEF( FT_Module_Interface )
FILE: libs/PDF-Writer/FreeType/src/bdf/bdfdrivr.h
type BDF_encoding_el (line 44) | typedef struct BDF_encoding_el_
type BDF_FaceRec (line 52) | typedef struct BDF_FaceRec_
FILE: libs/PDF-Writer/FreeType/src/bdf/bdflib.c
function hashnode (line 223) | static hashnode*
function FT_Error (line 251) | static FT_Error
function FT_Error (line 281) | static FT_Error
function hash_free (line 301) | static void
function FT_Error (line 319) | static FT_Error
function hashnode (line 355) | static hashnode
type FT_Error (line 375) | typedef FT_Error
type _bdf_list_t (line 385) | typedef struct _bdf_list_t_
type _bdf_parse_t (line 397) | typedef struct _bdf_parse_t_
function _bdf_list_init (line 432) | static void
function _bdf_list_done (line 441) | static void
function FT_Error (line 455) | static FT_Error
function _bdf_list_shift (line 489) | static void
function FT_Error (line 552) | static FT_Error
function FT_Error (line 660) | static FT_Error
function _bdf_atoul (line 846) | static unsigned long
function _bdf_atol (line 893) | static long
function _bdf_atos (line 948) | static short
function by_encoding (line 1003) | static int
function FT_Error (line 1023) | static FT_Error
function bdf_get_property (line 1073) | FT_LOCAL_DEF( bdf_property_t * )
function FT_Error (line 1130) | static FT_Error
function FT_Error (line 1159) | static FT_Error
function _bdf_is_atom (line 1227) | static int
function FT_Error (line 1291) | static FT_Error
function FT_Error (line 1458) | static FT_Error
function FT_Error (line 1953) | static FT_Error
function FT_Error (line 2058) | static FT_Error
function bdf_load_font (line 2363) | FT_LOCAL_DEF( FT_Error )
function bdf_free_font (line 2521) | FT_LOCAL_DEF( void )
function bdf_get_font_property (line 2602) | FT_LOCAL_DEF( bdf_property_t * )
FILE: libs/PDF-Writer/FreeType/src/bzip2/ftbzip2.c
function ft_bzip2_free (line 84) | static void
type FT_BZip2FileRec (line 102) | typedef struct FT_BZip2FileRec_
function FT_Error (line 120) | static FT_Error
function FT_Error (line 146) | static FT_Error
function ft_bzip2_file_done (line 192) | static void
function FT_Error (line 215) | static FT_Error
function FT_Error (line 245) | static FT_Error
function FT_Error (line 280) | static FT_Error
function FT_Error (line 324) | static FT_Error
function FT_ULong (line 354) | static FT_ULong
function ft_bzip2_stream_close (line 422) | static void
function FT_ULong (line 441) | static FT_ULong
function FT_Stream_OpenBzip2 (line 454) | FT_EXPORT_DEF( FT_Error )
function FT_Stream_OpenBzip2 (line 498) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cache/ftcbasic.c
type FTC_OldFontRec (line 39) | typedef struct FTC_OldFontRec_
type FTC_OldImageDescRec (line 48) | typedef struct FTC_OldImageDescRec_
type FTC_BasicAttrRec (line 75) | typedef struct FTC_BasicAttrRec_
type FTC_BasicQueryRec (line 90) | typedef struct FTC_BasicQueryRec_
type FTC_BasicFamilyRec (line 98) | typedef struct FTC_BasicFamilyRec_
function ftc_basic_family_compare (line 106) | FT_CALLBACK_DEF( FT_Bool )
function ftc_basic_family_init (line 118) | FT_CALLBACK_DEF( FT_Error )
function ftc_basic_family_get_count (line 134) | FT_CALLBACK_DEF( FT_UInt )
function ftc_basic_family_load_bitmap (line 163) | FT_CALLBACK_DEF( FT_Error )
function ftc_basic_family_load_glyph (line 190) | FT_CALLBACK_DEF( FT_Error )
function ftc_basic_gnode_compare_faceid (line 238) | FT_CALLBACK_DEF( FT_Bool )
function FTC_ImageCache_New (line 304) | FT_EXPORT_DEF( FT_Error )
function FTC_ImageCache_Lookup (line 315) | FT_EXPORT_DEF( FT_Error )
function FTC_ImageCache_LookupScaler (line 410) | FT_EXPORT_DEF( FT_Error )
type FTC_OldImage_Desc (line 474) | typedef struct FTC_OldImage_Desc_
function ftc_image_type_from_old_desc (line 507) | static void
function FTC_Image_Cache_New (line 567) | FT_EXPORT_DEF( FT_Error )
function FTC_Image_Cache_Lookup (line 576) | FT_EXPORT_DEF( FT_Error )
function FTC_SBitCache_New (line 642) | FT_EXPORT_DEF( FT_Error )
function FTC_SBitCache_Lookup (line 653) | FT_EXPORT_DEF( FT_Error )
function FTC_SBitCache_LookupScaler (line 749) | FT_EXPORT_DEF( FT_Error )
function FTC_SBit_Cache_New (line 823) | FT_EXPORT_DEF( FT_Error )
function FTC_SBit_Cache_Lookup (line 831) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cache/ftccache.c
function ftc_node_mru_link (line 49) | static void
function ftc_node_mru_unlink (line 63) | static void
function ftc_node_mru_up (line 79) | static void
function ftc_get_top_node_for_hash (line 91) | FT_LOCAL_DEF( FTC_Node* )
function ftc_cache_resize (line 113) | static void
function ftc_node_hash_unlink (line 224) | static void
function ftc_node_hash_link (line 257) | static void
function FTC_Cache_Init (line 332) | FT_LOCAL_DEF( FT_Error )
function ftc_cache_init (line 339) | FT_LOCAL_DEF( FT_Error )
function FTC_Cache_Clear (line 355) | static void
function ftc_cache_done (line 393) | FT_LOCAL_DEF( void )
function FTC_Cache_Done (line 413) | FT_LOCAL_DEF( void )
function ftc_cache_add (line 420) | static void
function FTC_Cache_NewNode (line 448) | FT_LOCAL_DEF( FT_Error )
function FTC_Cache_Lookup (line 487) | FT_LOCAL_DEF( FT_Error )
function FTC_Cache_RemoveFaceID (line 568) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/cache/ftccache.h
type FTC_CacheRec_ (line 32) | struct FTC_CacheRec_
type FTC_CacheClassRec_ (line 35) | struct FTC_CacheClassRec_
type FTC_NodeRec (line 59) | typedef struct FTC_NodeRec_
type FT_Error (line 106) | typedef FT_Error
type FT_Offset (line 111) | typedef FT_Offset
type FT_Bool (line 116) | typedef FT_Bool
type FT_Error (line 127) | typedef FT_Error
type FTC_CacheClassRec (line 134) | typedef struct FTC_CacheClassRec_
type FTC_CacheRec (line 150) | typedef struct FTC_CacheRec_
FILE: libs/PDF-Writer/FreeType/src/cache/ftccmap.c
type FTC_OldCMapType (line 36) | typedef enum FTC_OldCMapType_
type FTC_OldCMapIdRec (line 45) | typedef struct FTC_OldCMapIdRec_
type FTC_OldCMapDescRec (line 53) | typedef struct FTC_OldCMapDescRec_
type FTC_CMapQueryRec (line 94) | typedef struct FTC_CMapQueryRec_
type FTC_CMapNodeRec (line 107) | typedef struct FTC_CMapNodeRec_
function ftc_cmap_node_free (line 135) | FT_CALLBACK_DEF( void )
function ftc_cmap_node_new (line 148) | FT_CALLBACK_DEF( FT_Error )
function ftc_cmap_node_weight (line 178) | FT_CALLBACK_DEF( FT_Offset )
function ftc_cmap_node_compare (line 190) | FT_CALLBACK_DEF( FT_Bool )
function ftc_cmap_node_remove_faceid (line 216) | FT_CALLBACK_DEF( FT_Bool )
function FTC_CMapCache_New (line 259) | FT_EXPORT_DEF( FT_Error )
function FTC_CMapCache_Lookup (line 286) | FT_EXPORT_DEF( FT_UInt )
FILE: libs/PDF-Writer/FreeType/src/cache/ftcglyph.c
function FTC_GNode_Init (line 30) | FT_LOCAL_DEF( void )
function FTC_GNode_UnselectFamily (line 41) | FT_LOCAL_DEF( void )
function FTC_GNode_Done (line 54) | FT_LOCAL_DEF( void )
function ftc_gnode_compare (line 65) | FT_LOCAL_DEF( FT_Bool )
function FTC_GNode_Compare (line 85) | FT_LOCAL_DEF( FT_Bool )
function FTC_Family_Init (line 105) | FT_LOCAL_DEF( void )
function ftc_gcache_init (line 118) | FT_LOCAL_DEF( FT_Error )
function FTC_GCache_Init (line 143) | FT_LOCAL_DEF( FT_Error )
function ftc_gcache_done (line 152) | FT_LOCAL_DEF( void )
function FTC_GCache_Done (line 165) | FT_LOCAL_DEF( void )
function FTC_GCache_New (line 174) | FT_LOCAL_DEF( FT_Error )
function FTC_GCache_Lookup (line 186) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cache/ftcglyph.h
type FTC_FamilyRec_ (line 135) | struct FTC_FamilyRec_
type FTC_GNodeRec (line 148) | typedef struct FTC_GNodeRec_
type FTC_GQueryRec (line 160) | typedef struct FTC_GQueryRec_
type FTC_GCacheRec (line 212) | typedef struct FTC_GCacheRec_
type FTC_GCacheClassRec (line 237) | typedef struct FTC_GCacheClassRec_
type FTC_GCacheClassRec (line 244) | typedef const FTC_GCacheClassRec* FTC_GCacheClass;
FILE: libs/PDF-Writer/FreeType/src/cache/ftcimage.c
function ftc_inode_free (line 29) | FT_LOCAL_DEF( void )
function FTC_INode_Free (line 48) | FT_LOCAL_DEF( void )
function FTC_INode_New (line 57) | FT_LOCAL_DEF( FT_Error )
function ftc_inode_new (line 93) | FT_LOCAL_DEF( FT_Error )
function ftc_inode_weight (line 106) | FT_LOCAL_DEF( FT_Offset )
function FTC_INode_Weight (line 154) | FT_LOCAL_DEF( FT_Offset )
FILE: libs/PDF-Writer/FreeType/src/cache/ftcimage.h
type FTC_INodeRec_ (line 47) | struct FTC_INodeRec_
type FT_Error (line 58) | typedef FT_Error
type FTC_IFamilyClassRec (line 64) | typedef struct FTC_IFamilyClassRec_
type FTC_IFamilyClassRec (line 71) | typedef const FTC_IFamilyClassRec* FTC_IFamilyClass;
FILE: libs/PDF-Writer/FreeType/src/cache/ftcmanag.c
function FT_Error (line 40) | static FT_Error
type FTC_SizeNodeRec (line 77) | typedef struct FTC_SizeNodeRec_
function ftc_size_node_done (line 88) | FT_CALLBACK_DEF( void )
function ftc_size_node_compare (line 102) | FT_CALLBACK_DEF( FT_Bool )
function ftc_size_node_init (line 120) | FT_CALLBACK_DEF( FT_Error )
function ftc_size_node_reset (line 136) | FT_CALLBACK_DEF( FT_Error )
function FT_Bool (line 166) | static FT_Bool
function FTC_Manager_LookupSize (line 180) | FT_EXPORT_DEF( FT_Error )
type FTC_FaceNodeRec (line 221) | typedef struct FTC_FaceNodeRec_
function ftc_face_node_init (line 232) | FT_CALLBACK_DEF( FT_Error )
function ftc_face_node_done (line 260) | FT_CALLBACK_DEF( void )
function ftc_face_node_compare (line 281) | FT_CALLBACK_DEF( FT_Bool )
function FTC_Manager_LookupFace (line 307) | FT_EXPORT_DEF( FT_Error )
function FTC_Manager_New (line 352) | FT_EXPORT_DEF( FT_Error )
function FTC_Manager_Done (line 411) | FT_EXPORT_DEF( void )
function FTC_Manager_Reset (line 451) | FT_EXPORT_DEF( void )
function FTC_Manager_Check (line 465) | static void
function FTC_Manager_Compress (line 531) | FT_LOCAL_DEF( void )
function FTC_Manager_RegisterCache (line 573) | FT_LOCAL_DEF( FT_Error )
function FTC_Manager_FlushN (line 625) | FT_LOCAL_DEF( FT_UInt )
function FTC_Manager_RemoveFaceID (line 663) | FT_EXPORT_DEF( void )
function FTC_Node_Unref (line 683) | FT_EXPORT_DEF( void )
function FTC_Manager_Lookup_Face (line 694) | FT_EXPORT_DEF( FT_Error )
function FTC_Manager_Lookup_Size (line 703) | FT_EXPORT( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cache/ftcmanag.h
type FTC_ManagerRec (line 91) | typedef struct FTC_ManagerRec_
FILE: libs/PDF-Writer/FreeType/src/cache/ftcmru.c
function FTC_MruNode_Prepend (line 28) | FT_LOCAL_DEF( void )
function FTC_MruNode_Up (line 72) | FT_LOCAL_DEF( void )
function FTC_MruNode_Remove (line 121) | FT_LOCAL_DEF( void )
function FTC_MruList_Init (line 168) | FT_LOCAL_DEF( void )
function FTC_MruList_Reset (line 184) | FT_LOCAL_DEF( void )
function FTC_MruList_Done (line 194) | FT_LOCAL_DEF( void )
function FTC_MruList_Find (line 202) | FT_LOCAL_DEF( FTC_MruNode )
function FTC_MruList_New (line 235) | FT_LOCAL_DEF( FT_Error )
function FTC_MruList_Lookup (line 290) | FT_LOCAL_DEF( FT_Error )
function FTC_MruList_Remove (line 307) | FT_LOCAL_DEF( void )
function FTC_MruList_RemoveSelection (line 326) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/cache/ftcmru.h
type FTC_MruNodeRec_ (line 61) | struct FTC_MruNodeRec_
type FTC_MruNodeRec (line 63) | typedef struct FTC_MruNodeRec_
type FTC_MruListRec_ (line 84) | struct FTC_MruListRec_
type FTC_MruListClassRec_ (line 86) | struct FTC_MruListClassRec_
type FT_Bool (line 89) | typedef FT_Bool
type FT_Error (line 93) | typedef FT_Error
type FT_Error (line 98) | typedef FT_Error
type FTC_MruListClassRec (line 108) | typedef struct FTC_MruListClassRec_
type FTC_MruListRec (line 118) | typedef struct FTC_MruListRec_
FILE: libs/PDF-Writer/FreeType/src/cache/ftcsbits.c
function FT_Error (line 42) | static FT_Error
function ftc_snode_free (line 64) | FT_LOCAL_DEF( void )
function FTC_SNode_Free (line 83) | FT_LOCAL_DEF( void )
function FT_Error (line 101) | static FT_Error
function FTC_SNode_New (line 207) | FT_LOCAL_DEF( FT_Error )
function ftc_snode_new (line 265) | FT_LOCAL_DEF( FT_Error )
function ftc_snode_weight (line 278) | FT_LOCAL_DEF( FT_Offset )
function FTC_SNode_Weight (line 315) | FT_LOCAL_DEF( FT_Offset )
function ftc_snode_compare (line 324) | FT_LOCAL_DEF( FT_Bool )
function FTC_SNode_Compare (line 409) | FT_LOCAL_DEF( FT_Bool )
FILE: libs/PDF-Writer/FreeType/src/cache/ftcsbits.h
type FTC_SNodeRec (line 32) | typedef struct FTC_SNodeRec_
type FT_UInt (line 45) | typedef FT_UInt
type FT_Error (line 49) | typedef FT_Error
type FTC_SFamilyClassRec (line 55) | typedef struct FTC_SFamilyClassRec_
type FTC_SFamilyClassRec (line 63) | typedef const FTC_SFamilyClassRec* FTC_SFamilyClass;
FILE: libs/PDF-Writer/FreeType/src/cff/cffcmap.c
function cff_cmap_encoding_init (line 33) | FT_CALLBACK_DEF( FT_Error )
function cff_cmap_encoding_done (line 47) | FT_CALLBACK_DEF( void )
function cff_cmap_encoding_char_index (line 54) | FT_CALLBACK_DEF( FT_UInt )
function cff_cmap_encoding_char_next (line 68) | FT_CALLBACK_DEF( FT_UInt32 )
function cff_sid_to_glyph_name (line 122) | FT_CALLBACK_DEF( const char* )
function cff_cmap_unicode_init (line 135) | FT_CALLBACK_DEF( FT_Error )
function cff_cmap_unicode_done (line 159) | FT_CALLBACK_DEF( void )
function cff_cmap_unicode_char_index (line 171) | FT_CALLBACK_DEF( FT_UInt )
function cff_cmap_unicode_char_next (line 184) | FT_CALLBACK_DEF( FT_UInt32 )
FILE: libs/PDF-Writer/FreeType/src/cff/cffcmap.h
type CFF_CMapStdRec_ (line 36) | struct CFF_CMapStdRec_
type CFF_CMapStdRec (line 38) | typedef struct CFF_CMapStdRec_
FILE: libs/PDF-Writer/FreeType/src/cff/cffdrivr.c
function cff_get_kerning (line 102) | FT_CALLBACK_DEF( FT_Error )
function cff_glyph_load (line 151) | FT_CALLBACK_DEF( FT_Error )
function cff_get_advances (line 190) | FT_CALLBACK_DEF( FT_Error )
function FT_Error (line 224) | static FT_Error
function FT_UInt (line 262) | static FT_UInt
function FT_Int (line 312) | static FT_Int
function FT_Error (line 319) | static FT_Error
function FT_Error (line 402) | static FT_Error
function FT_Error (line 441) | static FT_Error
function FT_Error (line 498) | static FT_Error
function FT_Error (line 521) | static FT_Error
function cff_get_interface (line 598) | FT_CALLBACK_DEF( FT_Module_Interface )
FILE: libs/PDF-Writer/FreeType/src/cff/cffgload.c
type CFF_Operator (line 42) | typedef enum CFF_Operator_
function cff_builder_init (line 246) | static void
function cff_builder_done (line 306) | static void
function FT_Int (line 334) | static FT_Int
function cff_decoder_init (line 376) | FT_LOCAL_DEF( void )
function cff_decoder_prepare (line 407) | FT_LOCAL_DEF( FT_Error )
function FT_Error (line 464) | static FT_Error
function cff_builder_add_point (line 473) | static void
function FT_Error (line 498) | static FT_Error
function FT_Error (line 515) | static FT_Error
function FT_Error (line 543) | static FT_Error
function cff_builder_close_contour (line 565) | static void
function FT_Int (line 610) | static FT_Int
function FT_Error (line 639) | static FT_Error
function cff_free_glyph_data (line 675) | static void
function FT_Error (line 710) | static FT_Error
function cff_decoder_parse_charstrings (line 882) | FT_LOCAL_DEF( FT_Error )
function cff_compute_max_advance (line 2525) | FT_LOCAL_DEF( FT_Error )
function cff_slot_load (line 2579) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cff/cffgload.h
type CFF_Builder (line 81) | typedef struct CFF_Builder_
type CFF_Decoder_Zone (line 111) | typedef struct CFF_Decoder_Zone_
type CFF_Decoder (line 120) | typedef struct CFF_Decoder_
FILE: libs/PDF-Writer/FreeType/src/cff/cffload.c
function cff_get_standard_encoding (line 182) | FT_LOCAL_DEF( FT_UShort )
function FT_ULong (line 201) | static FT_ULong
function FT_Error (line 225) | static FT_Error
function cff_index_done (line 300) | static void
function FT_Error (line 318) | static FT_Error
function FT_Error (line 382) | static FT_Error
function cff_index_access_element (line 468) | FT_LOCAL_DEF( FT_Error )
function cff_index_forget_element (line 566) | FT_LOCAL_DEF( void )
function cff_index_get_name (line 581) | FT_LOCAL_DEF( FT_String* )
function cff_index_get_string (line 610) | FT_LOCAL_DEF( FT_String* )
function cff_index_get_sid_string (line 620) | FT_LOCAL_DEF( FT_String* )
function CFF_Done_FD_Select (line 650) | static void
function FT_Error (line 663) | static FT_Error
function cff_fd_select_get (line 707) | FT_LOCAL_DEF( FT_Byte )
function FT_Error (line 778) | static FT_Error
function cff_charset_cid_to_gindex (line 815) | FT_LOCAL_DEF( FT_UInt )
function cff_charset_free_cids (line 829) | static void
function cff_charset_done (line 838) | static void
function FT_Error (line 853) | static FT_Error
function cff_encoding_done (line 1043) | static void
function FT_Error (line 1052) | static FT_Error
function FT_Error (line 1295) | static FT_Error
function cff_subfont_done (line 1405) | static void
function cff_font_load (line 1417) | FT_LOCAL_DEF( FT_Error )
function cff_font_done (line 1650) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/cff/cffobjs.c
function PSH_Globals_Funcs (line 54) | static PSH_Globals_Funcs
function cff_size_done (line 71) | FT_LOCAL_DEF( void )
function cff_make_private_dict (line 105) | static void
function cff_size_init (line 152) | FT_LOCAL_DEF( FT_Error )
function cff_size_select (line 205) | FT_LOCAL_DEF( FT_Error )
function cff_size_request (line 262) | FT_LOCAL_DEF( FT_Error )
function cff_slot_done (line 338) | FT_LOCAL_DEF( void )
function cff_slot_init (line 345) | FT_LOCAL_DEF( FT_Error )
function FT_String (line 380) | static FT_String*
function remove_subset_prefix (line 400) | static void
function remove_style (line 434) | static void
function cff_face_init (line 477) | FT_LOCAL_DEF( FT_Error )
function cff_face_done (line 1017) | FT_LOCAL_DEF( void )
function cff_driver_init (line 1047) | FT_LOCAL_DEF( FT_Error )
function cff_driver_done (line 1056) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/cff/cffobjs.h
type CFF_DriverRec_ (line 42) | struct CFF_DriverRec_
type TT_Face (line 44) | typedef TT_Face CFF_Face;
type CFF_SizeRec (line 55) | typedef struct CFF_SizeRec_
type CFF_GlyphSlotRec (line 71) | typedef struct CFF_GlyphSlotRec_
type CFF_InternalRec (line 92) | typedef struct CFF_InternalRec_
type CFF_Transform (line 104) | typedef struct CFF_Transform_
type CFF_DriverRec (line 117) | typedef struct CFF_DriverRec_
FILE: libs/PDF-Writer/FreeType/src/cff/cffparse.c
function cff_parser_init (line 38) | FT_LOCAL_DEF( void )
function FT_Long (line 54) | static FT_Long
function FT_Fixed (line 129) | static FT_Fixed
function FT_Long (line 404) | static FT_Long
function FT_Fixed (line 413) | static FT_Fixed
function FT_Fixed (line 448) | static FT_Fixed
function FT_Fixed (line 457) | static FT_Fixed
function FT_Fixed (line 468) | static FT_Fixed
function FT_Error (line 510) | static FT_Error
function FT_Error (line 582) | static FT_Error
function FT_Error (line 612) | static FT_Error
function FT_Error (line 636) | static FT_Error
function FT_Destroy_Class_cff_field_handlers (line 782) | void
function FT_Error (line 794) | FT_Error
function cff_parser_run (line 932) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cff/cffparse.h
type CFF_ParserRec (line 37) | typedef struct CFF_ParserRec_
type FT_Error (line 81) | typedef FT_Error (*CFF_Field_Reader)( CFF_Parser parser );
type CFF_Field_Handler (line 83) | typedef struct CFF_Field_Handler_
FILE: libs/PDF-Writer/FreeType/src/cff/cffpic.c
function cff_driver_class_pic_free (line 75) | void
function FT_Error (line 101) | FT_Error
FILE: libs/PDF-Writer/FreeType/src/cff/cffpic.h
type CffModulePIC (line 50) | typedef struct CffModulePIC_
FILE: libs/PDF-Writer/FreeType/src/cff/cfftypes.h
type CFF_IndexRec_ (line 63) | struct CFF_IndexRec_
type CFF_EncodingRec (line 78) | typedef struct CFF_EncodingRec_
type CFF_CharsetRec (line 90) | typedef struct CFF_CharsetRec_
type CFF_FontRecDictRec (line 105) | typedef struct CFF_FontRecDictRec_
type CFF_PrivateRec (line 151) | typedef struct CFF_PrivateRec_
type CFF_FDSelectRec (line 186) | typedef struct CFF_FDSelectRec_
type CFF_SubFontRec (line 205) | typedef struct CFF_SubFontRec_
type CFF_FontRec (line 219) | typedef struct CFF_FontRec_
FILE: libs/PDF-Writer/FreeType/src/cid/cidgload.c
function cid_load_glyph (line 40) | FT_CALLBACK_DEF( FT_Error )
function cid_face_compute_max_advance (line 216) | FT_LOCAL_DEF( FT_Error )
function cid_slot_load_glyph (line 268) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cid/cidload.c
function cid_get_offset (line 41) | FT_LOCAL_DEF( FT_Long )
function FT_Error (line 69) | static FT_Error
function cid_parse_font_matrix (line 149) | FT_CALLBACK_DEF( FT_Error )
function parse_fd_array (line 203) | FT_CALLBACK_DEF( FT_Error )
function parse_expansion_factor (line 245) | FT_CALLBACK_DEF( FT_Error )
function FT_Error (line 278) | static FT_Error
function FT_Error (line 389) | static FT_Error
function cid_init_loader (line 515) | static void
function cid_done_loader (line 525) | static void
function FT_Error (line 536) | static FT_Error
function cid_face_open (line 634) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/cid/cidload.h
type CID_Loader_ (line 31) | struct CID_Loader_
FILE: libs/PDF-Writer/FreeType/src/cid/cidobjs.c
function cid_slot_done (line 49) | FT_LOCAL_DEF( void )
function cid_slot_init (line 56) | FT_LOCAL_DEF( FT_Error )
function PSH_Globals_Funcs (line 94) | static PSH_Globals_Funcs
function cid_size_done (line 110) | FT_LOCAL_DEF( void )
function cid_size_init (line 130) | FT_LOCAL_DEF( FT_Error )
function cid_size_request (line 155) | FT_LOCAL( FT_Error )
function cid_face_done (line 193) | FT_LOCAL_DEF( void )
function cid_face_init (line 277) | FT_LOCAL_DEF( FT_Error )
function cid_driver_init (line 464) | FT_LOCAL_DEF( FT_Error )
function cid_driver_done (line 484) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/cid/cidobjs.h
type CID_Size_Hints_ (line 33) | struct CID_Size_Hints_
type CID_Glyph_Hints (line 34) | typedef struct CID_Glyph_Hints_ CID_Glyph_Hints;
type CID_DriverRec_ (line 45) | struct CID_DriverRec_
type CID_SizeRec_ (line 56) | struct CID_SizeRec_
type CID_GlyphSlotRec_ (line 67) | struct CID_GlyphSlotRec_
type CID_CharMapRec_ (line 83) | struct CID_CharMapRec_
type CID_SizeRec (line 93) | typedef struct CID_SizeRec_
type CID_GlyphSlotRec (line 101) | typedef struct CID_GlyphSlotRec_
FILE: libs/PDF-Writer/FreeType/src/cid/cidparse.c
function cid_parser_new (line 50) | FT_LOCAL_DEF( FT_Error )
function cid_parser_done (line 210) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/cid/cidparse.h
type CID_Parser_ (line 61) | struct CID_Parser_
FILE: libs/PDF-Writer/FreeType/src/cid/cidriver.c
function FT_Error (line 71) | static FT_Error
function FT_Error (line 80) | static FT_Error
function FT_Error (line 103) | static FT_Error
function FT_Error (line 125) | static FT_Error
function FT_Error (line 140) | static FT_Error
function cid_get_interface (line 179) | FT_CALLBACK_DEF( FT_Module_Interface )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvbsln.c
type GXV_bsln_DataRec (line 53) | typedef struct GXV_bsln_DataRec_
function gxv_bsln_LookupValue_validate (line 72) | static void
function GXV_LookupValueDesc (line 123) | static GXV_LookupValueDesc
function gxv_bsln_parts_fmt0_validate (line 148) | static void
function gxv_bsln_parts_fmt1_validate (line 167) | static void
function gxv_bsln_parts_fmt2_validate (line 192) | static void
function gxv_bsln_parts_fmt3_validate (line 236) | static void
function gxv_bsln_validate (line 269) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvcommn.c
function gxv_compare_ushort_offset (line 49) | static int
function gxv_set_length_by_ushort_offset (line 62) | FT_LOCAL_DEF( void )
function gxv_compare_ulong_offset (line 114) | static int
function gxv_set_length_by_ulong_offset (line 127) | FT_LOCAL_DEF( void )
function gxv_array_getlimits_byte (line 180) | FT_LOCAL_DEF( void )
function gxv_array_getlimits_ushort (line 209) | FT_LOCAL_DEF( void )
type GXV_BinSrchHeader (line 246) | typedef struct GXV_BinSrchHeader_
function gxv_BinSrchHeader_check_consistency (line 257) | static void
function gxv_BinSrchHeader_validate (line 327) | FT_LOCAL_DEF( void )
function GXV_LookupValueDesc (line 386) | static GXV_LookupValueDesc
function gxv_LookupTable_fmt0_validate (line 422) | static void
function gxv_LookupTable_fmt2_skip_endmarkers (line 473) | static void
function gxv_LookupTable_fmt2_validate (line 493) | static void
function gxv_LookupTable_fmt4_validate (line 564) | static void
function gxv_LookupTable_fmt6_skip_endmarkers (line 645) | static void
function gxv_LookupTable_fmt6_validate (line 664) | static void
function gxv_LookupTable_fmt8_validate (line 718) | static void
function gxv_LookupTable_validate (line 754) | FT_LOCAL_DEF( void )
function gxv_glyphid_validate (line 812) | FT_LOCAL_DEF( FT_Int )
function gxv_ctlPoint_validate (line 845) | FT_LOCAL_DEF( void )
function gxv_sfntName_validate (line 884) | FT_LOCAL_DEF( void )
function gxv_ClassTable_validate (line 942) | static void
function gxv_StateArray_validate (line 1018) | static void
function gxv_EntryTable_validate (line 1070) | static void
function gxv_StateTable_subtable_setup (line 1187) | FT_LOCAL_DEF( void )
function gxv_StateTable_validate (line 1213) | FT_LOCAL_DEF( void )
function gxv_XStateTable_subtable_setup (line 1315) | FT_LOCAL_DEF( void )
function gxv_XClassTable_lookupval_validate (line 1341) | static void
function GXV_LookupValueDesc (line 1381) | static GXV_LookupValueDesc
function gxv_XStateArray_validate (line 1406) | static void
function gxv_XEntryTable_validate (line 1456) | static void
function gxv_XStateTable_validate (line 1557) | FT_LOCAL_DEF( void )
function gxv_compare_ranges (line 1673) | static int
function gxv_odtect_add_range (line 1701) | FT_LOCAL_DEF( void )
function gxv_odtect_validate (line 1714) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvcommn.h
type GXV_ValidatorRec_ (line 76) | struct GXV_ValidatorRec_
type GXV_LookupValueDesc (line 89) | typedef union GXV_LookupValueDesc_
type GXV_LookupValueDesc (line 96) | typedef const GXV_LookupValueDesc* GXV_LookupValueCPtr;
type GXV_LookupValue_SignSpec (line 98) | typedef enum GXV_LookupValue_SignSpec_
type GXV_LookupValueDesc (line 111) | typedef GXV_LookupValueDesc
type GXV_GlyphOffset_Format (line 120) | typedef enum GXV_GlyphOffset_Format_
type GXV_StateTable_GlyphOffsetDesc (line 142) | typedef union GXV_StateTable_GlyphOffsetDesc_
type GXV_StateTable_GlyphOffsetDesc (line 153) | typedef const GXV_StateTable_GlyphOffsetDesc* GXV_StateTable_GlyphOffset...
type GXV_StateTable_ValidatorRec (line 179) | typedef struct GXV_StateTable_ValidatorRec_
type GXV_StateTable_GlyphOffsetDesc (line 193) | typedef GXV_StateTable_GlyphOffsetDesc GXV_XStateTable_GlyphOffsetDesc;
type GXV_XStateTable_GlyphOffsetDesc (line 195) | typedef const GXV_XStateTable_GlyphOffsetDesc* GXV_XStateTable_GlyphOffs...
type GXV_StateTable_OptData_Load_Func (line 217) | typedef GXV_StateTable_OptData_Load_Func GXV_XStateTable_OptData_Load_F...
type GXV_XStateTable_ValidatorRec (line 220) | typedef struct GXV_XStateTable_ValidatorRec_
type GXV_ValidatorRec (line 237) | typedef struct GXV_ValidatorRec_
type GXV_odtect_DataRec (line 535) | typedef struct GXV_odtect_DataRec_
type GXV_odtect_RangeRec (line 543) | typedef struct GXV_odtect_RangeRec_
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvfeat.c
type GXV_feat_DataRec (line 51) | typedef struct GXV_feat_DataRec_
type GXV_FeatureFlagsMask (line 63) | typedef enum GXV_FeatureFlagsMask_
function gxv_feat_registry_validate (line 81) | static void
function gxv_feat_name_index_validate (line 137) | static void
function gxv_feat_setting_validate (line 162) | static void
function gxv_feat_name_validate (line 190) | static void
function gxv_feat_validate (line 272) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvfeat.h
type GX_Feature_RegistryRec (line 44) | typedef struct GXV_Feature_RegistryRec_
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvfgen.c
type GX_Feature_RegistryRec (line 87) | typedef struct GX_Feature_RegistryRec_
function main (line 442) | int
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvjust.c
type GXV_just_DataRec (line 55) | typedef struct GXV_just_DataRec_
function gxv_just_check_max_gid (line 69) | static void
function gxv_just_wdp_entry_validate (line 84) | static void
function gxv_just_wdc_entry_validate (line 127) | static void
function gxv_just_widthDeltaClusters_validate (line 149) | static void
function gxv_just_actSubrecord_type0_validate (line 176) | static void
function gxv_just_actSubrecord_type1_validate (line 224) | static void
function gxv_just_actSubrecord_type2_validate (line 242) | static void
function gxv_just_actSubrecord_type4_validate (line 273) | static void
function gxv_just_actSubrecord_type5_validate (line 310) | static void
function gxv_just_actSubrecord_validate (line 334) | static void
function gxv_just_pcActionRecord_validate (line 377) | static void
function gxv_just_pcTable_LookupValue_entry_validate (line 403) | static void
function gxv_just_pcLookupTable_validate (line 417) | static void
function gxv_just_postcompTable_validate (line 440) | static void
function gxv_just_classTable_entry_validate (line 462) | static void
function gxv_just_justClassTable_validate (line 496) | static void
function gxv_just_wdcTable_LookupValue_validate (line 539) | static void
function gxv_just_justData_lookuptable_validate (line 553) | static void
function gxv_just_justData_validate (line 578) | static void
function gxv_just_validate (line 642) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvkern.c
type GXV_kern_Version (line 53) | typedef enum GXV_kern_Version_
type GXV_kern_Dialect (line 61) | typedef enum GXV_kern_Dialect_
type GXV_kern_DataRec (line 71) | typedef struct GXV_kern_DataRec_
function gxv_kern_subtable_fmt0_pairs_validate (line 109) | static void
function gxv_kern_subtable_fmt0_validate (line 171) | static void
type GXV_kern_fmt1_StateOptRec (line 201) | typedef struct GXV_kern_fmt1_StateOptRec_
function gxv_kern_subtable_fmt1_valueTable_load (line 209) | static void
function gxv_kern_subtable_fmt1_subtable_setup (line 227) | static void
function gxv_kern_subtable_fmt1_entry_validate (line 261) | static void
function gxv_kern_subtable_fmt1_validate (line 313) | static void
type GXV_kern_ClassSpec (line 343) | typedef enum GXV_kern_ClassSpec_
type GXV_kern_subtable_fmt2_DataRec (line 355) | typedef struct GXV_kern_subtable_fmt2_DataRec_
function gxv_kern_subtable_fmt2_clstbl_validate (line 374) | static void
function gxv_kern_subtable_fmt2_validate (line 410) | static void
function gxv_kern_subtable_fmt3_validate (line 468) | static void
function FT_Bool (line 560) | static FT_Bool
function FT_Bool (line 597) | static FT_Bool
function FT_Bool (line 638) | static FT_Bool
function GXV_kern_Dialect (line 688) | static GXV_kern_Dialect
function gxv_kern_subtable_validate (line 741) | static void
function gxv_kern_validate_generic (line 835) | static void
function gxv_kern_validate (line 899) | FT_LOCAL_DEF( void )
function gxv_kern_validate_classic (line 908) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvlcar.c
type GXV_lcar_DataRec (line 49) | typedef struct GXV_lcar_DataRec_
function gxv_lcar_partial_validate (line 67) | static void
function gxv_lcar_LookupValue_validate (line 84) | static void
function GXV_LookupValueDesc (line 147) | static GXV_LookupValueDesc
function gxv_lcar_validate (line 181) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmod.c
function FT_Error (line 50) | static FT_Error
function FT_Error (line 107) | static FT_Error
function FT_Error (line 190) | static FT_Error
function FT_Pointer (line 258) | static FT_Pointer
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmort.c
function gxv_mort_feature_validate (line 41) | static void
function gxv_mort_featurearray_validate (line 88) | FT_LOCAL_DEF( void )
function gxv_mort_coverage_validate (line 120) | FT_LOCAL_DEF( void )
function gxv_mort_subtables_validate (line 147) | static void
function gxv_mort_chain_validate (line 219) | static void
function gxv_mort_validate (line 256) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmort.h
type GXV_mort_featureRec (line 36) | typedef struct GXV_mort_featureRec_
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmort0.c
function gxv_mort_subtable_type0_entry_validate (line 63) | static void
function gxv_mort_subtable_type0_validate (line 125) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmort1.c
type GXV_mort_subtable_type1_StateOptRec (line 41) | typedef struct GXV_mort_subtable_type1_StateOptRec_
function gxv_mort_subtable_type1_substitutionTable_load (line 53) | static void
function gxv_mort_subtable_type1_subtable_setup (line 69) | static void
function gxv_mort_subtable_type1_offset_to_subst_validate (line 100) | static void
function gxv_mort_subtable_type1_entry_validate (line 133) | static void
function gxv_mort_subtable_type1_substTable_validate (line 181) | static void
function gxv_mort_subtable_type1_validate (line 223) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmort2.c
type GXV_mort_subtable_type2_StateOptRec (line 41) | typedef struct GXV_mort_subtable_type2_StateOptRec_
function gxv_mort_subtable_type2_opttable_load (line 57) | static void
function gxv_mort_subtable_type2_subtable_setup (line 81) | static void
function gxv_mort_subtable_type2_ligActionOffset_validate (line 136) | static void
function gxv_mort_subtable_type2_entry_validate (line 210) | static void
function gxv_mort_subtable_type2_ligatureTable_validate (line 243) | static void
function gxv_mort_subtable_type2_validate (line 275) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmort4.c
function gxv_mort_subtable_type4_lookupval_validate (line 41) | static void
function GXV_LookupValueDesc (line 78) | static GXV_LookupValueDesc
function gxv_mort_subtable_type4_validate (line 104) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmort5.c
type GXV_mort_subtable_type5_StateOptRec (line 49) | typedef struct GXV_mort_subtable_type5_StateOptRec_
function gxv_mort_subtable_type5_subtable_setup (line 65) | FT_LOCAL_DEF( void )
function gxv_mort_subtable_type5_InsertList_validate (line 98) | static void
function gxv_mort_subtable_type5_entry_validate (line 141) | static void
function gxv_mort_subtable_type5_validate (line 201) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmorx.c
function gxv_morx_subtables_validate (line 41) | static void
function gxv_morx_chain_validate (line 116) | static void
function gxv_morx_validate (line 160) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmorx0.c
function gxv_morx_subtable_type0_entry_validate (line 41) | static void
function gxv_morx_subtable_type0_validate (line 85) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmorx1.c
type GXV_morx_subtable_type1_StateOptRec (line 41) | typedef struct GXV_morx_subtable_type1_StateOptRec_
function gxv_morx_subtable_type1_substitutionTable_load (line 55) | static void
function gxv_morx_subtable_type1_subtable_setup (line 71) | static void
function gxv_morx_subtable_type1_entry_validate (line 102) | static void
function gxv_morx_subtable_type1_LookupValue_validate (line 159) | static void
function GXV_LookupValueDesc (line 173) | static GXV_LookupValueDesc
function gxv_morx_subtable_type1_substitutionTable_validate (line 202) | static void
function gxv_morx_subtable_type1_validate (line 239) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmorx2.c
type GXV_morx_subtable_type2_StateOptRec (line 41) | typedef struct GXV_morx_subtable_type2_StateOptRec_
function gxv_morx_subtable_type2_opttable_load (line 58) | static void
function gxv_morx_subtable_type2_subtable_setup (line 83) | static void
function gxv_morx_subtable_type2_ligActionIndex_validate (line 141) | static void
function gxv_morx_subtable_type2_entry_validate (line 221) | static void
function gxv_morx_subtable_type2_ligatureTable_validate (line 260) | static void
function gxv_morx_subtable_type2_validate (line 293) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmorx4.c
function gxv_morx_subtable_type4_validate (line 41) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvmorx5.c
type GXV_morx_subtable_type5_StateOptRec (line 51) | typedef struct GXV_morx_subtable_type5_StateOptRec_
function gxv_morx_subtable_type5_insertionGlyphList_load (line 64) | static void
function gxv_morx_subtable_type5_subtable_setup (line 80) | static void
function gxv_morx_subtable_type5_InsertList_validate (line 111) | static void
function gxv_morx_subtable_type5_entry_validate (line 139) | static void
function gxv_morx_subtable_type5_validate (line 193) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvopbd.c
type GXV_opbd_DataRec (line 49) | typedef struct GXV_opbd_DataRec_
function gxv_opbd_LookupValue_validate (line 68) | static void
function GXV_LookupValueDesc (line 133) | static GXV_LookupValueDesc
function gxv_opbd_validate (line 160) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvprop.c
type GXV_prop_DataRec (line 52) | typedef struct GXV_prop_DataRec_
function gxv_prop_zero_advance_validate (line 76) | static void
function gxv_prop_property_validate (line 109) | static void
function gxv_prop_LookupValue_validate (line 187) | static void
function GXV_LookupValueDesc (line 223) | static GXV_LookupValueDesc
function gxv_prop_validate (line 255) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gxvalid/gxvtrak.c
type GXV_trak_DataRec (line 73) | typedef struct GXV_trak_DataRec_
function gxv_trak_trackTable_validate (line 92) | static void
function gxv_trak_trackData_validate (line 142) | static void
function gxv_trak_validate (line 205) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/gzip/adler32.c
function adler32 (line 21) | ZEXPORT(uLong) adler32( /* adler, buf, len) */
FILE: libs/PDF-Writer/FreeType/src/gzip/ftgzip.c
function voidpf (line 104) | static voidpf
function ft_gzip_free (line 119) | static void
function local (line 129) | local voidpf
function local (line 137) | local void
type FT_GZipFileRec (line 157) | typedef struct FT_GZipFileRec_
function FT_Error (line 185) | static FT_Error
function FT_Error (line 259) | static FT_Error
function ft_gzip_file_done (line 304) | static void
function FT_Error (line 327) | static FT_Error
function FT_Error (line 355) | static FT_Error
function FT_Error (line 390) | static FT_Error
function FT_Error (line 434) | static FT_Error
function FT_ULong (line 464) | static FT_ULong
function ft_gzip_stream_close (line 532) | static void
function FT_ULong (line 551) | static FT_ULong
function FT_ULong (line 564) | static FT_ULong
function FT_Stream_OpenGzip (line 586) | FT_EXPORT_DEF( FT_Error )
function FT_Stream_OpenGzip (line 676) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/gzip/infblock.c
function local (line 67) | local void inflate_blocks_reset( /* s, z, c) */
function local (line 88) | local inflate_blocks_statef *inflate_blocks_new( /* z, c, w) */
function local (line 119) | local int inflate_blocks( /* s, z, r) */
FILE: libs/PDF-Writer/FreeType/src/gzip/infblock.h
type inflate_blocks_state (line 14) | struct inflate_blocks_state
type inflate_blocks_statef (line 15) | typedef struct inflate_blocks_state FAR inflate_blocks_statef;
FILE: libs/PDF-Writer/FreeType/src/gzip/infcodes.c
type inflate_codes_mode (line 16) | typedef enum { /* waiting for "i:"=input, "o:"=output, "x:"=nothi...
type inflate_codes_state (line 30) | struct inflate_codes_state {
function local (line 58) | local inflate_codes_statef *inflate_codes_new( /* bl, bd, tl, td, z) */
function local (line 80) | local int inflate_codes( /* s, z, r) */
function local (line 244) | local void inflate_codes_free( /* c, z) */
FILE: libs/PDF-Writer/FreeType/src/gzip/infcodes.h
type inflate_codes_state (line 14) | struct inflate_codes_state
type inflate_codes_statef (line 15) | typedef struct inflate_codes_state FAR inflate_codes_statef;
FILE: libs/PDF-Writer/FreeType/src/gzip/inflate.c
type inflate_mode (line 12) | typedef enum {
type internal_state (line 30) | struct internal_state {
function inflateReset (line 54) | ZEXPORT(int) inflateReset( /* z) */
function inflateEnd (line 68) | ZEXPORT(int) inflateEnd( /* z) */
function inflateInit2_ (line 82) | ZEXPORT(int) inflateInit2_( /* z, w, version, stream_size) */
function inflate (line 147) | ZEXPORT(int) inflate( /* z, f) */
FILE: libs/PDF-Writer/FreeType/src/gzip/inftrees.c
function local (line 95) | local int huft_build( /* b, n, s, d, e, t, m, hp, hn, v) */
function local (line 327) | local int inflate_trees_dynamic( /* nl, nd, c, bl, bd, tl, td, hp, z) */
FILE: libs/PDF-Writer/FreeType/src/gzip/inftrees.h
type inflate_huft (line 17) | typedef struct inflate_huft_s FAR inflate_huft;
type inflate_huft_s (line 19) | struct inflate_huft_s {
FILE: libs/PDF-Writer/FreeType/src/gzip/infutil.c
function local (line 22) | local int inflate_flush( /* s, z, r) */
FILE: libs/PDF-Writer/FreeType/src/gzip/infutil.h
type inflate_block_mode (line 14) | typedef enum {
type inflate_blocks_state (line 28) | struct inflate_blocks_state {
FILE: libs/PDF-Writer/FreeType/src/gzip/zconf.h
type Byte (line 219) | typedef unsigned char Byte;
type uInt (line 221) | typedef unsigned int uInt;
type uLong (line 222) | typedef unsigned long uLong;
type Byte (line 228) | typedef Byte FAR Bytef;
type charf (line 230) | typedef char FAR charf;
type intf (line 231) | typedef int FAR intf;
type uInt (line 232) | typedef uInt FAR uIntf;
type uLong (line 233) | typedef uLong FAR uLongf;
type Byte (line 239) | typedef Byte FAR *voidpf;
type Byte (line 240) | typedef Byte *voidp;
FILE: libs/PDF-Writer/FreeType/src/gzip/zlib.h
type voidpf (line 63) | typedef voidpf (*alloc_func)
type internal_state (line 66) | struct internal_state
type z_stream (line 68) | typedef struct z_stream_s {
type z_stream (line 89) | typedef z_stream FAR *z_streamp;
FILE: libs/PDF-Writer/FreeType/src/gzip/zutil.c
function zmemcpy (line 17) | void zmemcpy(dest, source, len)
function zmemcmp (line 28) | int zmemcmp(s1, s2, len)
function zmemzero (line 41) | void zmemzero(dest, len)
type ptr_table (line 70) | typedef struct ptr_table_s {
function voidpf (line 83) | voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
function zcfree (line 107) | void zcfree (voidpf opaque, voidpf ptr)
function voidpf (line 142) | voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
function zcfree (line 148) | void zcfree (voidpf opaque, voidpf ptr)
function voidpf (line 164) | voidpf zcalloc (opaque, items, size)
function zcfree (line 173) | void zcfree (opaque, ptr)
FILE: libs/PDF-Writer/FreeType/src/gzip/zutil.h
type uch (line 34) | typedef unsigned char uch;
type uch (line 35) | typedef uch FAR uchf;
type ush (line 36) | typedef unsigned short ush;
type ush (line 37) | typedef ush FAR ushf;
type ulg (line 38) | typedef unsigned long ulg;
type uLong (line 205) | typedef uLong (*check_func)
FILE: libs/PDF-Writer/FreeType/src/lzw/ftlzw.c
type FT_LZWFileRec (line 71) | typedef struct FT_LZWFileRec_
function FT_Error (line 87) | static FT_Error
function FT_Error (line 108) | static FT_Error
function ft_lzw_file_done (line 138) | static void
function FT_Error (line 150) | static FT_Error
function FT_Error (line 170) | static FT_Error
function FT_Error (line 192) | static FT_Error
function FT_ULong (line 239) | static FT_ULong
function ft_lzw_stream_close (line 315) | static void
function FT_ULong (line 334) | static FT_ULong
function FT_Stream_OpenLZW (line 347) | FT_EXPORT_DEF( FT_Error )
function FT_Stream_OpenLZW (line 399) | FT_EXPORT_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/lzw/ftzopen.c
function ft_lzwstate_refill (line 27) | static int
function FT_Int32 (line 53) | static FT_Int32
function ft_lzwstate_stack_grow (line 109) | static int
function ft_lzwstate_prefix_grow (line 146) | static int
function ft_lzwstate_reset (line 184) | FT_LOCAL_DEF( void )
function ft_lzwstate_init (line 198) | FT_LOCAL_DEF( void )
function ft_lzwstate_done (line 218) | FT_LOCAL_DEF( void )
function ft_lzwstate_io (line 246) | FT_LOCAL_DEF( FT_ULong )
FILE: libs/PDF-Writer/FreeType/src/lzw/ftzopen.h
type FT_LzwPhase (line 49) | typedef enum FT_LzwPhase_
type FT_LzwStateRec (line 112) | typedef struct FT_LzwStateRec_
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvbase.c
function otv_BaseCoord_validate (line 33) | static void
function otv_BaseTagList_validate (line 72) | static void
function otv_BaseValues_validate (line 94) | static void
function otv_MinMax_validate (line 121) | static void
function otv_BaseScript_validate (line 176) | static void
function otv_BaseScriptList_validate (line 221) | static void
function otv_Axis_validate (line 251) | static void
function otv_BASE_validate (line 279) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvcommn.c
function otv_Coverage_validate (line 40) | FT_LOCAL_DEF( void )
function otv_Coverage_get_first (line 133) | FT_LOCAL_DEF( FT_UInt )
function otv_Coverage_get_last (line 145) | FT_LOCAL_DEF( FT_UInt )
function otv_Coverage_get_count (line 174) | FT_LOCAL_DEF( FT_UInt )
function otv_ClassDef_validate (line 220) | FT_LOCAL_DEF( void )
function otv_Device_validate (line 306) | FT_LOCAL_DEF( void )
function otv_Lookup_validate (line 345) | FT_LOCAL_DEF( void )
function otv_LookupList_validate (line 382) | FT_LOCAL_DEF( void )
function FT_UInt (line 409) | static FT_UInt
function otv_Feature_validate (line 426) | FT_LOCAL_DEF( void )
function FT_UInt (line 453) | static FT_UInt
function otv_FeatureList_validate (line 462) | FT_LOCAL_DEF( void )
function otv_LangSys_validate (line 506) | FT_LOCAL_DEF( void )
function otv_Script_validate (line 547) | FT_LOCAL_DEF( void )
function otv_ScriptList_validate (line 583) | FT_LOCAL_DEF( void )
function otv_x_Ox (line 641) | FT_LOCAL_DEF( void )
function otv_u_C_x_Ox (line 671) | FT_LOCAL_DEF( void )
function otv_x_ux (line 708) | FT_LOCAL_DEF( void )
function otv_x_y_ux_sy (line 741) | FT_LOCAL_DEF( void )
function otv_x_ux_y_uy_z_uz_p_sp (line 782) | FT_LOCAL_DEF( void )
function otv_u_O_O_x_Onx (line 838) | FT_LOCAL_DEF( void )
function otv_u_x_y_Ox_sy (line 884) | FT_LOCAL_DEF( void )
function otv_u_O_O_O_O_x_Onx (line 923) | FT_LOCAL_DEF( void )
function otv_u_x_Ox_y_Oy_z_Oz_p_sp (line 976) | FT_LOCAL_DEF( void )
function otv_GSUBGPOS_get_Lookup_count (line 1036) | FT_LOCAL_DEF( FT_UInt )
function otv_GSUBGPOS_have_MarkAttachmentType_flag (line 1046) | FT_LOCAL_DEF( FT_UInt )
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvcommn.h
type OTV_ValidatorRec_ (line 39) | struct OTV_ValidatorRec_
type OTV_ValidatorRec (line 44) | typedef struct OTV_ValidatorRec_
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvgdef.c
function otv_O_x_Ox (line 46) | static void
function otv_CaretValue_validate (line 93) | static void
function otv_GDEF_validate (line 146) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvgpos.c
function otv_x_sxy (line 58) | static void
function otv_u_O_O_u_O_O (line 106) | static void
function FT_UInt (line 152) | static FT_UInt
function otv_ValueRecord_validate (line 168) | static void
function otv_Anchor_validate (line 246) | static void
function otv_MarkArray_validate (line 312) | static void
function otv_SinglePos_validate (line 351) | static void
function otv_PairSet_validate (line 427) | static void
function otv_PairPos_validate (line 469) | static void
function otv_CursivePos_validate (line 576) | static void
function otv_MarkBasePos_validate (line 652) | static void
function otv_MarkLigPos_validate (line 693) | static void
function otv_MarkMarkPos_validate (line 734) | static void
function otv_ContextPos_validate (line 775) | static void
function otv_ChainContextPos_validate (line 834) | static void
function otv_ExtensionPos_validate (line 895) | static void
function otv_GPOS_subtable_validate (line 956) | FT_LOCAL_DEF( void )
function otv_GPOS_validate (line 977) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvgsub.c
function otv_SingleSubst_validate (line 43) | static void
function otv_MultipleSubst_validate (line 123) | static void
function otv_AlternateSubst_validate (line 164) | static void
function otv_Ligature_validate (line 207) | static void
function otv_LigatureSubst_validate (line 239) | static void
function otv_ContextSubst_validate (line 279) | static void
function otv_ChainContextSubst_validate (line 338) | static void
function otv_ExtensionSubst_validate (line 399) | static void
function otv_ReverseChainSingleSubst_validate (line 455) | static void
function otv_GSUB_validate (line 545) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvjstf.c
function otv_JstfPriority_validate (line 41) | static void
function otv_JstfScript_validate (line 147) | static void
function otv_JSTF_validate (line 204) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvmath.c
function otv_MathConstants_validate (line 45) | static void
function otv_MathItalicsCorrectionInfo_validate (line 85) | static void
function otv_MathKern_validate (line 134) | static void
function otv_MathKernInfo_validate (line 177) | static void
function otv_MathGlyphInfo_validate (line 224) | static void
function otv_GlyphAssembly_validate (line 273) | static void
function otv_MathGlyphConstruction_validate (line 314) | static void
function otv_MathVariants_validate (line 354) | static void
function otv_MATH_validate (line 415) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/otvalid/otvmod.c
function FT_Error (line 41) | static FT_Error
function FT_Error (line 67) | static FT_Error
function FT_Pointer (line 255) | static FT_Pointer
FILE: libs/PDF-Writer/FreeType/src/pcf/pcf.h
type PCF_TableRec_ (line 39) | struct PCF_TableRec_
type PCF_TocRec (line 49) | typedef struct PCF_TocRec_
type PCF_ParsePropertyRec (line 58) | typedef struct PCF_ParsePropertyRec_
type PCF_PropertyRec (line 67) | typedef struct PCF_PropertyRec_
type PCF_Compressed_MetricRec (line 83) | typedef struct PCF_Compressed_MetricRec_
type PCF_MetricRec (line 94) | typedef struct PCF_MetricRec_
type PCF_AccelRec (line 107) | typedef struct PCF_AccelRec_
type PCF_EncodingRec (line 127) | typedef struct PCF_EncodingRec_
type PCF_FaceRec (line 135) | typedef struct PCF_FaceRec_
FILE: libs/PDF-Writer/FreeType/src/pcf/pcfdrivr.c
type PCF_CMapRec (line 64) | typedef struct PCF_CMapRec_
function pcf_cmap_init (line 73) | FT_CALLBACK_DEF( FT_Error )
function pcf_cmap_done (line 90) | FT_CALLBACK_DEF( void )
function pcf_cmap_char_index (line 101) | FT_CALLBACK_DEF( FT_UInt )
function pcf_cmap_char_next (line 138) | FT_CALLBACK_DEF( FT_UInt )
function PCF_Face_Done (line 205) | FT_CALLBACK_DEF( void )
function PCF_Face_Init (line 259) | FT_CALLBACK_DEF( FT_Error )
function PCF_Size_Select (line 414) | FT_CALLBACK_DEF( FT_Error )
function PCF_Size_Request (line 431) | FT_CALLBACK_DEF( FT_Error )
function PCF_Glyph_Load (line 469) | FT_CALLBACK_DEF( FT_Error )
function FT_Error (line 592) | static FT_Error
function FT_Error (line 629) | static FT_Error
function pcf_driver_requester (line 662) | FT_CALLBACK_DEF( FT_Module_Interface )
FILE: libs/PDF-Writer/FreeType/src/pcf/pcfread.c
function FT_Error (line 87) | static FT_Error
function FT_Error (line 246) | static FT_Error
function FT_Error (line 289) | static FT_Error
function FT_Bool (line 328) | static FT_Bool
function pcf_find_property (line 374) | FT_LOCAL_DEF( PCF_Property )
function FT_Error (line 396) | static FT_Error
function FT_Error (line 565) | static FT_Error
function FT_Error (line 662) | static FT_Error
function FT_Error (line 764) | static FT_Error
function FT_Error (line 920) | static FT_Error
function FT_Error (line 994) | static FT_Error
function pcf_load_font (line 1104) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/pcf/pcfutil.c
function BitOrderInvert (line 43) | FT_LOCAL_DEF( void )
function TwoByteSwap (line 65) | FT_LOCAL_DEF( void )
function FourByteSwap (line 84) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrcmap.c
function pfr_cmap_init (line 25) | FT_CALLBACK_DEF( FT_Error )
function pfr_cmap_done (line 56) | FT_CALLBACK_DEF( void )
function pfr_cmap_char_index (line 64) | FT_CALLBACK_DEF( FT_UInt )
function pfr_cmap_char_next (line 91) | FT_CALLBACK_DEF( FT_UInt32 )
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrcmap.h
type PFR_CMapRec_ (line 29) | struct PFR_CMapRec_
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrdrivr.c
function pfr_get_kerning (line 30) | FT_CALLBACK_DEF( FT_Error )
function pfr_get_advance (line 63) | FT_CALLBACK_DEF( FT_Error )
function pfr_get_metrics (line 96) | FT_CALLBACK_DEF( FT_Error )
function pfr_get_service (line 159) | FT_CALLBACK_DEF( FT_Module_Interface )
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrgload.c
function pfr_glyph_init (line 39) | FT_LOCAL_DEF( void )
function pfr_glyph_done (line 52) | FT_LOCAL_DEF( void )
function pfr_glyph_close_contour (line 78) | static void
function pfr_glyph_start (line 119) | static void
function FT_Error (line 126) | static FT_Error
function FT_Error (line 160) | static FT_Error
function FT_Error (line 201) | static FT_Error
function pfr_glyph_end (line 225) | static void
function FT_Error (line 246) | static FT_Error
function FT_Error (line 556) | static FT_Error
function FT_Error (line 718) | static FT_Error
function pfr_glyph_load (line 827) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrload.c
function pfr_extra_items_skip (line 38) | FT_LOCAL_DEF( FT_Error )
function pfr_extra_items_parse (line 46) | FT_LOCAL_DEF( FT_Error )
function pfr_header_load (line 152) | FT_LOCAL_DEF( FT_Error )
function pfr_header_check (line 172) | FT_LOCAL_DEF( FT_Bool )
function pfr_log_font_count (line 199) | FT_LOCAL_DEF( FT_Error )
function pfr_log_font_load (line 220) | FT_LOCAL_DEF( FT_Error )
function pfr_extra_item_load_bitmap_info (line 347) | FT_CALLBACK_DEF( FT_Error )
function pfr_extra_item_load_font_id (line 447) | FT_CALLBACK_DEF( FT_Error )
function pfr_extra_item_load_stem_snaps (line 473) | FT_CALLBACK_DEF( FT_Error )
function pfr_extra_item_load_kerning_pairs (line 518) | FT_CALLBACK_DEF( FT_Error )
function FT_Error (line 628) | static FT_Error
function pfr_phy_font_done (line 667) | FT_LOCAL_DEF( void )
function pfr_phy_font_load (line 711) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrload.h
type FT_Error (line 48) | typedef FT_Error
type PFR_ExtraItemRec (line 53) | typedef struct PFR_ExtraItemRec_
type PFR_ExtraItemRec_ (line 60) | struct PFR_ExtraItemRec_
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrobjs.c
function pfr_face_done (line 42) | FT_LOCAL_DEF( void )
function pfr_face_init (line 66) | FT_LOCAL_DEF( FT_Error )
function pfr_slot_init (line 289) | FT_LOCAL_DEF( FT_Error )
function pfr_slot_done (line 302) | FT_LOCAL_DEF( void )
function pfr_slot_load (line 312) | FT_LOCAL_DEF( FT_Error )
function pfr_face_get_kerning (line 464) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrobjs.h
type PFR_FaceRec_ (line 27) | struct PFR_FaceRec_
type PFR_SizeRec_ (line 29) | struct PFR_SizeRec_
type PFR_SlotRec_ (line 31) | struct PFR_SlotRec_
type PFR_FaceRec (line 34) | typedef struct PFR_FaceRec_
type PFR_SizeRec (line 44) | typedef struct PFR_SizeRec_
type PFR_SlotRec (line 51) | typedef struct PFR_SlotRec_
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrsbit.c
type PFR_BitWriterRec (line 38) | typedef struct PFR_BitWriter_
function pfr_bitwriter_init (line 49) | static void
function pfr_bitwriter_decode_bytes (line 68) | static void
function pfr_bitwriter_decode_rle1 (line 122) | static void
function pfr_bitwriter_decode_rle2 (line 202) | static void
function pfr_lookup_bitmap_data (line 274) | static void
function FT_Error (line 345) | static FT_Error
function FT_Error (line 480) | static FT_Error
function pfr_slot_load_bitmap (line 527) | FT_LOCAL( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/pfr/pfrtypes.h
type PFR_HeaderRec_ (line 30) | struct PFR_HeaderRec_
type PFR_HeaderFlags (line 72) | typedef enum PFR_HeaderFlags_
type PFR_LogFontRec (line 82) | typedef struct PFR_LogFontRec_
type PFR_LogFlags (line 99) | typedef enum PFR_LogFlags_
type PFR_LineJoinFlags (line 111) | typedef enum PFR_LineJoinFlags_
type PFR_BitmapFlags (line 122) | typedef enum PFR_BitmapFlags_
type PFR_BitmapCharRec (line 131) | typedef struct PFR_BitmapCharRec_
type PFR_StrikeFlags (line 140) | typedef enum PFR_StrikeFlags_
type PFR_StrikeRec (line 151) | typedef struct PFR_StrikeRec_
type PFR_CharRec (line 172) | typedef struct PFR_CharRec_
type PFR_DimensionRec (line 184) | typedef struct PFR_DimensionRec_
type PFR_KernItemRec_ (line 194) | struct PFR_KernItemRec_
type PFR_KernItemRec (line 196) | typedef struct PFR_KernItemRec_
type PFR_PhyFontRec (line 222) | typedef struct PFR_PhyFontRec_
type PFR_PhyFlags (line 269) | typedef enum PFR_PhyFlags_
type PFR_KernFlags (line 282) | typedef enum PFR_KernFlags_
type PFR_GlyphFlags (line 292) | typedef enum PFR_GlyphFlags_
type PFR_CoordRec (line 304) | typedef struct PFR_CoordRec_
type PFR_SubGlyphRec (line 312) | typedef struct PFR_SubGlyphRec_
type PFR_SubGlyphFlags (line 324) | typedef enum PFR_SubgGlyphFlags_
type PFR_GlyphRec (line 334) | typedef struct PFR_GlyphRec_
FILE: libs/PDF-Writer/FreeType/src/psaux/afmparse.c
type AFM_StreamRec (line 45) | typedef struct AFM_StreamRec_
function afm_stream_skip_spaces (line 90) | static int
type AFM_Token (line 198) | typedef enum AFM_Token_
function afm_parser_read_vals (line 366) | FT_LOCAL_DEF( FT_Int )
function afm_parser_next_key (line 440) | FT_LOCAL_DEF( char* )
function AFM_Token (line 498) | static AFM_Token
function afm_parser_init (line 524) | FT_LOCAL_DEF( FT_Error )
function afm_parser_done (line 552) | FT_LOCAL( void )
function afm_parser_read_int (line 562) | FT_LOCAL_DEF( FT_Error )
function FT_Error (line 582) | static FT_Error
function afm_compare_kern_pairs (line 660) | FT_CALLBACK_DEF( int )
function FT_Error (line 680) | static FT_Error
function FT_Error (line 771) | static FT_Error
function FT_Error (line 813) | static FT_Error
function afm_parser_parse (line 843) | FT_LOCAL_DEF( FT_Error )
FILE: libs/PDF-Writer/FreeType/src/psaux/afmparse.h
function FT_BEGIN_HEADER (line 27) | FT_BEGIN_HEADER
FILE: libs/PDF-Writer/FreeType/src/psaux/psconv.c
function PS_Conv_Strtol (line 83) | FT_LOCAL_DEF( FT_Long )
function PS_Conv_ToInt (line 157) | FT_LOCAL_DEF( FT_Long )
function PS_Conv_ToFixed (line 191) | FT_LOCAL_DEF( FT_Fixed )
function PS_Conv_StringDecode (line 360) | FT_LOCAL_DEF( FT_UInt )
function PS_Conv_ASCIIHexDecode (line 455) | FT_LOCAL_DEF( FT_UInt )
function PS_Conv_EexecDecode (line 548) | FT_LOCAL_DEF( FT_UInt )
FILE: libs/PDF-Writer/FreeType/src/psaux/psobjs.c
function ps_table_new (line 68) | FT_LOCAL_DEF( FT_Error )
function shift_elements (line 98) | static void
function FT_Error (line 115) | static FT_Error
function ps_table_add (line 167) | FT_LOCAL_DEF( FT_Error )
function ps_table_done (line 239) | FT_LOCAL_DEF( void )
function ps_table_release (line 263) | FT_LOCAL_DEF( void )
function skip_comment (line 290) | static void
function skip_spaces (line 308) | static void
function FT_Error (line 338) | static FT_Error
function FT_Error (line 414) | static FT_Error
function FT_Error (line 453) | static FT_Error
function ps_parser_skip_PS_token (line 513) | FT_LOCAL_DEF( void )
function ps_parser_skip_spaces (line 608) | FT_LOCAL_DEF( void )
function ps_parser_to_token (line 618) | FT_LOCAL_DEF( void )
function ps_parser_to_token_array (line 721) | FT_LOCAL_DEF( void )
function FT_Int (line 774) | static FT_Int
function FT_Int (line 851) | static FT_Int
function FT_String (line 927) | static FT_String*
function ps_tobool (line 987) | static int
function ps_parser_load_field (line 1023) | FT_LOCAL_DEF( FT_Error )
function ps_parser_load_field_table (line 1238) | FT_LOCAL_DEF( FT_Error )
function ps_parser_to_int (line 1303) | FT_LOCAL_DEF( FT_Long )
function ps_parser_to_bytes (line 1313) | FT_LOCAL_DEF( FT_Error )
function ps_parser_to_fixed (line 1366) | FT_LOCAL_DEF( FT_Fixed )
function ps_parser_to_coord_array (line 1375) | FT_LOCAL_DEF( FT_Int )
function ps_parser_to_fixed_array (line 1386) | FT_LOCAL_DEF( FT_Int )
function T1_ToString (line 1400) | FT_LOCAL_DEF( FT_String* )
function T1_ToBool (line 1407) | FT_LOCAL_DEF( FT_Bool )
function ps_parser_init (line 1416) | FT_LOCAL_DEF( void )
function ps_parser_done (line 1431) | FT_LOCAL_DEF( void )
function t1_builder_init (line 1466) | FT_LOCAL_DEF( void )
function t1_builder_done (line 1522) | FT_LOCAL_DEF( void )
function t1_builder_check_points (line 1534) | FT_LOCAL_DEF( FT_Error )
function t1_builder_add_point (line 1543) | FT_LOCAL_DEF( void )
function t1_builder_add_point1 (line 1567) | FT_LOCAL_DEF( FT_Error )
function t1_builder_add_contour (line 1584) | FT_LOCAL_DEF( FT_Error )
function t1_builder_start_point (line 1619) | FT_LOCAL_DEF( FT_Error )
function t1_builder_close_contour (line 1644) | FT_LOCAL_DEF( void )
function t1_decrypt (line 1697) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/psaux/t1cmap.c
function t1_cmap_std_init (line 34) | static void
function t1_cmap_std_done (line 52) | FT_CALLBACK_DEF( void )
function t1_cmap_std_char_index (line 62) | FT_CALLBACK_DEF( FT_UInt )
function t1_cmap_std_char_next (line 98) | FT_CALLBACK_DEF( FT_UInt32 )
function t1_cmap_standard_init (line 122) | FT_CALLBACK_DEF( FT_Error )
function t1_cmap_expert_init (line 144) | FT_CALLBACK_DEF( FT_Error )
function t1_cmap_custom_init (line 174) | FT_CALLBACK_DEF( FT_Error )
function t1_cmap_custom_done (line 192) | FT_CALLBACK_DEF( void )
function t1_cmap_custom_char_index (line 201) | FT_CALLBACK_DEF( FT_UInt )
function t1_cmap_custom_char_next (line 216) | FT_CALLBACK_DEF( FT_UInt32 )
function psaux_get_glyph_name (line 266) | FT_CALLBACK_DEF( const char * )
function t1_cmap_unicode_init (line 274) | FT_CALLBACK_DEF( FT_Error )
function t1_cmap_unicode_done (line 291) | FT_CALLBACK_DEF( void )
function t1_cmap_unicode_char_index (line 303) | FT_CALLBACK_DEF( FT_UInt )
function t1_cmap_unicode_char_next (line 315) | FT_CALLBACK_DEF( FT_UInt32 )
FILE: libs/PDF-Writer/FreeType/src/psaux/t1cmap.h
type T1_CMapStdRec_ (line 38) | struct T1_CMapStdRec_
type T1_CMapStdRec (line 40) | typedef struct T1_CMapStdRec_
type T1_CMapCustomRec_ (line 68) | struct T1_CMapCustomRec_
type T1_CMapCustomRec (line 70) | typedef struct T1_CMapCustomRec_
FILE: libs/PDF-Writer/FreeType/src/psaux/t1decode.c
type T1_Operator (line 43) | typedef enum T1_Operator_
function FT_Int (line 129) | static FT_Int
function FT_Error (line 184) | static FT_Error
function t1_decoder_parse_charstrings (line 360) | FT_LOCAL_DEF( FT_Error )
function t1_decoder_parse_glyph (line 1556) | FT_LOCAL_DEF( FT_Error )
function t1_decoder_init (line 1565) | FT_LOCAL_DEF( FT_Error )
function t1_decoder_done (line 1613) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/pshinter/pshalgo.c
function FT_Int (line 54) | static FT_Int
function psh_hint_table_done (line 64) | static void
function psh_hint_table_deactivate (line 81) | static void
function psh_hint_table_record (line 97) | static void
function psh_hint_table_record_mask (line 144) | static void
function FT_Error (line 172) | static FT_Error
function psh_hint_table_activate_mask (line 245) | static void
function FT_Pos (line 345) | static FT_Pos
function ps_simple_scale (line 398) | static void
function FT_Fixed (line 423) | static FT_Fixed
function psh_hint_align (line 438) | static void
function psh_hint_align_light (line 666) | static void
function psh_hint_table_align_hints (line 847) | static void
function psh_print_zone (line 903) | static void
function psh_corner_is_flat (line 935) | FT_LOCAL_DEF( FT_Int )
function FT_Int (line 972) | static FT_Int
function psh_glyph_compute_inflections (line 1029) | static void
function psh_glyph_done (line 1137) | static void
function psh_compute_dir (line 1156) | static int
function psh_glyph_load_points (line 1183) | static void
function psh_glyph_save_points (line 1217) | static void
function FT_Error (line 1257) | static FT_Error
function psh_glyph_compute_extrema (line 1391) | static void
function psh_hint_table_find_strong_points (line 1515) | static void
function psh_glyph_find_strong_points (line 1668) | static void
function psh_glyph_find_blue_points (line 1751) | static void
function psh_glyph_interpolate_strong_points (line 1826) | static void
function psh_glyph_interpolate_normal_points (line 1877) | static void
function psh_glyph_interpolate_other_points (line 2031) | static void
function FT_Error (line 2179) | FT_Error
FILE: libs/PDF-Writer/FreeType/src/pshinter/pshalgo.h
type PSH_HintRec_ (line 32) | struct PSH_HintRec_
type PSH_Hint_Flags (line 35) | typedef enum PSH_Hint_Flags_
type PSH_HintRec (line 54) | typedef struct PSH_HintRec_
type PSH_ZoneRec (line 70) | typedef struct PSH_ZoneRec_
type PSH_Hint_TableRec (line 80) | typedef struct PSH_Hint_TableRec_
type PSH_PointRec_ (line 96) | struct PSH_PointRec_
type PSH_ContourRec_ (line 97) | struct PSH_ContourRec_
type PSH_PointRec (line 162) | typedef struct PSH_PointRec_
type PSH_ContourRec (line 195) | typedef struct PSH_ContourRec_
type PSH_GlyphRec (line 203) | typedef struct PSH_GlyphRec_
FILE: libs/PDF-Writer/FreeType/src/pshinter/pshglob.c
function psh_globals_scale_widths (line 40) | static void
function psh_dimension_snap_width (line 84) | FT_LOCAL_DEF( FT_Pos )
function psh_blues_set_zones_0 (line 138) | static void
function psh_blues_set_zones (line 233) | static void
function psh_blues_scale_zones (line 365) | static void
function FT_Short (line 526) | static FT_Short
function psh_blues_snap_stem (line 547) | FT_LOCAL_DEF( void )
function psh_globals_destroy (line 618) | static void
function FT_Error (line 644) | static FT_Error
function psh_globals_set_scale (line 753) | FT_LOCAL_DEF( FT_Error )
function psh_globals_funcs_init (line 788) | FT_LOCAL_DEF( void )
FILE: libs/PDF-Writer/FreeType/src/pshinter/pshglob.h
type PSH_WidthRec (line 64) | typedef struct PSH_WidthRec_
type PSH_Width
Copy disabled (too large)
Download .json
Condensed preview — 5371 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (62,669K chars).
[
{
"path": ".gitattributes",
"chars": 66,
"preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
},
{
"path": ".gitignore",
"chars": 270,
"preview": "# Prerequisites\n*.d\n\n# Compiled Object files\n*.slo\n*.lo\n*.o\n*.obj\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Compiled Dynamic"
},
{
"path": "CMakeLists.txt",
"chars": 4765,
"preview": "cmake_minimum_required(VERSION 3.7.0)\nproject(cppchallenger)\n\nif (UNIX)\n message(status \"** Setting GCC flags\")\n set(C"
},
{
"path": "Chapter01/problem_01/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_01)\n\nadd_executable(problem_01 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_01/main.cpp",
"chars": 303,
"preview": "#include <iostream>\n\nint main()\n{\n unsigned int limit = 0;\n std::cout << \"Upper limit:\";\n std::cin >> limit;\n\n u"
},
{
"path": "Chapter01/problem_02/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_02)\n\nadd_executable(problem_02 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_02/main.cpp",
"chars": 560,
"preview": "#include <iostream>\n\nunsigned int gcd(unsigned int const a, unsigned int const b)\n{\n return b == 0 ? a : gcd(b, a % b)"
},
{
"path": "Chapter01/problem_03/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_03)\n\nadd_executable(problem_03 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_03/main.cpp",
"chars": 665,
"preview": "#include <iostream>\n#include <numeric>\n#include <vector>\n\nint gcd(int const a, int const b)\n{\n return b == 0 ? a : gcd"
},
{
"path": "Chapter01/problem_04/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_04)\n\nadd_executable(problem_04 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_04/main.cpp",
"chars": 620,
"preview": "#include <iostream>\n\nbool is_prime(int const num)\n{\n if (num <= 3)\n {\n return num > 1;\n }\n else if (num % 2"
},
{
"path": "Chapter01/problem_05/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_05)\n\nadd_executable(problem_05 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_05/main.cpp",
"chars": 617,
"preview": "#include <iostream>\n\nbool is_prime(int const num)\n{\n if (num <= 3)\n {\n return num > 1;\n }\n else if (num % 2"
},
{
"path": "Chapter01/problem_06/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_06)\n\nadd_executable(problem_06 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_06/main.cpp",
"chars": 690,
"preview": "#include <iostream>\n#include <cmath>\n\nint sum_proper_divisors(int const number)\n{\n int result = 1;\n for (int i = 2; "
},
{
"path": "Chapter01/problem_07/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_07)\n\nadd_executable(problem_07 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_07/main.cpp",
"chars": 1280,
"preview": "#include <iostream>\n#include <set>\n#include <cmath>\n\nint sum_proper_divisors(int const number)\n{\n int result = 1;\n f"
},
{
"path": "Chapter01/problem_08/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_08)\n\nadd_executable(problem_08 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_08/main.cpp",
"chars": 2590,
"preview": "#include <iostream>\n#include <vector>\n#include <numeric>\n#include <cmath>\n#include <chrono>\n\ntemplate <typename Time = s"
},
{
"path": "Chapter01/problem_09/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_08)\n\nadd_executable(problem_09 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_09/main.cpp",
"chars": 917,
"preview": "#include <iostream>\n#include <cmath>\n#include <vector>\n#include <iterator>\n#include <algorithm>\n\nstd::vector<unsigned lo"
},
{
"path": "Chapter01/problem_10/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_10)\n\nadd_executable(problem_10 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_10/main.cpp",
"chars": 812,
"preview": "#include <iostream>\n#include <bitset>\n#include <string>\n\nunsigned int gray_encode(unsigned int const num)\n{\n return nu"
},
{
"path": "Chapter01/problem_11/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_11)\n\nadd_executable(problem_11 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_11/main.cpp",
"chars": 819,
"preview": "#include <iostream>\n#include <string>\n#include <vector>\n\nstd::string to_roman(unsigned int value)\n{\n std::vector<std::"
},
{
"path": "Chapter01/problem_12/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_12)\n\nadd_executable(problem_12 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_12/main.cpp",
"chars": 2079,
"preview": "#include <iostream>\n#include <vector>\n\nstd::pair<unsigned long long, long> longest_collatz_uncached(unsigned long long c"
},
{
"path": "Chapter01/problem_13/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_13)\n\nadd_executable(problem_13 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_13/main.cpp",
"chars": 895,
"preview": "#include <iostream>\n#include <random>\n#include <algorithm>\n#include <array>\n\ntemplate <\n typename E = std::mt19937, \n "
},
{
"path": "Chapter01/problem_14/CMakeLists.txt",
"chars": 160,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_14)\n\nadd_executable(problem_14 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter01/problem_14/main.cpp",
"chars": 785,
"preview": "#include <iostream>\n#include <string>\n#include <algorithm>\n#include <numeric>\n#include <string_view>\n#include <assert.h>"
},
{
"path": "Chapter02/problem_15/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_15)\n\nadd_executable(problem_15 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_15/main.cpp",
"chars": 2076,
"preview": "#include <iostream>\n#include <array>\n#include <sstream>\n#include <assert.h>\n\nclass ipv4\n{\n std::array<unsigned char, 4"
},
{
"path": "Chapter02/problem_16/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_16)\n\nadd_executable(problem_16 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_16/main.cpp",
"chars": 3498,
"preview": "#include <iostream>\n#include <array>\n#include <sstream>\n\nclass ipv4\n{\n std::array<unsigned char, 4> data;\npublic:\n c"
},
{
"path": "Chapter02/problem_17/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_17)\n\nadd_executable(problem_17 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_17/main.cpp",
"chars": 3399,
"preview": "#include <iostream>\n#include <vector>\n#include <algorithm>\n#include <iterator>\n\ntemplate <class T, size_t R, size_t C>\nc"
},
{
"path": "Chapter02/problem_18/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_18)\n\nadd_executable(problem_18 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_18/main.cpp",
"chars": 671,
"preview": "#include <iostream>\n#include <functional>\n\ntemplate <typename T>\nT minimum(T const a, T const b) { return a < b ? a : b;"
},
{
"path": "Chapter02/problem_19/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_19)\n\nadd_executable(problem_19 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_19/main.cpp",
"chars": 525,
"preview": "#include <iostream>\n#include <cstdlib>\n#include <vector>\n#include <iterator>\n#include <list>\n\ntemplate<typename C, typen"
},
{
"path": "Chapter02/problem_20/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_20)\n\nadd_executable(problem_20 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_20/main.cpp",
"chars": 1585,
"preview": "#include <iostream>\n#include <vector>\n#include <array>\n#include <list>\n#include <assert.h>\n\ntemplate<class C, class T>\nb"
},
{
"path": "Chapter02/problem_21/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_21)\n\nadd_executable(problem_21 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_21/main.cpp",
"chars": 5618,
"preview": "#ifdef _WIN32\n#include <windows.h>\n#else\ntypedef void *HANDLE;\n\n#define DWORD unsigned long\n#ifdef _LP64\n#define LON"
},
{
"path": "Chapter02/problem_22/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_22)\n\nadd_executable(problem_22 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter02/problem_22/main.cpp",
"chars": 4820,
"preview": "#include <cmath>\n#include <assert.h>\n\nbool are_equal(double const d1, double const d2, double const epsilon = 0.001)\n{\n "
},
{
"path": "Chapter03/problem_23/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_23)\n\nadd_executable(problem_23 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_23/main.cpp",
"chars": 1106,
"preview": "#include <string>\n#include <sstream>\n#include <iomanip>\n#include <vector>\n#include <array>\n#include <assert.h>\n\ntemplate"
},
{
"path": "Chapter03/problem_24/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_24)\n\nadd_executable(problem_24 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_24/main.cpp",
"chars": 856,
"preview": "#include <string>\n#include <string_view>\n#include <sstream>\n#include <vector>\n#include <array>\n#include <assert.h>\n\nunsi"
},
{
"path": "Chapter03/problem_25/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_25)\n\nadd_executable(problem_25 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_25/main.cpp",
"chars": 1283,
"preview": "#include <string>\n#include <sstream>\n#include <cctype>\n#include <assert.h>\n\ntemplate <class Elem>\nusing tstring = std::b"
},
{
"path": "Chapter03/problem_26/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_26)\n\nadd_executable(problem_26 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_26/main.cpp",
"chars": 1284,
"preview": "#include <string>\n#include <iterator>\n#include <sstream>\n#include <vector>\n#include <array>\n#include <list>\n#include <as"
},
{
"path": "Chapter03/problem_27/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_27)\n\nadd_executable(problem_27 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_27/main.cpp",
"chars": 1441,
"preview": "#include <string>\n#include <sstream>\n#include <vector>\n#include <assert.h>\n\ntemplate <class Elem>\nusing tstring = std::b"
},
{
"path": "Chapter03/problem_28/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_28)\n\nadd_executable(problem_28 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_28/main.cpp",
"chars": 1330,
"preview": "#include <string>\n#include <string_view>\n#include <vector>\n#include <assert.h>\n\nstd::string longest_palindrome(std::stri"
},
{
"path": "Chapter03/problem_29/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_29)\n\nadd_executable(problem_29 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_29/main.cpp",
"chars": 1108,
"preview": "#include <string>\n#include <string_view>\n#include <regex>\n#include <assert.h>\n\nbool validate_license_plate_format(std::s"
},
{
"path": "Chapter03/problem_30/CMakeLists.txt",
"chars": 315,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_30)\n\nif(BOOST_OPTIONAL)\n include_directories(${BOOST_INCLUDE_D"
},
{
"path": "Chapter03/problem_30/main.cpp",
"chars": 1746,
"preview": "#include <string>\n#include <string_view>\n#include <regex>\n#include <assert.h>\n\n#ifdef USE_BOOST_OPTIONAL\n# include <boo"
},
{
"path": "Chapter03/problem_31/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_31)\n\nadd_executable(problem_31 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter03/problem_31/main.cpp",
"chars": 421,
"preview": "#include <string>\n#include <string_view>\n#include <regex>\n#include <assert.h>\n\nstd::string transform_date(std::string_vi"
},
{
"path": "Chapter04/problem_32/CMakeLists.txt",
"chars": 163,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_32)\n\nadd_executable(problem_32 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter04/problem_32/main.cpp",
"chars": 771,
"preview": "#include <string>\n#include <iostream>\n#include <cmath>\n\nunsigned int number_of_digits(unsigned int const i)\n{\n return "
},
{
"path": "Chapter04/problem_33/CMakeLists.txt",
"chars": 182,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_33)\n\nadd_executable(problem_33 main.cpp)\n \nset"
},
{
"path": "Chapter04/problem_33/main.cpp",
"chars": 2083,
"preview": "#include <iostream>\n#include <iomanip>\n#include <string>\n#include <vector>\n#include <algorithm>\n\nenum class procstatus {"
},
{
"path": "Chapter04/problem_34/CMakeLists.txt",
"chars": 1060,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_34)\n\nif(BOOST_FILESYSTEM)\n include_directories(${BOOST_INCLUDE"
},
{
"path": "Chapter04/problem_34/main.cpp",
"chars": 1126,
"preview": "#include <fstream>\n#include <string>\n\n#ifdef USE_BOOST_FILESYSTEM\n# include <boost/filesystem/path.hpp>\n# include <boo"
},
{
"path": "Chapter04/problem_34/sample34.txt",
"chars": 1592,
"preview": "If\nBY RUDYARD KIPLING\n\n\n\nIf you can keep your head when all about you \n Are losing theirs and blaming it on you, "
},
{
"path": "Chapter04/problem_35/CMakeLists.txt",
"chars": 653,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_35)\n\nif(BOOST_FILESYSTEM)\n include_directories(${BOOST_INCLUDE"
},
{
"path": "Chapter04/problem_35/main.cpp",
"chars": 1248,
"preview": "#include <iostream>\n#include <numeric>\n#include <string>\n\n#ifdef USE_BOOST_FILESYSTEM\n# include <boost/filesystem/path."
},
{
"path": "Chapter04/problem_36/CMakeLists.txt",
"chars": 653,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_36)\n\nif(BOOST_FILESYSTEM)\n include_directories(${BOOST_INCLUDE"
},
{
"path": "Chapter04/problem_36/main.cpp",
"chars": 1639,
"preview": "#include <iostream>\n#include <chrono>\n\n#ifdef USE_BOOST_FILESYSTEM\n# include <boost/filesystem/path.hpp>\n# include <bo"
},
{
"path": "Chapter04/problem_37/CMakeLists.txt",
"chars": 653,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_37)\n\nif(BOOST_FILESYSTEM)\n include_directories(${BOOST_INCLUDE"
},
{
"path": "Chapter04/problem_37/main.cpp",
"chars": 1202,
"preview": "#include <iostream>\n#include <regex>\n#include <vector>\n#include <string>\n#include <string_view>\n#include <functional>\n\n#"
},
{
"path": "Chapter04/problem_38/CMakeLists.txt",
"chars": 696,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_38)\n\ninclude_directories(${LIBS_PATH}/stduuid)\n\nif(BOOST_FILESYS"
},
{
"path": "Chapter04/problem_38/main.cpp",
"chars": 1347,
"preview": "#include <iostream>\n#include <fstream>\n\n#include \"uuid.h\"\n\n#ifdef USE_BOOST_FILESYSTEM\n# include <boost/filesystem/path"
},
{
"path": "Chapter05/problem_39/CMakeLists.txt",
"chars": 164,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_39)\n\nadd_executable(problem_39 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter05/problem_39/main.cpp",
"chars": 953,
"preview": "#include <iostream>\n#include <chrono>\n#include <thread>\n\ntemplate <typename Time = std::chrono::microseconds,\n typenam"
},
{
"path": "Chapter05/problem_40/CMakeLists.txt",
"chars": 217,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_40)\n\ninclude_directories(${LIBS_PATH}/date/include/date)\n\nadd_ex"
},
{
"path": "Chapter05/problem_40/main.cpp",
"chars": 1149,
"preview": "#include <iostream>\n#include \"date.h\"\n\ninline int number_of_days(\n int const y1, unsigned int const m1, unsigned int c"
},
{
"path": "Chapter05/problem_41/CMakeLists.txt",
"chars": 217,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_41)\n\ninclude_directories(${LIBS_PATH}/date/include/date)\n\nadd_ex"
},
{
"path": "Chapter05/problem_41/main.cpp",
"chars": 650,
"preview": "\n#include <iostream>\n#include \"date.h\"\n#include \"iso_week.h\"\n\nunsigned int week_day(int const y, unsigned int const m, u"
},
{
"path": "Chapter05/problem_42/CMakeLists.txt",
"chars": 217,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_42)\n\ninclude_directories(${LIBS_PATH}/date/include/date)\n\nadd_ex"
},
{
"path": "Chapter05/problem_42/main.cpp",
"chars": 997,
"preview": "#include <iostream>\n#include \"date.h\"\n#include \"iso_week.h\"\n\nunsigned int calendar_week(int const y, unsigned int const "
},
{
"path": "Chapter05/problem_43/CMakeLists.txt",
"chars": 338,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_43)\n\nadd_definitions(-DINSTALL=${LIBS_PATH}/date)\ninclude_direct"
},
{
"path": "Chapter05/problem_43/main.cpp",
"chars": 1485,
"preview": "#include <iostream>\n#include <string>\n#include <vector>\n#include <string_view>\n#include <iomanip>\n#include \"date.h\"\n#inc"
},
{
"path": "Chapter05/problem_44/CMakeLists.txt",
"chars": 217,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_44)\n\ninclude_directories(${LIBS_PATH}/date/include/date)\n\nadd_ex"
},
{
"path": "Chapter05/problem_44/main.cpp",
"chars": 1276,
"preview": "#include <iostream>\n#include <iomanip>\n#include \"date.h\"\n#include \"iso_week.h\"\n\nunsigned int week_day(int const y, unsig"
},
{
"path": "Chapter06/problem_45/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_45)\n\nadd_executable(problem_45 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_45/main.cpp",
"chars": 1488,
"preview": "#include <iostream>\n#include <vector>\n#include <algorithm>\n#include <assert.h>\n\ntemplate <class T,\n class Compare = st"
},
{
"path": "Chapter06/problem_46/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_46)\n\nadd_executable(problem_46 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_46/main.cpp",
"chars": 4387,
"preview": "#include <iostream>\n#include <vector>\n#include <assert.h>\n\ntemplate <class T>\nclass circular_buffer;\n\ntemplate <class T>"
},
{
"path": "Chapter06/problem_47/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_47)\n\nadd_executable(problem_47 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_47/main.cpp",
"chars": 2271,
"preview": "#include <vector>\n#include <iostream>\n#include <algorithm>\n#include <thread>\n#include <chrono>\n#include <mutex>\n#include"
},
{
"path": "Chapter06/problem_48/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_48)\n\nadd_executable(problem_48 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_48/main.cpp",
"chars": 922,
"preview": "#include <iostream>\n#include <map>\n#include <vector>\n#include <algorithm>\n\ntemplate <typename T>\nstd::vector<std::pair<T"
},
{
"path": "Chapter06/problem_49/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_49)\n\nadd_executable(problem_49 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_49/main.cpp",
"chars": 1199,
"preview": "#include <iostream>\n#include <map>\n#include <algorithm>\n#include <numeric>\n#include <iomanip>\n#include <string>\n#include"
},
{
"path": "Chapter06/problem_50/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_50)\n\nadd_executable(problem_50 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_50/main.cpp",
"chars": 1155,
"preview": "#include <string>\n#include <string_view>\n#include <vector>\n#include <iostream>\n#include <algorithm>\n\nbool starts_with(st"
},
{
"path": "Chapter06/problem_51/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_51)\n\nadd_executable(problem_51 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_51/main.cpp",
"chars": 1343,
"preview": "#include <iostream>\n#include <vector>\n#include <string>\n#include <algorithm>\n\nbool starts_with(std::string_view str, std"
},
{
"path": "Chapter06/problem_52/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_52)\n\nadd_executable(problem_52 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_52/main.cpp",
"chars": 874,
"preview": "#include <iostream>\n#include <string>\n#include <algorithm>\n\nvoid print_permutations(std::string str)\n{\n std::sort(std:"
},
{
"path": "Chapter06/problem_53/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_53)\n\nadd_executable(problem_53 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_53/main.cpp",
"chars": 1324,
"preview": "#include <iostream>\n#include <string>\n#include <vector>\n#include <algorithm>\n#include <numeric>\n#include <iomanip>\n\nstru"
},
{
"path": "Chapter06/problem_54/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_54)\n\nadd_executable(problem_54 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_54/main.cpp",
"chars": 749,
"preview": "#include <iostream>\n#include <vector>\n\ntemplate <typename Input, typename Output>\nvoid pairwise(Input begin, Input end, "
},
{
"path": "Chapter06/problem_55/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_55)\n\nadd_executable(problem_55 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_55/main.cpp",
"chars": 940,
"preview": "#include <iostream>\n#include <vector>\n\ntemplate <typename Input1, typename Input2, typename Output>\nvoid zip(\n Input1 "
},
{
"path": "Chapter06/problem_56/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_56)\n\nadd_executable(problem_56 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_56/main.cpp",
"chars": 956,
"preview": "#include <iostream>\n#include <algorithm>\n#include <vector>\n#include <string>\n\ntemplate <\n typename T, typename A, type"
},
{
"path": "Chapter06/problem_57/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_57)\n\nadd_executable(problem_57 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_57/main.cpp",
"chars": 4466,
"preview": "#include <iostream>\n#include <vector>\n#include <array>\n#include <functional>\n#include <numeric>\n#include <random>\n#inclu"
},
{
"path": "Chapter06/problem_58/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_58)\n\nadd_executable(problem_58 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_58/main.cpp",
"chars": 6191,
"preview": "#include <iostream>\n#include <queue>\n#include <set>\n#include <algorithm>\n#include <vector>\n#include <map>\n#include <nume"
},
{
"path": "Chapter06/problem_59/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_59)\n\nadd_executable(problem_59 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_59/main.cpp",
"chars": 2316,
"preview": "#include <iostream>\n#include <string>\n#include <sstream>\n#include <string_view>\n#include <random>\n#include <algorithm>\n#"
},
{
"path": "Chapter06/problem_60/CMakeLists.txt",
"chars": 180,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_60)\n\nadd_executable(problem_60 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter06/problem_60/main.cpp",
"chars": 5731,
"preview": "#include <iostream>\n#include <vector>\n#include <random>\n#include <array>\n#include <thread>\n#include <chrono>\n\nclass univ"
},
{
"path": "Chapter07/problem_61/CMakeLists.txt",
"chars": 167,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_61)\n\nadd_executable(problem_61 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter07/problem_61/main.cpp",
"chars": 3636,
"preview": "#include <iostream>\n#include <vector>\n#include <array>\n#include <algorithm>\n#include <functional>\n#include <random>\n#inc"
},
{
"path": "Chapter07/problem_62/CMakeLists.txt",
"chars": 167,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_62)\n\nadd_executable(problem_62 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter07/problem_62/main.cpp",
"chars": 3860,
"preview": "#include <iostream>\n#include <vector>\n#include <array>\n#include <algorithm>\n#include <functional>\n#include <random>\n#inc"
},
{
"path": "Chapter07/problem_63/CMakeLists.txt",
"chars": 167,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_63)\n\nadd_executable(problem_63 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter07/problem_63/main.cpp",
"chars": 3954,
"preview": "#include <iostream>\n#include <vector>\n#include <array>\n#include <algorithm>\n#include <functional>\n#include <random>\n#inc"
},
{
"path": "Chapter07/problem_64/CMakeLists.txt",
"chars": 167,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_64)\n\nadd_executable(problem_64 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter07/problem_64/main.cpp",
"chars": 3185,
"preview": "#include <iostream>\n#include <vector>\n#include <array>\n#include <functional>\n#include <chrono>\n#include <assert.h>\n#incl"
},
{
"path": "Chapter07/problem_65/CMakeLists.txt",
"chars": 167,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_65)\n\nadd_executable(problem_65 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter07/problem_65/main.cpp",
"chars": 1116,
"preview": "#include <iostream>\n#include <vector>\n#include <chrono>\n#include <random>\n#include <thread>\n#include <string_view>\n#incl"
},
{
"path": "Chapter07/problem_66/CMakeLists.txt",
"chars": 167,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_66)\n\nadd_executable(problem_66 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter07/problem_66/main.cpp",
"chars": 4021,
"preview": "#include <iostream>\n#include <vector>\n#include <chrono>\n#include <random>\n#include <thread>\n#include <string_view>\n#incl"
},
{
"path": "Chapter08/problem_67/CMakeLists.txt",
"chars": 170,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_67)\n\nadd_executable(problem_67 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter08/problem_67/main.cpp",
"chars": 3734,
"preview": "#include <string>\n#include <string_view>\n#include <memory>\n#include <assert.h>\n\nclass password_validator\n{\npublic:\n vi"
},
{
"path": "Chapter08/problem_68/CMakeLists.txt",
"chars": 170,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_68)\n\nadd_executable(problem_68 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter08/problem_68/main.cpp",
"chars": 3623,
"preview": "#include <iostream>\n#include <string>\n#include <memory>\n#include <random>\n#include <array>\n#include <algorithm>\n\nclass p"
},
{
"path": "Chapter08/problem_69/CMakeLists.txt",
"chars": 170,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_69)\n\nadd_executable(problem_69 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter08/problem_69/main.cpp",
"chars": 4657,
"preview": "#include <iostream>\n#include <string>\n#include <sstream>\n#include <string_view>\n#include <random>\n#include <array>\n#incl"
},
{
"path": "Chapter08/problem_70/CMakeLists.txt",
"chars": 170,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_70)\n\nadd_executable(problem_70 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter08/problem_70/main.cpp",
"chars": 2396,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <memory>\n\nclass role\n{\npublic:\n virtual double a"
},
{
"path": "Chapter08/problem_71/CMakeLists.txt",
"chars": 170,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_71)\n\nadd_executable(problem_71 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter08/problem_71/main.cpp",
"chars": 4968,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <vector>\n#include <algorithm>\n\nenum class collecti"
},
{
"path": "Chapter08/problem_72/CMakeLists.txt",
"chars": 170,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_72)\n\nadd_executable(problem_72 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter08/problem_72/main.cpp",
"chars": 4847,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <vector>\n#include <cmath>\n#include <assert.h>\n\ninl"
},
{
"path": "Chapter09/problem_73/CMakeLists.txt",
"chars": 439,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_70)\n\ninclude_directories(${LIBS_PATH}/pugixml)\ninclude_directori"
},
{
"path": "Chapter09/problem_73/main.cpp",
"chars": 3728,
"preview": "#include <string>\n#include <string_view>\n#include <assert.h>\n\n#include \"pugixml.hpp\"\n#include \"movies.h\"\n\nvoid serialize"
},
{
"path": "Chapter09/problem_74/CMakeLists.txt",
"chars": 249,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_74)\n\ninclude_directories(${LIBS_PATH}/pugixml)\n\nadd_executable(p"
},
{
"path": "Chapter09/problem_74/main.cpp",
"chars": 1917,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n\n#include \"pugixml.hpp\"\n\nint main()\n{\n std::string text ="
},
{
"path": "Chapter09/problem_74/movies.xml",
"chars": 996,
"preview": "<?xml version=\"1.0\"?>\n<movies>\n\t<movie id=\"11001\" title=\"The Matrix\" year=\"1999\" length=\"196\">\n\t\t<cast>\n\t\t\t<role star=\"K"
},
{
"path": "Chapter09/problem_75/CMakeLists.txt",
"chars": 411,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_75)\n\ninclude_directories(${LIBS_PATH}/nlohmannjson)\ninclude_dire"
},
{
"path": "Chapter09/problem_75/main.cpp",
"chars": 1557,
"preview": "#include <iostream>\n#include <string_view>\n#include <fstream>\n\n#include \"json.hpp\"\n#include \"movies.h\"\n\nusing json = nlo"
},
{
"path": "Chapter09/problem_76/CMakeLists.txt",
"chars": 411,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_76)\n\ninclude_directories(${INCLUDE_PATH}/)\ninclude_directories($"
},
{
"path": "Chapter09/problem_76/main.cpp",
"chars": 1692,
"preview": "#include <iostream>\n#include <string_view>\n#include <fstream>\n#include <assert.h>\n\n#include \"json.hpp\"\n#include \"movies."
},
{
"path": "Chapter09/problem_76/movies.json",
"chars": 1023,
"preview": "{\n \"movies\" : [\n {\n \"id\" : 11001, \n \"title\" : \"The Matrix\", \n \"year\" : 1999, \n \"l"
},
{
"path": "Chapter09/problem_77/CMakeLists.txt",
"chars": 806,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_77)\n\ninclude_directories(${LIBS_PATH}/PDF-Writer)\ninclude_direct"
},
{
"path": "Chapter09/problem_77/main.cpp",
"chars": 4976,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <iomanip>\n\n#include \"PDFWriter/PDFWriter.h\"\n#inclu"
},
{
"path": "Chapter09/problem_78/CMakeLists.txt",
"chars": 1542,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_78)\n\ninclude_directories(${LIBS_PATH}/PDF-Writer)\ninclude_direct"
},
{
"path": "Chapter09/problem_78/main.cpp",
"chars": 1948,
"preview": "#include <iostream>\n#include <string_view>\n\n#include \"PDFWriter/PDFWriter.h\"\n#include \"PDFWriter/PDFPage.h\"\n#include \"PD"
},
{
"path": "Chapter10/problem_79/CMakeLists.txt",
"chars": 1140,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_79)\n\ninclude_directories(${LIBS_PATH}/ZipLib)\n\nif(BOOST_FILESYST"
},
{
"path": "Chapter10/problem_79/main.cpp",
"chars": 1680,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <vector>\n#include <regex>\n\n#include \"ZipFile.h\"\n#i"
},
{
"path": "Chapter10/problem_80/CMakeLists.txt",
"chars": 753,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_80)\n\ninclude_directories(${LIBS_PATH}/ZipLib)\n\nif(BOOST_FILESYST"
},
{
"path": "Chapter10/problem_80/main.cpp",
"chars": 3783,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <fstream>\n\n#include \"ZipFile.h\"\n#include \"utils/st"
},
{
"path": "Chapter10/problem_81/CMakeLists.txt",
"chars": 753,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_81)\n\ninclude_directories(${LIBS_PATH}/ZipLib)\n\nif(BOOST_FILESYST"
},
{
"path": "Chapter10/problem_81/main.cpp",
"chars": 4376,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <fstream>\n\n#include \"ZipFile.h\"\n#include \"utils/st"
},
{
"path": "Chapter10/problem_82/CMakeLists.txt",
"chars": 556,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_82)\n\ninclude_directories(${LIBS_PATH}/PDF-Writer/LibPng)\ninclude"
},
{
"path": "Chapter10/problem_82/main.cpp",
"chars": 801,
"preview": "#include <iostream>\n#include <string_view>\n#include <string>\n\n#include \"pngwriter.h\"\n\nvoid create_flag(int const width, "
},
{
"path": "Chapter10/problem_83/CMakeLists.txt",
"chars": 556,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_83)\n\ninclude_directories(${LIBS_PATH}/PDF-Writer/LibPng)\ninclude"
},
{
"path": "Chapter10/problem_83/main.cpp",
"chars": 2059,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <random>\n#include <array>\n\n#include \"pngwriter.h\"\n"
},
{
"path": "Chapter10/problem_84/CMakeLists.txt",
"chars": 556,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_84)\n\ninclude_directories(${LIBS_PATH}/PDF-Writer/LibPng)\ninclude"
},
{
"path": "Chapter10/problem_84/main.cpp",
"chars": 4315,
"preview": "#include <iostream>\n#include <string_view>\n#include <array>\n#include <algorithm>\n#include <numeric>\n#include <bitset>\n#i"
},
{
"path": "Chapter10/problem_85/CMakeLists.txt",
"chars": 910,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_85)\n\ninclude_directories(${LIBS_PATH}/sqlite)\ninclude_directorie"
},
{
"path": "Chapter10/problem_85/main.cpp",
"chars": 2963,
"preview": "#include <iostream>\n#include <vector>\n\n#include \"sqlite3.h\"\n#include \"sqlite_modern_cpp.h\"\n#include \"movies.h\"\n\nvoid pri"
},
{
"path": "Chapter10/problem_85/moviesdb.sql",
"chars": 1746,
"preview": "create table movies(\n title text not null,\n year integer not null,\n length integer not null);\n\ncreate table person"
},
{
"path": "Chapter10/problem_86/CMakeLists.txt",
"chars": 891,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_86)\n\ninclude_directories(${LIBS_PATH}/sqlite)\ninclude_directorie"
},
{
"path": "Chapter10/problem_86/main.cpp",
"chars": 6433,
"preview": "#include <iostream>\n#include <vector>\n#include <string>\n#include <sstream>\n\n#include \"sqlite3.h\"\n#include \"sqlite_modern"
},
{
"path": "Chapter10/problem_87/CMakeLists.txt",
"chars": 1778,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_87)\n\ninclude_directories(${LIBS_PATH}/sqlite)\ninclude_directorie"
},
{
"path": "Chapter10/problem_87/main.cpp",
"chars": 7248,
"preview": "#include <iostream>\n#include <vector>\n#include <string>\n#include <sstream>\n#include <fstream>\n\n#ifdef USE_BOOST_FILESYST"
},
{
"path": "Chapter10/problem_87/moviesdb.sql",
"chars": 119,
"preview": "create table media(\n movieid integer not null,\n name text not null,\n description text,\n content blob not null);"
},
{
"path": "Chapter11/problem_88/CMakeLists.txt",
"chars": 168,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_88)\n\nadd_executable(problem_88 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter11/problem_88/main.cpp",
"chars": 884,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <assert.h>\n\nstd::string caesar_encrypt(std::string"
},
{
"path": "Chapter11/problem_89/CMakeLists.txt",
"chars": 168,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_89)\n\nadd_executable(problem_89 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter11/problem_89/main.cpp",
"chars": 1912,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <assert.h>\n\nstd::string caesar_encrypt(std::string"
},
{
"path": "Chapter11/problem_90/CMakeLists.txt",
"chars": 168,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_90)\n\nadd_executable(problem_90 main.cpp)\n\nset_target_properties "
},
{
"path": "Chapter11/problem_90/main.cpp",
"chars": 5442,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <vector>\n#include <assert.h>\n\nclass encoder\n{\n s"
},
{
"path": "Chapter11/problem_91/CMakeLists.txt",
"chars": 297,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_91)\n\ninclude_directories(${LIBS_PATH}/cryptopp)\nadd_definitions("
},
{
"path": "Chapter11/problem_91/main.cpp",
"chars": 1931,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n#include <iomanip>\n#include <vector>\n\n#include \"sha.h\"\n#inc"
},
{
"path": "Chapter11/problem_92/CMakeLists.txt",
"chars": 788,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_92)\n\ninclude_directories(${LIBS_PATH}/cryptopp)\n\nif(BOOST_FILESY"
},
{
"path": "Chapter11/problem_92/main.cpp",
"chars": 2458,
"preview": "#include <iostream>\n#include <string>\n#include <fstream>\n#include <iomanip>\n\n#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1\n\n#"
},
{
"path": "Chapter11/problem_93/CMakeLists.txt",
"chars": 1190,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_93)\n\ninclude_directories(${LIBS_PATH}/cryptopp)\n\nif(BOOST_FILESY"
},
{
"path": "Chapter11/problem_93/main.cpp",
"chars": 1949,
"preview": "#include <iostream>\n#include <string>\n#include <string_view>\n\n#include \"sha.h\"\n#include \"hex.h\"\n#include \"files.h\"\n#incl"
},
{
"path": "Chapter11/problem_93/sample.txt",
"chars": 1565,
"preview": "If\nBY RUDYARD KIPLING\n\nIf you can keep your head when all about you \n Are losing theirs and blaming it on you, \nI"
},
{
"path": "Chapter11/problem_94/CMakeLists.txt",
"chars": 1171,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_94)\n\ninclude_directories(${LIBS_PATH}/cryptopp)\n\nif(BOOST_FILESY"
},
{
"path": "Chapter11/problem_94/main.cpp",
"chars": 3908,
"preview": "#include <iostream>\n#include <string>\n#include <assert.h>\n\n#include \"rsa.h\"\n#include \"aes.h\"\n#include \"hex.h\"\n#include \""
},
{
"path": "Chapter11/problem_94/sample.txt",
"chars": 1565,
"preview": "If\nBY RUDYARD KIPLING\n\nIf you can keep your head when all about you \n Are losing theirs and blaming it on you, \nI"
},
{
"path": "Chapter12/problem_95/CMakeLists.txt",
"chars": 328,
"preview": "cmake_minimum_required (VERSION 3.7.0) \nproject(problem_95)\n\nif (UNIX)\nelse()\n add_definitions(-D_SILENCE_ALL_CXX17_DEP"
},
{
"path": "Chapter12/problem_95/main.cpp",
"chars": 806,
"preview": "#include <iostream>\n#include <vector>\n#include <string>\n#include <string_view>\n\n#define ASIO_STANDALONE\n#include \"asio.h"
}
]
// ... and 5171 more files (download for full content)
About this extraction
This page contains the full source code of the PacktPublishing/The-Modern-Cpp-Challenge GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5371 files (56.7 MB), approximately 15.1M tokens, and a symbol index with 28282 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.