Full Code of sourcerer-io/sourcerer-app for AI

develop af3d7737ba20 cached
2930 files
21.2 MB
5.7M tokens
3335 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (22,888K chars total). Download the full file to get everything.
Repository: sourcerer-io/sourcerer-app
Branch: develop
Commit: af3d7737ba20
Files: 2930
Total size: 21.2 MB

Directory structure:
gitextract_96evfk3n/

├── .gitattributes
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE.md
├── README.md
├── build.gradle
├── deploy/
│   ├── GradleDockerfile
│   ├── Jenkinsfile
│   ├── default.conf
│   ├── production_env.sh
│   ├── sandbox_env.sh
│   ├── sourcerer-app.yaml
│   └── staging_env.sh
├── do.sh
└── src/
    ├── install/
    │   └── install
    ├── main/
    │   ├── kotlin/
    │   │   └── app/
    │   │       ├── Analytics.kt
    │   │       ├── FactCodes.kt
    │   │       ├── Logger.kt
    │   │       ├── Main.kt
    │   │       ├── api/
    │   │       │   ├── Api.kt
    │   │       │   ├── ApiError.kt
    │   │       │   ├── MockApi.kt
    │   │       │   ├── Result.kt
    │   │       │   └── ServerApi.kt
    │   │       ├── config/
    │   │       │   ├── Config.kt
    │   │       │   ├── Configurator.kt
    │   │       │   ├── FileConfigurator.kt
    │   │       │   └── MockConfigurator.kt
    │   │       ├── extractors/
    │   │       │   ├── CExtractor.kt
    │   │       │   ├── CSharpExtractor.kt
    │   │       │   ├── ClassifierManager.kt
    │   │       │   ├── CommonExtractor.kt
    │   │       │   ├── CppExtractor.kt
    │   │       │   ├── CrystalExtractor.kt
    │   │       │   ├── CssExtractor.kt
    │   │       │   ├── DMExtractor.kt
    │   │       │   ├── DartExtractor.kt
    │   │       │   ├── DevopsExtractor.kt
    │   │       │   ├── ElixirExtractor.kt
    │   │       │   ├── Extractor.kt
    │   │       │   ├── ExtractorBase.kt
    │   │       │   ├── ExtractorInterface.kt
    │   │       │   ├── FSharpExtractor.kt
    │   │       │   ├── GoExtractor.kt
    │   │       │   ├── Heuristics.kt
    │   │       │   ├── IPythonExtractor.kt
    │   │       │   ├── JavaExtractor.kt
    │   │       │   ├── JavascriptExtractor.kt
    │   │       │   ├── KotlinExtractor.kt
    │   │       │   ├── Languages.kt
    │   │       │   ├── ObjectiveCExtractor.kt
    │   │       │   ├── PerlExtractor.kt
    │   │       │   ├── PhpExtractor.kt
    │   │       │   ├── PlpgsqlExtractor.kt
    │   │       │   ├── PythonExtractor.kt
    │   │       │   ├── RubyExtractor.kt
    │   │       │   ├── RustExtractor.kt
    │   │       │   ├── ScalaExtractor.kt
    │   │       │   ├── SwiftExtractor.kt
    │   │       │   └── TypescriptExtractor.kt
    │   │       ├── hashers/
    │   │       │   ├── AuthorDistanceHasher.kt
    │   │       │   ├── CodeLongevity.kt
    │   │       │   ├── CommitCrawler.kt
    │   │       │   ├── CommitHasher.kt
    │   │       │   ├── FactHasher.kt
    │   │       │   ├── MetaHasher.kt
    │   │       │   ├── RepoHasher.kt
    │   │       │   └── Vendors.kt
    │   │       ├── model/
    │   │       │   ├── Author.kt
    │   │       │   ├── AuthorDistance.kt
    │   │       │   ├── AuthorDistanceGroup.kt
    │   │       │   ├── AuthorGroup.kt
    │   │       │   ├── Classifier.kt
    │   │       │   ├── Commit.kt
    │   │       │   ├── CommitGroup.kt
    │   │       │   ├── CommitStats.kt
    │   │       │   ├── DiffContent.kt
    │   │       │   ├── DiffFile.kt
    │   │       │   ├── DiffRange.kt
    │   │       │   ├── Error.kt
    │   │       │   ├── Errors.kt
    │   │       │   ├── Fact.kt
    │   │       │   ├── FactGroup.kt
    │   │       │   ├── LibraryMeta.kt
    │   │       │   ├── LocalRepo.kt
    │   │       │   ├── Process.kt
    │   │       │   ├── ProcessEntry.kt
    │   │       │   ├── Repo.kt
    │   │       │   ├── RepoMeta.kt
    │   │       │   ├── User.kt
    │   │       │   └── UserEmail.kt
    │   │       ├── ui/
    │   │       │   ├── AddRepoState.kt
    │   │       │   ├── AuthState.kt
    │   │       │   ├── CloseState.kt
    │   │       │   ├── ConsoleState.kt
    │   │       │   ├── ConsoleUi.kt
    │   │       │   ├── Context.kt
    │   │       │   ├── EmailState.kt
    │   │       │   ├── ListRepoState.kt
    │   │       │   ├── OpenState.kt
    │   │       │   └── UpdateRepoState.kt
    │   │       └── utils/
    │   │           ├── CommandAdd.kt
    │   │           ├── CommandConfig.kt
    │   │           ├── CommandList.kt
    │   │           ├── CommandRemove.kt
    │   │           ├── FileHelper.kt
    │   │           ├── HashingException.kt
    │   │           ├── Metrics.kt
    │   │           ├── Misc.kt
    │   │           ├── Options.kt
    │   │           ├── PasswordHelper.kt
    │   │           ├── RepoHelper.kt
    │   │           ├── RequestException.kt
    │   │           └── UiHelper.kt
    │   ├── proto/
    │   │   ├── classifier.proto
    │   │   └── sourcerer.proto
    │   └── resources/
    │       └── data/
    │           ├── imports/
    │           │   ├── cpp.txt
    │           │   └── python.txt
    │           └── libraries/
    │               ├── cs_libraries.txt
    │               ├── java_libraries.txt
    │               ├── js_libraries.txt
    │               └── kotlin_libraries.txt
    └── test/
        ├── delete_repo.sh
        ├── kotlin/
        │   └── test/
        │       ├── tests/
        │       │   ├── extractors/
        │       │   │   ├── DirToLangMap.kt
        │       │   │   ├── ExtractorTest.kt
        │       │   │   ├── HeuristicsTest.kt
        │       │   │   └── IgnoredSamplesWildcards.kt
        │       │   ├── hashers/
        │       │   │   ├── AuthorDistanceHasherTest.kt
        │       │   │   ├── CodeLongevityTest.kt
        │       │   │   ├── ColleaguesTest.kt
        │       │   │   ├── CommitHasherTest.kt
        │       │   │   ├── FactHasherTest.kt
        │       │   │   ├── IgnorePathsTest.kt
        │       │   │   ├── IgnoreVendorsTest.kt
        │       │   │   └── MetaHasherTest.kt
        │       │   └── utils/
        │       │       └── FileHelperTest.kt
        │       └── utils/
        │           ├── FactHelper.kt
        │           └── TestRepo.kt
        └── resources/
            └── samples/
                ├── devops/
                │   ├── circleci/
                │   │   └── .circleci/
                │   │       └── config.yml
                │   ├── docker/
                │   │   ├── Dockerfile
                │   │   ├── alpine.Dockerfile
                │   │   └── docker-compose.yml
                │   ├── drone/
                │   │   └── .drone.yml
                │   ├── github-actions/
                │   │   └── .github/
                │   │       └── workflows/
                │   │           └── ci.yml
                │   ├── gitlab-ci/
                │   │   └── .gitlab-ci.yml
                │   ├── jenkins/
                │   │   └── Jenkinsfile
                │   ├── k8s/
                │   │   ├── postgres-manifest.yaml
                │   │   ├── rss-site.json
                │   │   └── rss-site.yml
                │   └── travis/
                │       └── .travis.yml
                └── langs/
                    ├── 1C Enterprise/
                    │   ├── Catalog.ИсходящиеПисьма.Form.ФормаЭлемента.Form.Module.bsl
                    │   ├── Catalog.Товары.Command.ПечатьПрайсЛиста.CommandModule.bsl
                    │   ├── CommonModule.ОбменМобильныеОбщее.Module.bsl
                    │   ├── Document.РасходТовара.ObjectModule.bsl
                    │   ├── ci_before_script.os
                    │   └── test_canCompile.os
                    ├── ABAP/
                    │   └── cl_csv_parser.abap
                    ├── AGS Script/
                    │   ├── GlobalScript.asc
                    │   ├── GlobalScript.ash
                    │   ├── KeyboardMovement_102.asc
                    │   └── KeyboardMovement_102.ash
                    ├── AMPL/
                    │   ├── CT2.mod
                    │   └── toy.ampl
                    ├── API Blueprint/
                    │   ├── actions.apib
                    │   ├── attributes.apib
                    │   └── simple.apib
                    ├── APL/
                    │   ├── DeepakChopra.apl
                    │   ├── UT.dyalog
                    │   └── hashbang
                    ├── ASN.1/
                    │   └── example.asn
                    ├── ATS/
                    │   ├── CoYonedaLemma.dats
                    │   ├── DiningPhil2.dats
                    │   ├── DiningPhil2.sats
                    │   ├── DiningPhil2_fork.dats
                    │   ├── DiningPhil2_thread.dats
                    │   ├── YonedaLemma.dats
                    │   ├── basis_ssntype.sats
                    │   ├── csv_parse.hats
                    │   └── intinf_vt.dats
                    ├── ActionScript/
                    │   ├── FooBar.as
                    │   └── HelloWorld.as
                    ├── Adobe Font Metrics/
                    │   ├── OpenSansCondensed-Bold.afm
                    │   ├── SpecialElite.afm
                    │   └── lambda.afm
                    ├── Agda/
                    │   └── NatCat.agda
                    ├── Alloy/
                    │   ├── file_system.als
                    │   ├── marksweepgc.als
                    │   └── views.als
                    ├── Alpine Abuild/
                    │   └── filenames/
                    │       └── APKBUILD
                    ├── AngelScript/
                    │   ├── botmanager.as
                    │   └── payload.as
                    ├── Ant Build System/
                    │   └── filenames/
                    │       ├── ant.xml
                    │       └── build.xml
                    ├── ApacheConf/
                    │   ├── apache.vhost
                    │   └── filenames/
                    │       ├── .htaccess
                    │       ├── apache2.conf
                    │       └── httpd.conf
                    ├── Apex/
                    │   ├── ArrayUtils.cls
                    │   ├── BooleanUtils.cls
                    │   ├── EmailUtils.cls
                    │   ├── GeoUtils.cls
                    │   ├── LanguageUtils.cls
                    │   └── TwilioAPI.cls
                    ├── Apollo Guidance Computer/
                    │   └── BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc
                    ├── AppleScript/
                    │   ├── Convert To PDF.applescript
                    │   ├── Convert To PostScript.applescript
                    │   ├── Count Messages in All Mailboxes.applescript
                    │   ├── Crazy Message Text.applescript
                    │   ├── Get User Name.applescript
                    │   ├── Time Of Day.applescript
                    │   └── center.applescript
                    ├── AsciiDoc/
                    │   ├── encoding.asciidoc
                    │   ├── list.asc
                    │   └── sample.adoc
                    ├── AspectJ/
                    │   ├── CacheAspect.aj
                    │   └── OptimizeRecursionCache.aj
                    ├── Assembly/
                    │   ├── External Interrupt.a51
                    │   ├── FASM.asm
                    │   ├── forth.nasm
                    │   ├── fp_sqr32_160_comba.inc
                    │   ├── lib.inc
                    │   └── macros.inc
                    ├── AutoHotkey/
                    │   └── hello.ahk
                    ├── Awk/
                    │   └── test.awk
                    ├── Ballerina/
                    │   ├── hello-world-service.bal
                    │   ├── hello-world.bal
                    │   ├── json.bal
                    │   ├── var.bal
                    │   └── xml.bal
                    ├── BitBake/
                    │   ├── gstreamer-libav.bb
                    │   └── qtbase-native.bb
                    ├── Blade/
                    │   ├── hello.blade
                    │   └── hello.blade.php
                    ├── BlitzBasic/
                    │   ├── HalfAndDouble.bb
                    │   ├── LList.bb
                    │   └── PObj.bb
                    ├── BlitzMax/
                    │   └── sample.bmx
                    ├── Bluespec/
                    │   ├── TL.bsv
                    │   └── TbTL.bsv
                    ├── Brainfuck/
                    │   ├── factor.b
                    │   ├── fib100.bf
                    │   ├── hello.bf
                    │   ├── helloworld.bf
                    │   └── rot13.bf
                    ├── Brightscript/
                    │   └── SimpleGrid.brs
                    ├── C/
                    │   ├── 2D.C
                    │   ├── 2D.H
                    │   ├── Arduino.cats
                    │   ├── ArrowLeft.h
                    │   ├── GLKMatrix4.h
                    │   ├── NWMan.h
                    │   ├── Nightmare.h
                    │   ├── array.c
                    │   ├── array.h
                    │   ├── asm.h
                    │   ├── bitmap.h
                    │   ├── blob.c
                    │   ├── blob.h
                    │   ├── bootstrap.h
                    │   ├── color.h
                    │   ├── commit.c
                    │   ├── commit.h
                    │   ├── cpuid.h
                    │   ├── custom_extensions.c
                    │   ├── driver.h
                    │   ├── elf.h
                    │   ├── exception.zep.c
                    │   ├── exception.zep.h
                    │   ├── filter.h
                    │   ├── fudge_node.c
                    │   ├── git.c
                    │   ├── hello.c
                    │   ├── hello.h
                    │   ├── http_parser.c
                    │   ├── http_parser.h
                    │   ├── info.h
                    │   ├── interface.h
                    │   ├── ip4.h
                    │   ├── jni_layer.h
                    │   ├── main.c
                    │   ├── markdown.c
                    │   ├── multiboot.h
                    │   ├── ntru_encrypt.h
                    │   ├── portio.h
                    │   ├── pqiv.h
                    │   ├── process.c
                    │   ├── rdiscount.c
                    │   ├── readline.cats
                    │   ├── redis.c
                    │   ├── rf_io.c
                    │   ├── rf_io.h
                    │   ├── rfc_string.c
                    │   ├── rfc_string.h
                    │   ├── scheduler.h
                    │   ├── script
                    │   ├── sgd_fast.c
                    │   ├── syscalldefs.h
                    │   ├── syscalls.h
                    │   ├── vfs.h
                    │   ├── vmem.h
                    │   ├── wglew.h
                    │   └── yajl.c
                    ├── C#/
                    │   ├── AssemblyInfo.cs
                    │   ├── BsonPropertyValue.cs
                    │   ├── Index.cshtml
                    │   ├── MongoExpressionVisitor.cs
                    │   ├── Program.cs
                    │   └── build.cake
                    ├── C++/
                    │   ├── 16F88.h
                    │   ├── ClasspathVMSystemProperties.inc
                    │   ├── CsvStreamer.h
                    │   ├── Entity.h
                    │   ├── Field.h
                    │   ├── Math.inl
                    │   ├── Memory16F88.h
                    │   ├── PackageInfoParser.cpp
                    │   ├── ThreadedQueue.h
                    │   ├── Types.h
                    │   ├── bar.h
                    │   ├── bar.hh
                    │   ├── bar.hpp
                    │   ├── bug1163046.--skeleton.re
                    │   ├── cnokw.re
                    │   ├── crypter.cpp
                    │   ├── cvsignore.re
                    │   ├── env.cpp
                    │   ├── env.h
                    │   ├── epoll_reactor.ipp
                    │   ├── gdsdbreader.h
                    │   ├── graphics.cpp
                    │   ├── grpc.pb.cc
                    │   ├── hello.cpp
                    │   ├── hello.grpc.pb.h
                    │   ├── hello.ino
                    │   ├── initClasses.inc
                    │   ├── instances.inc
                    │   ├── json_reader.cpp
                    │   ├── json_writer.cpp
                    │   ├── key.cpp
                    │   ├── key.h
                    │   ├── libcanister.h
                    │   ├── main.cpp
                    │   ├── metrics.h
                    │   ├── octave_changer.ino
                    │   ├── program.cp
                    │   ├── protocol-buffer.pb.cc
                    │   ├── protocol-buffer.pb.h
                    │   ├── render_adapter.cpp
                    │   ├── rpc.h
                    │   ├── scanner.cc
                    │   ├── scanner.h
                    │   ├── simple.re
                    │   ├── srs_app_ingest.cpp
                    │   ├── utils.h
                    │   ├── v8.cc
                    │   ├── v8.h
                    │   └── wrapper_inner.cpp
                    ├── CLIPS/
                    │   ├── demo.clp
                    │   └── sudoku.clp
                    ├── CMake/
                    │   ├── filenames/
                    │   │   └── CMakeLists.txt
                    │   ├── sample1.cmake
                    │   ├── sample2.cmake
                    │   ├── sample3.cmake
                    │   ├── sample4.cmake
                    │   ├── sample5.cmake
                    │   └── uninstall.cmake.in
                    ├── COBOL/
                    │   ├── hello_world.cbl
                    │   ├── hello_world.ccp
                    │   ├── hello_world.cob
                    │   └── simple.cpy
                    ├── CSON/
                    │   ├── base.cson
                    │   ├── config.cson
                    │   ├── ff-sfd.cson
                    │   └── wercker-status.cson
                    ├── CSS/
                    │   └── bootstrap.css
                    ├── CSV/
                    │   └── cars.csv
                    ├── CWeb/
                    │   └── sat-life.w
                    ├── CartoCSS/
                    │   └── amenity-points.mss
                    ├── Ceylon/
                    │   └── Foo.ceylon
                    ├── Chapel/
                    │   ├── distributions.chpl
                    │   ├── hello.chpl
                    │   ├── lulesh.chpl
                    │   ├── nbody.chpl
                    │   └── quicksort.chpl
                    ├── Charity/
                    │   └── example.ch
                    ├── Cirru/
                    │   ├── array.cirru
                    │   ├── block.cirru
                    │   ├── bool.cirru
                    │   ├── map.cirru
                    │   ├── number.cirru
                    │   ├── require.cirru
                    │   ├── scope.cirru
                    │   ├── stdio.cirru
                    │   └── string.cirru
                    ├── Clarion/
                    │   ├── CStringClass.clw
                    │   ├── ConsoleSupport.clw
                    │   ├── HelloWorld.clw
                    │   └── hello.clw
                    ├── Clean/
                    │   ├── GenHylo.dcl
                    │   ├── GenMap.dcl
                    │   ├── GenMap.icl
                    │   ├── fsieve.icl
                    │   ├── sem.icl
                    │   ├── stack.dcl
                    │   ├── stack.icl
                    │   ├── streams.dcl
                    │   └── streams.icl
                    ├── Click/
                    │   ├── sr2.click
                    │   └── thomer-nat.click
                    ├── Clojure/
                    │   ├── build.boot
                    │   ├── for.clj
                    │   ├── hiccup.hic
                    │   ├── index.cljs.hl
                    │   ├── into-array.cljc
                    │   ├── protocol.cljs
                    │   ├── rand.cljscm
                    │   ├── svg.cljx
                    │   └── unit-test.cl2
                    ├── Closure Templates/
                    │   └── example.soy
                    ├── CoNLL-U/
                    │   ├── CF1.conllu
                    │   ├── en-ud-test-abridged.conllu
                    │   └── ug-ud-test-abridged.conllu
                    ├── CoffeeScript/
                    │   ├── browser.coffee
                    │   ├── build.cake
                    │   ├── classes.coffee
                    │   ├── coffee-script.coffee
                    │   ├── example.cjsx
                    │   ├── hello.coffee
                    │   ├── intro.coffee
                    │   ├── lexer.coffee
                    │   ├── rack_application.coffee
                    │   └── xipd.coffee
                    ├── ColdFusion/
                    │   └── example.cfm
                    ├── ColdFusion CFC/
                    │   ├── exampleScript.cfc
                    │   └── exampleTag.cfc
                    ├── Common Lisp/
                    │   ├── array.l
                    │   ├── common.l
                    │   ├── config.sexp
                    │   ├── hello.lisp
                    │   ├── macros-advanced.cl
                    │   ├── motor-inferencia.cl
                    │   ├── rss.sexp
                    │   ├── sample.lisp
                    │   └── sample.lsp
                    ├── Common Workflow Language/
                    │   └── trunk-peak-score.cwl
                    ├── Component Pascal/
                    │   ├── Example.cp
                    │   └── Example2.cps
                    ├── Cool/
                    │   ├── list.cl
                    │   └── sample.cl
                    ├── Coq/
                    │   ├── Computation.v
                    │   ├── Imp.v
                    │   ├── JsCorrectness.v
                    │   ├── JsInterpreterExtraction.v
                    │   ├── JsNumber.v
                    │   ├── JsPrettyInterm.v
                    │   ├── Lists.v
                    │   ├── Main.v
                    │   ├── Poly.v
                    │   ├── Rel.v
                    │   ├── Smallstep.v
                    │   ├── Spec.v
                    │   └── Stlc.v
                    ├── Creole/
                    │   └── creole.creole
                    ├── Crystal/
                    │   ├── const_spec.cr
                    │   ├── declare_var_spec.cr
                    │   └── transformer.cr
                    ├── Csound/
                    │   ├── allglass.orc
                    │   ├── interp.orc
                    │   └── test.orc
                    ├── Csound Document/
                    │   ├── allglass.csd
                    │   ├── interp.csd
                    │   └── test.csd
                    ├── Csound Score/
                    │   ├── allglass.sco
                    │   ├── interp.sco
                    │   └── test.sco
                    ├── Cuda/
                    │   ├── scalarProd_kernel.cuh
                    │   └── vectorAdd.cu
                    ├── Cycript/
                    │   └── utils.cy
                    ├── D/
                    │   ├── aa.d
                    │   ├── arrayops.d
                    │   ├── function.d
                    │   ├── hello_world.d
                    │   ├── mpq.d
                    │   ├── template.d
                    │   ├── template_function.d
                    │   ├── unittest1.d
                    │   └── unittest2.d
                    ├── DIGITAL Command Language/
                    │   ├── fis_gtm_kitinstal.com
                    │   ├── ghostpdl_zlib_make_vms.com
                    │   ├── libxslt_build.com
                    │   └── vmsbackup_build.com
                    ├── DM/
                    │   └── example.dm
                    ├── DNS Zone/
                    │   ├── sample.arpa
                    │   └── sneaky.net.zone
                    ├── DOS Batch/
                    │   └── BatchInstall.bat
                    ├── DTrace/
                    │   ├── counts.d
                    │   ├── probes.d
                    │   └── trace_futexes.d
                    ├── Dart/
                    │   └── point.dart
                    ├── DataWeave/
                    │   ├── customInterpolator.dwl
                    │   ├── directives.dwl
                    │   ├── functions.dwl
                    │   ├── literals.dwl
                    │   └── match.dwl
                    ├── Diff/
                    │   └── dude-thing-okay--001.patch
                    ├── Dockerfile/
                    │   └── filenames/
                    │       └── Dockerfile
                    ├── Dogescript/
                    │   └── example.djs
                    ├── E/
                    │   ├── Extends.E
                    │   ├── Functions.E
                    │   ├── Guards.E
                    │   ├── IO.E
                    │   ├── Promises.E
                    │   ├── atomic-updates.E
                    │   └── minChat.E
                    ├── EBNF/
                    │   ├── grammar.ebnf
                    │   ├── material.ebnf
                    │   ├── object.ebnf
                    │   └── types.ebnf
                    ├── ECL/
                    │   └── sample.ecl
                    ├── ECLiPSe/
                    │   └── or-constraint.ecl
                    ├── EJS/
                    │   ├── dash.ejs
                    │   └── page.ejs
                    ├── EQ/
                    │   ├── HTTPServerVirtualHostListener.eq
                    │   ├── SEButtonEntity.eq
                    │   └── String.eq
                    ├── Eagle/
                    │   ├── Eagle.brd
                    │   └── Eagle.sch
                    ├── Easybuild/
                    │   └── bzip2-1.0.6-GCC-4.9.2.eb
                    ├── Edje Data Collection/
                    │   └── mild.edc
                    ├── Eiffel/
                    │   ├── application.e
                    │   ├── book_collection.e
                    │   └── git_checkout_command.e
                    ├── Elixir/
                    │   ├── hello_world.exs
                    │   └── hello_world_test.exs
                    ├── Elm/
                    │   ├── Basic.elm
                    │   ├── QuickSort.elm
                    │   └── Tree.elm
                    ├── Emacs Lisp/
                    │   ├── .emacs.desktop
                    │   ├── dude.el
                    │   ├── ess-julia.el
                    │   └── filenames/
                    │       ├── .abbrev_defs
                    │       ├── .gnus
                    │       ├── .spacemacs
                    │       ├── .viper
                    │       ├── Cask
                    │       ├── Project.ede
                    │       ├── _emacs
                    │       └── abbrev_defs
                    ├── EmberScript/
                    │   └── momentComponent.em
                    ├── Erlang/
                    │   ├── 170-os-daemons.es
                    │   ├── elixir_parser.yrl
                    │   ├── factorial
                    │   ├── filenames/
                    │   │   ├── Emakefile
                    │   │   └── rebar.config
                    │   ├── hello.escript
                    │   ├── lfe_scan.xrl
                    │   ├── record_helper.erl
                    │   ├── record_utils.erl
                    │   ├── release
                    │   ├── sample.app.src
                    │   └── single-context.es
                    ├── F#/
                    │   ├── Combinators.fs
                    │   ├── JsonFormat.fs
                    │   ├── JsonReader.fs
                    │   ├── JsonSerializer.fs
                    │   ├── JsonWriter.fs
                    │   ├── PerformanceTesters.fs
                    │   ├── PerformanceTests.fs
                    │   └── sample.fs
                    ├── FLUX/
                    │   ├── gameserver.fx
                    │   ├── imageserver.fx
                    │   ├── mbittorrent.fx
                    │   └── test.fx
                    ├── Factor/
                    │   └── hello-world.factor
                    ├── Fantom/
                    │   ├── sample1.fan
                    │   └── sample2.fan
                    ├── Filebench WML/
                    │   └── copyfiles.f
                    ├── Filterscript/
                    │   ├── colormatrix.fs
                    │   └── fs_kernel.fs
                    ├── Formatted/
                    │   ├── NiAlH_jea.eam.fs
                    │   ├── long_seq.for
                    │   └── wksst8110.for
                    ├── Forth/
                    │   ├── KataDiversion.fth
                    │   ├── asm.fr
                    │   ├── bitmap.frt
                    │   ├── block.fth
                    │   ├── core-ext.fth
                    │   ├── core.f
                    │   ├── core.for
                    │   ├── core.fs
                    │   ├── core.fth
                    │   ├── core1.F
                    │   ├── enum.frt
                    │   ├── hello-forth.forth
                    │   ├── hello-forth.fth
                    │   ├── macros.frt
                    │   ├── tools.4TH
                    │   └── tools.fth
                    ├── Fortran/
                    │   ├── bug-185631.f
                    │   ├── m_filt2d.F90
                    │   ├── sample1.f
                    │   ├── sample1.for
                    │   ├── sample2.f
                    │   ├── sample3.F
                    │   ├── tst.f03
                    │   ├── tst.f08
                    │   ├── tst.f15
                    │   └── tst.f95
                    ├── FreeMarker/
                    │   ├── example.ftl
                    │   └── layout.ftl
                    ├── Frege/
                    │   ├── CommandLineClock.fr
                    │   ├── Concurrent.fr
                    │   ├── Sudoku.fr
                    │   └── SwingExamples.fr
                    ├── G-code/
                    │   ├── duettest.g
                    │   └── square.g
                    ├── GAMS/
                    │   └── transport.gms
                    ├── GAP/
                    │   ├── Magic.gd
                    │   ├── Magic.gi
                    │   ├── PackageInfo.g
                    │   ├── bugfix.tst
                    │   ├── example.gd
                    │   ├── example.gi
                    │   ├── factor.tst
                    │   ├── vspc.gd
                    │   └── vspc.gi
                    ├── GCC Machine Description/
                    │   └── pdp10.md
                    ├── GDB/
                    │   ├── as3.gdbinit
                    │   └── gdb_lpc17xx_program.gdb
                    ├── GDScript/
                    │   ├── example.gd
                    │   ├── grid.gd
                    │   ├── player.gd
                    │   └── pong.gd
                    ├── GLSL/
                    │   ├── SimpleLighting.gl2.frag
                    │   ├── SyLens.glsl
                    │   ├── SyLens.shader
                    │   ├── gbuffers_textured_lit.fsh
                    │   ├── gbuffers_textured_lit.vsh
                    │   ├── islandScene.glsl
                    │   ├── islandScene.shader
                    │   ├── myfragment.frg
                    │   ├── myvertex.vrx
                    │   ├── pntriangles.tesc
                    │   ├── pntriangles.tese
                    │   ├── recurse1.frag
                    │   ├── recurse1.fs
                    │   └── shader.fp
                    ├── GN/
                    │   ├── BUILD.2.gn
                    │   ├── BUILD.3.gn
                    │   ├── BUILD.gn
                    │   ├── android-rules.gni
                    │   ├── clang.gni
                    │   ├── filenames/
                    │   │   └── .gn
                    │   ├── gcc_toolchain.gni
                    │   ├── icu.gn
                    │   ├── internal_rules.gni
                    │   ├── ios-rules.gni
                    │   └── isolate.gni
                    ├── Game Maker Language/
                    │   ├── GMLmenus.gml
                    │   ├── _piwikCacheRequest.gml
                    │   ├── _piwikSendBasicReq.gml
                    │   ├── _piwikSendReq.gml
                    │   ├── characterDrawEvent.gml
                    │   ├── characterStepEvent.gml
                    │   ├── draw_menu.gml
                    │   ├── faucet-http.gml
                    │   ├── jsonion.gml
                    │   ├── jsonion_test.gml
                    │   └── scrInitLevel.gml
                    ├── Genie/
                    │   ├── Class.gs
                    │   └── Hello.gs
                    ├── Gerber Image/
                    │   ├── FelinaePurr-B.Cu.gbl
                    │   ├── FelinaePurr-B.Mask.gbs
                    │   ├── FelinaePurr-B.SilkS.gbo
                    │   ├── FelinaePurr-F.Cu.gtl
                    │   ├── FelinaePurr-F.Mask.gts
                    │   ├── FelinaePurr-F.Paste.gtp
                    │   ├── FelinaePurr-F.SilkS.gto
                    │   ├── GOLMain_RevA-B.Paste.gbp
                    │   ├── nonaprs_contour.gko
                    │   ├── simonShield-B.Cu.gbr
                    │   ├── simonShield-B.Mask.gbr
                    │   ├── simonShield-Edge.Cuts.gbr
                    │   ├── simonShield-F.Cu.gbr
                    │   ├── simonShield-F.Mask.gbr
                    │   ├── simonShield-F.SilkS.gbr
                    │   └── simonShield-drl_map.gbr
                    ├── Gnuplot/
                    │   ├── dashcolor.1.gnu
                    │   ├── histograms.2.gnu
                    │   ├── rates.gp
                    │   ├── surface1.16.gnu
                    │   ├── surface1.17.gnu
                    │   └── world2.1.gnu
                    ├── Go/
                    │   ├── api.pb.go
                    │   ├── embedded.go
                    │   └── gen-go-linguist-thrift.go
                    ├── Golo/
                    │   ├── adapters.golo
                    │   ├── async.golo
                    │   ├── augmentations.golo
                    │   ├── closures.golo
                    │   ├── coin-change.golo
                    │   ├── collection-literals.golo
                    │   ├── context-decorator.golo
                    │   ├── decorators.golo
                    │   ├── dynamic-evaluation.golo
                    │   ├── dynamic-object-person.golo
                    │   ├── echo-args.golo
                    │   ├── enums-thread-state.golo
                    │   ├── fibonacci.golo
                    │   ├── helloworld.golo
                    │   ├── http-server.golo
                    │   ├── logdeco.golo
                    │   ├── matching-operator.golo
                    │   ├── max-int.golo
                    │   ├── memoize.golo
                    │   ├── null-safety.golo
                    │   ├── prepost-decorators.golo
                    │   ├── structs.golo
                    │   ├── swing-actionlistener.golo
                    │   ├── swing-helloworld.golo
                    │   ├── templates-chat-webapp.golo
                    │   ├── util-containers.golo
                    │   └── workers.golo
                    ├── Gosu/
                    │   ├── Hello.gst
                    │   ├── Hello.gsx
                    │   ├── Person.gs
                    │   ├── Ronin.gs
                    │   └── hello.vark
                    ├── Grace/
                    │   ├── ackerman_function.grace
                    │   └── grace_IDE.grace
                    ├── Gradle/
                    │   ├── build.gradle
                    │   └── builder.gradle
                    ├── Grammatical Framework/
                    │   ├── Foods.gf
                    │   ├── FoodsAfr.gf
                    │   ├── FoodsAmh.gf
                    │   ├── FoodsBul.gf
                    │   ├── FoodsCat.gf
                    │   ├── FoodsChi.gf
                    │   ├── FoodsCze.gf
                    │   ├── FoodsDut.gf
                    │   ├── FoodsEng.gf
                    │   ├── FoodsEpo.gf
                    │   ├── FoodsFin.gf
                    │   ├── FoodsFre.gf
                    │   ├── FoodsGer.gf
                    │   ├── FoodsHeb.gf
                    │   ├── FoodsHin.gf
                    │   ├── FoodsI.gf
                    │   ├── FoodsIce.gf
                    │   ├── FoodsIta.gf
                    │   ├── FoodsJpn.gf
                    │   ├── FoodsLav.gf
                    │   ├── FoodsMlt.gf
                    │   ├── FoodsMon.gf
                    │   ├── FoodsNep.gf
                    │   ├── FoodsOri.gf
                    │   ├── FoodsPes.gf
                    │   ├── FoodsPor.gf
                    │   ├── FoodsRon.gf
                    │   ├── FoodsSpa.gf
                    │   ├── FoodsSwe.gf
                    │   ├── FoodsTha.gf
                    │   ├── FoodsTsn.gf
                    │   ├── FoodsTur.gf
                    │   ├── FoodsUrd.gf
                    │   ├── LexFoods.gf
                    │   ├── LexFoodsCat.gf
                    │   ├── LexFoodsFin.gf
                    │   ├── LexFoodsGer.gf
                    │   ├── LexFoodsIta.gf
                    │   ├── LexFoodsSwe.gf
                    │   ├── ResCze.gf
                    │   └── transFoodsHin.gf
                    ├── Graph Modeling Language/
                    │   └── sample.gml
                    ├── GraphQL/
                    │   ├── kitchen-sink.graphql
                    │   └── schema-kitchen-sink.graphql
                    ├── Graphviz (DOT)/
                    │   ├── annoying.DOT
                    │   └── sample.dot
                    ├── Groovy/
                    │   ├── build.gvy
                    │   ├── filenames/
                    │   │   └── Jenkinsfile
                    │   ├── groovy
                    │   ├── script.gvy
                    │   ├── template.grt
                    │   └── template.gtpl
                    ├── Groovy Server Pages/
                    │   ├── bar.gsp
                    │   ├── hello-pagedirective.gsp
                    │   ├── hello-resources.gsp
                    │   └── hello-var.gsp
                    ├── HCL/
                    │   ├── example.hcl
                    │   ├── example.tf
                    │   ├── main.tf
                    │   └── terraform.tfvars
                    ├── HLSL/
                    │   ├── accelerated_surface_win.hlsl
                    │   ├── bloom.cginc
                    │   ├── corridor.fx
                    │   ├── jellyfish.fx
                    │   └── noise.fx
                    ├── HTML/
                    │   ├── ApiOverviewPage.st
                    │   ├── example.xht
                    │   ├── index.html.hl
                    │   ├── pages.html
                    │   ├── rpanel.inc
                    │   └── tailDel.inc
                    ├── HTML+Django/
                    │   ├── _worker.jinja2
                    │   └── nunjucks.njk
                    ├── HTML+ECR/
                    │   └── greeting.ecr
                    ├── HTML+EEX/
                    │   └── index.html.eex
                    ├── HTML+ERB/
                    │   ├── fishbowl.html.erb.deface
                    │   └── index.html.erb
                    ├── HXML/
                    │   ├── checkstyle.hxml
                    │   └── vshaxe.hxml
                    ├── Hack/
                    │   ├── Assert.hh
                    │   ├── AssertRecipe.hh
                    │   ├── Controller.hh
                    │   ├── DBResultRecipe.hh
                    │   ├── Documentation.hh
                    │   ├── FakeDB.hh
                    │   ├── GetAndPostRecipe.hh
                    │   ├── GetController.hh
                    │   ├── HomeController.hh
                    │   ├── MySecureRequest.hh
                    │   ├── Nav.hh
                    │   ├── NonStrictFile.hh
                    │   ├── Recipe.hh
                    │   ├── RecipeWithDemo.hh
                    │   ├── Request.hh
                    │   ├── StandardPage.hh
                    │   ├── StrictFile.hh
                    │   ├── UnescapedString.hh
                    │   ├── UnescapedStringRecipe.hh
                    │   ├── UserID.hh
                    │   ├── UserIDRecipe.hh
                    │   ├── UsingUserID.hh
                    │   ├── error.hh
                    │   ├── funs.hh
                    │   ├── funs.php
                    │   ├── index.hh
                    │   ├── phpfile.hh
                    │   └── startup.hh
                    ├── Haml/
                    │   ├── buttons.html.haml.deface
                    │   └── hello.haml
                    ├── Handlebars/
                    │   ├── basic.handlebars
                    │   └── each.hbs
                    ├── Haskell/
                    │   ├── Hello.hs
                    │   ├── HsColour.hs
                    │   ├── Main.hs
                    │   ├── Sudoku.hs
                    │   └── maze-solving.hs
                    ├── Haxe/
                    │   └── HaxeExamples.hx
                    ├── Hy/
                    │   ├── fibonacci.hy
                    │   └── hello-world.hy
                    ├── HyPhy/
                    │   ├── AAModelComparison.bf
                    │   ├── CodonModelCompare.bf
                    │   ├── MFPositiveSelection.bf
                    │   ├── MatrixIndexing.bf
                    │   ├── MolecularClock.bf
                    │   ├── dNdSDistributionComparison.bf
                    │   ├── hyphy_cmds.bf
                    │   └── profile_test.bf
                    ├── IDL/
                    │   ├── mg_acosh.pro
                    │   ├── mg_analysis.dlm
                    │   ├── mg_gcd.pro
                    │   └── mg_trunc.pro
                    ├── IGOR Pro/
                    │   ├── functions.ipf
                    │   └── generic.ipf
                    ├── INI/
                    │   ├── MouseKeyboard.pro
                    │   ├── filenames/
                    │   │   ├── .editorconfig
                    │   │   ├── .gitconfig
                    │   │   └── buildozer.spec
                    │   └── ultimate-temp-controller.pro
                    ├── Idris/
                    │   └── Chars.idr
                    ├── Inform 7/
                    │   ├── Trivial Extension.i7x
                    │   └── story.ni
                    ├── Inno Setup/
                    │   └── expat.iss
                    ├── Ioke/
                    │   └── hello.ik
                    ├── Isabelle/
                    │   └── HelloWorld.thy
                    ├── Isabelle ROOT/
                    │   └── filenames/
                    │       └── ROOT
                    ├── J/
                    │   ├── hashbang
                    │   └── stwij.ijs
                    ├── JFlex/
                    │   ├── LexScan.flex
                    │   └── java.jflex
                    ├── JSON/
                    │   ├── Git Commit.JSON-tmLanguage
                    │   ├── Material_Alpha_01.gltf
                    │   ├── filenames/
                    │   │   ├── .arcconfig
                    │   │   ├── .htmlhintrc
                    │   │   ├── .jscsrc
                    │   │   ├── .tern-config
                    │   │   ├── .tern-project
                    │   │   └── mcmod.info
                    │   ├── geo.geojson
                    │   ├── http_response.avsc
                    │   ├── manifest.webapp
                    │   ├── manifest.webmanifest
                    │   ├── person.json
                    │   ├── product.json
                    │   ├── schema.json
                    │   ├── small.tfstate
                    │   ├── switzerland.topojson
                    │   └── terraform.tfstate.backup
                    ├── JSON5/
                    │   ├── example.json5
                    │   ├── filenames/
                    │   │   ├── .babelrc
                    │   │   └── .jslintrc
                    │   └── package.json5
                    ├── JSONLD/
                    │   └── sample.jsonld
                    ├── JSONiq/
                    │   ├── detail.jq
                    │   └── query.jq
                    ├── JSX/
                    │   └── sample.jsx
                    ├── Jasmin/
                    │   ├── if1.j
                    │   ├── if2.j
                    │   ├── if3.j
                    │   ├── if4.j
                    │   ├── op1.j
                    │   ├── op2.j
                    │   ├── op3.j
                    │   └── op4.j
                    ├── Java/
                    │   ├── GrammarKit.java
                    │   ├── HtmlDomParserContext.java
                    │   ├── Hudson.java
                    │   ├── JFlexLexer.java
                    │   ├── NokogiriService.java
                    │   ├── ProtocolBuffer.java
                    │   ├── clojure-type.java
                    │   ├── clojure-util.java
                    │   └── gen-java-linguist-thrift.java
                    ├── JavaScript/
                    │   ├── axios.es
                    │   ├── basic.svelte
                    │   ├── basic.vue
                    │   ├── bootstrap-modal.js
                    │   ├── ccalc-lex.js
                    │   ├── ccalc-parse.js
                    │   ├── chart_composers.gs
                    │   ├── classes-old.js
                    │   ├── classes.js
                    │   ├── constant_fold.mjs
                    │   ├── dude.js
                    │   ├── entry.mjs
                    │   ├── gen-js-linguist-thrift.js
                    │   ├── hello.js
                    │   ├── helloHanaEndpoint.xsjs
                    │   ├── helloHanaMath.xsjslib
                    │   ├── http.js
                    │   ├── index.es
                    │   ├── intro-old.js
                    │   ├── intro.js
                    │   ├── intro.js.frag
                    │   ├── itau.gs
                    │   ├── jquery-1.6.1.js
                    │   ├── jquery-1.7.2.js
                    │   ├── js
                    │   ├── js2
                    │   ├── jsbuild.jsb
                    │   ├── json2_backbone.js
                    │   ├── logo.jscad
                    │   ├── modernizr.js
                    │   ├── module.mjs
                    │   ├── namespace.js
                    │   ├── outro.js.frag
                    │   ├── parser.js
                    │   ├── pre-processors.vue
                    │   ├── proto.js
                    │   ├── steelseries-min.js
                    │   └── uglify.js
                    ├── Jison/
                    │   ├── ansic.jison
                    │   ├── classy.jison
                    │   └── lex.jison
                    ├── Jison Lex/
                    │   ├── classy.jisonlex
                    │   └── lex_grammar.jisonlex
                    ├── Jolie/
                    │   ├── common.iol
                    │   ├── exam.ol
                    │   ├── examiner.ol
                    │   ├── hanoi.ol
                    │   └── student.ol
                    ├── Julia/
                    │   ├── julia
                    │   └── stockcorr.jl
                    ├── KRL/
                    │   └── helloworld.krl
                    ├── KiCad Layout/
                    │   ├── C_Disc_D3_P2.5.kicad_mod
                    │   ├── Conn_Poncho_SinBorde.kicad_mod
                    │   ├── Fiducial_1mm.kicad_mod
                    │   ├── LED-5MM.kicad_mod
                    │   ├── Logo_OSHWA.kicad_mod
                    │   ├── Logo_Poncho.kicad_mod
                    │   ├── MagneticBuzzer_ProSignal_ABT-410-RC.kicad_mod
                    │   ├── Pin_Header_Straight_2x02.kicad_mod
                    │   ├── Pin_Header_Straight_2x20.kicad_mod
                    │   ├── Resistor_Horizontal_RM7mm.kicad_mod
                    │   ├── SW_PUSH_SMALL.kicad_mod
                    │   ├── TO-92_Molded_Narrow.kicad_mod
                    │   ├── filenames/
                    │   │   └── fp-lib-table
                    │   ├── kivicad.kicad_wks
                    │   ├── nrf-bga.kicad_pcb
                    │   └── simonShield.kicad_pcb
                    ├── KiCad Legacy Layout/
                    │   └── tc14badge.brd
                    ├── KiCad Schematic/
                    │   ├── Volume.sch
                    │   ├── buttons.sch
                    │   ├── buzzer.sch
                    │   ├── ciaaConector.sch
                    │   ├── gedda-junk.sch
                    │   └── ultimate-temp-controller.sch
                    ├── Kit/
                    │   └── demo.kit
                    ├── Kotlin/
                    │   └── Foo.kt
                    ├── LFE/
                    │   ├── church.lfe
                    │   ├── gps1.lfe
                    │   ├── mnesia_demo.lfe
                    │   └── object.lfe
                    ├── LOLCODE/
                    │   └── LOLTracer.lol
                    ├── LSL/
                    │   ├── LSL.lsl
                    │   └── LSL.lslp
                    ├── Lasso/
                    │   ├── json.lasso
                    │   ├── json.lasso9
                    │   ├── knop.las
                    │   └── knop.ldml
                    ├── Latte/
                    │   ├── layout.latte
                    │   └── template.latte
                    ├── Lean/
                    │   ├── binary.lean
                    │   └── set.hlean
                    ├── Less/
                    │   └── screen.less
                    ├── Lex/
                    │   └── zend_ini_scanner.l
                    ├── Limbo/
                    │   ├── cat.b
                    │   ├── lock.b
                    │   └── lock.m
                    ├── Linker Script/
                    │   ├── filenames/
                    │   │   └── ld.script
                    │   ├── inject.x
                    │   ├── link.ld
                    │   └── vmlinux.lds
                    ├── Linux Kernel Module/
                    │   ├── bcm4334x.mod
                    │   ├── mbcache.mod
                    │   └── md5.mod
                    ├── Liquid/
                    │   ├── layout.liquid
                    │   └── template.liquid
                    ├── Literate Agda/
                    │   └── NatCat.lagda
                    ├── Literate CoffeeScript/
                    │   └── scope.litcoffee
                    ├── LiveScript/
                    │   └── hello.ls
                    ├── Logos/
                    │   ├── NCHax.x
                    │   ├── NoCarrier.x
                    │   ├── Tweak.x
                    │   ├── example.xm
                    │   └── string1.x
                    ├── Logtalk/
                    │   └── foo.lgt
                    ├── LookML/
                    │   ├── comments.view.lookml
                    │   ├── example.model.lkml
                    │   └── example.view.lkml
                    ├── LoomScript/
                    │   ├── HelloWorld.ls
                    │   └── SyntaxExercise.ls
                    ├── Lua/
                    │   ├── h-counter.pd_lua
                    │   ├── treegen.p8
                    │   ├── vidya-file-list-parser.pd_lua
                    │   ├── vidya-file-modder.pd_lua
                    │   └── wsapi.fcgi
                    ├── M/
                    │   ├── Comment.m
                    │   ├── GMRGPNB0.m
                    │   ├── MDB.m
                    │   ├── PRCAAPR.m
                    │   ├── PXAI.m
                    │   ├── WVBRNOT.m
                    │   ├── ZDIOUT1.m
                    │   ├── _zewdAPI.m
                    │   ├── _zewdDemo.m
                    │   ├── arrays.m
                    │   ├── base64.m
                    │   ├── digest.m
                    │   ├── dynamicscoping.m
                    │   ├── fibonacci.m
                    │   ├── forloop.m
                    │   ├── functions.m
                    │   ├── helloworld.m
                    │   ├── ifelse.m
                    │   ├── indirectfunctions.m
                    │   ├── md5.m
                    │   ├── mileage.m
                    │   ├── mumtris.m
                    │   ├── nesting.m
                    │   ├── pcre.m
                    │   ├── pcreexamples.m
                    │   ├── postconditional.m
                    │   ├── primes.m
                    │   ├── url.m
                    │   └── zmwire.m
                    ├── M4/
                    │   └── htmlgen.m4
                    ├── M4Sugar/
                    │   ├── ax_ruby_devel.m4
                    │   ├── filenames/
                    │   │   └── configure.ac
                    │   └── list.m4
                    ├── MAXScript/
                    │   ├── macro-1.mcr
                    │   ├── macro-2.mcr
                    │   ├── rolloutCreator.ms
                    │   ├── svg-renderer.ms
                    │   └── volume-calc.ms
                    ├── MQL4/
                    │   ├── header-sample.mqh
                    │   ├── indicator-sample.mq4
                    │   └── script-sample.mq4
                    ├── MQL5/
                    │   ├── Regex.mqh
                    │   ├── indicator-sample.mq5
                    │   └── script-sample.mq5
                    ├── MTML/
                    │   └── categories_to_columns.mtml
                    ├── MUF/
                    │   ├── 39.m
                    │   └── cmd-say.muf
                    ├── Makefile/
                    │   ├── file-icons.make
                    │   ├── filenames/
                    │   │   ├── BSDmakefile
                    │   │   ├── Kbuild
                    │   │   ├── Makefile
                    │   │   ├── Makefile.boot
                    │   │   ├── Makefile.frag
                    │   │   ├── Makefile.inc
                    │   │   ├── Makefile.wat
                    │   │   ├── makefile.sco
                    │   │   └── mkfile
                    │   ├── foo.o.d
                    │   └── makefile
                    ├── Markdown/
                    │   ├── README.mdown
                    │   ├── csharp6.workbook
                    │   ├── minimal.md
                    │   ├── symlink.md
                    │   └── tender.md
                    ├── Marko/
                    │   ├── counter.marko
                    │   ├── hello.marko
                    │   └── rgb-sliders.marko
                    ├── Mask/
                    │   └── view.mask
                    ├── Mathematica/
                    │   ├── HeyexImport.m
                    │   ├── Init.m
                    │   ├── MiscCalculations.nb
                    │   ├── MiscCalculations2.nb
                    │   ├── PacletInfo.m
                    │   ├── Predicates.m
                    │   ├── Predicates.wl
                    │   ├── Problem12.m
                    │   ├── TestArithmetic.mt
                    │   ├── TestString.mt
                    │   ├── TestSuite.mt
                    │   └── UnitTest.wlt
                    ├── Matlab/
                    │   ├── CVX/
                    │   │   ├── Contents.m
                    │   │   ├── builtins/
                    │   │   │   ├── @cvx/
                    │   │   │   │   ├── abs.m
                    │   │   │   │   ├── blkdiag.m
                    │   │   │   │   ├── builtins.m
                    │   │   │   │   ├── cat.m
                    │   │   │   │   ├── conj.m
                    │   │   │   │   ├── conv.m
                    │   │   │   │   ├── ctranspose.m
                    │   │   │   │   ├── cumprod.m
                    │   │   │   │   ├── cumsum.m
                    │   │   │   │   ├── diag.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── end.m
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── exp.m
                    │   │   │   │   ├── find.m
                    │   │   │   │   ├── full.m
                    │   │   │   │   ├── ge.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   ├── hankel.m
                    │   │   │   │   ├── horzcat.m
                    │   │   │   │   ├── imag.m
                    │   │   │   │   ├── ipermute.m
                    │   │   │   │   ├── isreal.m
                    │   │   │   │   ├── kron.m
                    │   │   │   │   ├── ldivide.m
                    │   │   │   │   ├── le.m
                    │   │   │   │   ├── log.m
                    │   │   │   │   ├── lt.m
                    │   │   │   │   ├── max.m
                    │   │   │   │   ├── min.m
                    │   │   │   │   ├── minus.m
                    │   │   │   │   ├── mldivide.m
                    │   │   │   │   ├── mpower.m
                    │   │   │   │   ├── mrdivide.m
                    │   │   │   │   ├── mtimes.m
                    │   │   │   │   ├── ne.m
                    │   │   │   │   ├── nnz.m
                    │   │   │   │   ├── norm.m
                    │   │   │   │   ├── permute.m
                    │   │   │   │   ├── plus.m
                    │   │   │   │   ├── polyval.m
                    │   │   │   │   ├── power.m
                    │   │   │   │   ├── prod.m
                    │   │   │   │   ├── rdivide.m
                    │   │   │   │   ├── real.m
                    │   │   │   │   ├── reshape.m
                    │   │   │   │   ├── size.m
                    │   │   │   │   ├── sparse.m
                    │   │   │   │   ├── spy.m
                    │   │   │   │   ├── sqrt.m
                    │   │   │   │   ├── std.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   ├── sum.m
                    │   │   │   │   ├── times.m
                    │   │   │   │   ├── toeplitz.m
                    │   │   │   │   ├── transpose.m
                    │   │   │   │   ├── tril.m
                    │   │   │   │   ├── triu.m
                    │   │   │   │   ├── uminus.m
                    │   │   │   │   ├── uplus.m
                    │   │   │   │   ├── var.m
                    │   │   │   │   └── vertcat.m
                    │   │   │   ├── @cvxcnst/
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── ge.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   ├── le.m
                    │   │   │   │   ├── lt.m
                    │   │   │   │   └── ne.m
                    │   │   │   └── Contents.m
                    │   │   ├── commands/
                    │   │   │   ├── @cvx/
                    │   │   │   │   └── commands.m
                    │   │   │   ├── Contents.m
                    │   │   │   ├── cvx_begin.m
                    │   │   │   ├── cvx_clear.m
                    │   │   │   ├── cvx_end.m
                    │   │   │   ├── cvx_expert.m
                    │   │   │   ├── cvx_pause.m
                    │   │   │   ├── cvx_power_warning.m
                    │   │   │   ├── cvx_precision.m
                    │   │   │   ├── cvx_profile.m
                    │   │   │   ├── cvx_quiet.m
                    │   │   │   ├── cvx_save_prefs.m
                    │   │   │   ├── cvx_solver.m
                    │   │   │   ├── cvx_solver_settings.m
                    │   │   │   ├── cvx_tic.m
                    │   │   │   ├── cvx_toc.m
                    │   │   │   └── cvx_where.m
                    │   │   ├── cvx_error.m
                    │   │   ├── cvx_setup.m
                    │   │   ├── cvx_startup.m
                    │   │   ├── cvx_version.m
                    │   │   ├── examples/
                    │   │   │   ├── Contents.m
                    │   │   │   ├── antenna_array_design/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── ant_array_min_beamwidth.m
                    │   │   │   │   ├── ant_array_min_sidelobe.m
                    │   │   │   │   ├── ant_array_min_therm_noise.m
                    │   │   │   │   ├── broadband_array_min_sidelobe.m
                    │   │   │   │   ├── line_array_spec_fact.m
                    │   │   │   │   ├── polar_plot_ant.m
                    │   │   │   │   └── spectral_fact.m
                    │   │   │   ├── circuit_design/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── LC_osc_design.m
                    │   │   │   │   ├── clock_mesh.m
                    │   │   │   │   ├── dig_ckt_sizing.m
                    │   │   │   │   ├── elmore_straight_wire.m
                    │   │   │   │   ├── inverter_chain_sizing.m
                    │   │   │   │   ├── plot_four_tapers.m
                    │   │   │   │   ├── simple_NAND2_gate_design.m
                    │   │   │   │   ├── simple_step.m
                    │   │   │   │   ├── tristate_bus_sizing.m
                    │   │   │   │   ├── wire_driver_sizing.m
                    │   │   │   │   ├── wire_sizing.m
                    │   │   │   │   ├── wire_sizing_spacing.m
                    │   │   │   │   └── wire_sizing_topology.m
                    │   │   │   ├── closest_toeplitz_psd.m
                    │   │   │   ├── cvxbook/
                    │   │   │   │   ├── Ch04_cvx_opt_probs/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── cantilever_beam.m
                    │   │   │   │   │   ├── cantilever_beam_plot.m
                    │   │   │   │   │   ├── cantilever_beam_rec.m
                    │   │   │   │   │   ├── channel_capacity.m
                    │   │   │   │   │   ├── chebyshev_center.m
                    │   │   │   │   │   ├── chebyshev_center_2D.m
                    │   │   │   │   │   ├── ex_4_27.m
                    │   │   │   │   │   ├── ex_4_3.m
                    │   │   │   │   │   ├── ex_4_38.m
                    │   │   │   │   │   ├── ex_4_5.m
                    │   │   │   │   │   ├── fastest_mixing_MC.m
                    │   │   │   │   │   ├── frob_norm_diag_scaling.m
                    │   │   │   │   │   ├── logopt_investment.m
                    │   │   │   │   │   ├── max_det_psd_completion.m
                    │   │   │   │   │   └── min_spec_rad_ppl_dynamics.m
                    │   │   │   │   ├── Ch05_duality/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── ex_5_1.m
                    │   │   │   │   │   ├── ex_5_19.m
                    │   │   │   │   │   ├── ex_5_33.m
                    │   │   │   │   │   ├── ex_5_39.m
                    │   │   │   │   │   ├── matrix_games.m
                    │   │   │   │   │   ├── matrix_games_LP.m
                    │   │   │   │   │   ├── norm_approx.m
                    │   │   │   │   │   └── qcqp.m
                    │   │   │   │   ├── Ch06_approx_fitting/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── basispursuit.m
                    │   │   │   │   │   ├── convex_interpolation.m
                    │   │   │   │   │   ├── deadzone.m
                    │   │   │   │   │   ├── fig6_15.m
                    │   │   │   │   │   ├── fig6_19.m
                    │   │   │   │   │   ├── fig6_20.m
                    │   │   │   │   │   ├── fig6_5.m
                    │   │   │   │   │   ├── fig6_6.m
                    │   │   │   │   │   ├── fig6_9.m
                    │   │   │   │   │   ├── penalty_comp_cvx.m
                    │   │   │   │   │   ├── preference_regions.m
                    │   │   │   │   │   ├── regressor_cvx.m
                    │   │   │   │   │   ├── smoothrec_cvx.m
                    │   │   │   │   │   ├── tv_cvx.m
                    │   │   │   │   │   └── wcrobls.m
                    │   │   │   │   ├── Ch07_statistical_estim/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── ML_covariance_est.m
                    │   │   │   │   │   ├── cheb.m
                    │   │   │   │   │   ├── cher.m
                    │   │   │   │   │   ├── counting_problem_poisson.m
                    │   │   │   │   │   ├── detector2.m
                    │   │   │   │   │   ├── expdesign.m
                    │   │   │   │   │   ├── logistics.m
                    │   │   │   │   │   ├── logistics_gp.m
                    │   │   │   │   │   ├── maxent.m
                    │   │   │   │   │   ├── montecarlo.m
                    │   │   │   │   │   └── probbounds.m
                    │   │   │   │   ├── Ch08_geometric_probs/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── analytic_center.m
                    │   │   │   │   │   ├── data_floorplan_32.mat
                    │   │   │   │   │   ├── data_floorplan_60.mat
                    │   │   │   │   │   ├── eucl_dist_poly.m
                    │   │   │   │   │   ├── eucl_dist_poly_2D.m
                    │   │   │   │   │   ├── eucl_proj_cone1.m
                    │   │   │   │   │   ├── eucl_proj_cone2.m
                    │   │   │   │   │   ├── eucl_proj_hlf.m
                    │   │   │   │   │   ├── eucl_proj_hyp.m
                    │   │   │   │   │   ├── eucl_proj_rect.m
                    │   │   │   │   │   ├── ex_8_3.m
                    │   │   │   │   │   ├── ex_8_4.m
                    │   │   │   │   │   ├── ex_8_5.m
                    │   │   │   │   │   ├── floor_plan.m
                    │   │   │   │   │   ├── floor_plan_graphs.m
                    │   │   │   │   │   ├── floorplan.m
                    │   │   │   │   │   ├── linear_discr.m
                    │   │   │   │   │   ├── max_vol_ellip_in_polyhedra.m
                    │   │   │   │   │   ├── min_vol_elp_finite_set.m
                    │   │   │   │   │   ├── min_vol_union_ellip.m
                    │   │   │   │   │   ├── placement_lin.m
                    │   │   │   │   │   ├── placement_quad.m
                    │   │   │   │   │   ├── placement_quar.m
                    │   │   │   │   │   ├── poly3_discr.m
                    │   │   │   │   │   ├── poly4_discr.m
                    │   │   │   │   │   ├── quad_discr.m
                    │   │   │   │   │   ├── robust_lin_discr.m
                    │   │   │   │   │   ├── separate_ell_2D.m
                    │   │   │   │   │   ├── separate_poly_2D.m
                    │   │   │   │   │   ├── separate_pt_poly.m
                    │   │   │   │   │   ├── svm_1.m
                    │   │   │   │   │   ├── svm_2.m
                    │   │   │   │   │   └── test_floorplan.m
                    │   │   │   │   ├── Ch11_intpt_methods/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   └── log_utility_flow.m
                    │   │   │   │   └── Contents.m
                    │   │   │   ├── equality_constr_norm_min.m
                    │   │   │   ├── filter_design/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── equalizer_design.m
                    │   │   │   │   ├── fir_chebychev_design.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_max_atten.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_min_order.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_min_ripple.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_min_trans.m
                    │   │   │   │   ├── fir_mag_design_lowpass_max_atten.m
                    │   │   │   │   ├── fir_mag_design_lowpass_min_order.m
                    │   │   │   │   ├── iir_mag_design_bandpass_max_atten.m
                    │   │   │   │   ├── iir_mag_design_lowpass_max_atten.m
                    │   │   │   │   ├── one_over_f_filter.m
                    │   │   │   │   └── spectral_fact.m
                    │   │   │   ├── gp_tutorial/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── basic_odp.m
                    │   │   │   │   ├── beta_min_odp.m
                    │   │   │   │   ├── elmore_interconnect.m
                    │   │   │   │   ├── floor_planning.m
                    │   │   │   │   ├── max_volume_box.m
                    │   │   │   │   ├── power_control.m
                    │   │   │   │   ├── simple_dig_ckt_sizing.m
                    │   │   │   │   └── simple_dig_ckt_sizing_vect.m
                    │   │   │   ├── graph_laplacian/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── best_const.m
                    │   │   │   │   ├── cut_grid_data.m
                    │   │   │   │   ├── cut_grid_example.m
                    │   │   │   │   ├── fdla.m
                    │   │   │   │   ├── fmmc.m
                    │   │   │   │   ├── larger_example.m
                    │   │   │   │   ├── max_deg.m
                    │   │   │   │   ├── mh.m
                    │   │   │   │   ├── plotgraph.m
                    │   │   │   │   └── small_example.m
                    │   │   │   ├── log_exp/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── max_entropy.m
                    │   │   │   │   ├── sparse_covariance_est.m
                    │   │   │   │   ├── sparse_covariance_est_tradeoff.m
                    │   │   │   │   └── weighted_analytic_center.m
                    │   │   │   ├── make.m
                    │   │   │   ├── min_phase_spectral_fact.m
                    │   │   │   ├── nonneg_matrix_fact.m
                    │   │   │   ├── quickstart.m
                    │   │   │   ├── regularized_norm_tradeoff.m
                    │   │   │   ├── simple_LP.m
                    │   │   │   ├── simple_LP2.m
                    │   │   │   ├── simple_LS.m
                    │   │   │   ├── sparse_heuristics/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── sparse_infeas.m
                    │   │   │   │   ├── sparse_infeas_dual.m
                    │   │   │   │   └── sparse_solution.m
                    │   │   │   └── time_series_analysis/
                    │   │   │       ├── Contents.m
                    │   │   │       └── l1_trend_filter_snp500.m
                    │   │   ├── functions/
                    │   │   │   ├── @cvx/
                    │   │   │   │   ├── avg_abs_dev.m
                    │   │   │   │   ├── avg_abs_dev_med.m
                    │   │   │   │   ├── berhu.m
                    │   │   │   │   ├── cvx_recip.m
                    │   │   │   │   ├── det_inv.m
                    │   │   │   │   ├── det_rootn.m
                    │   │   │   │   ├── functions.m
                    │   │   │   │   ├── geo_mean.m
                    │   │   │   │   ├── huber_pos.m
                    │   │   │   │   ├── inv_pos.m
                    │   │   │   │   ├── lambda_max.m
                    │   │   │   │   ├── lambda_sum_largest.m
                    │   │   │   │   ├── log_normcdf.m
                    │   │   │   │   ├── log_sum_exp.m
                    │   │   │   │   ├── matrix_frac.m
                    │   │   │   │   ├── norm_nuc.m
                    │   │   │   │   ├── norms.m
                    │   │   │   │   ├── pow_abs.m
                    │   │   │   │   ├── pow_cvx.m
                    │   │   │   │   ├── pow_p.m
                    │   │   │   │   ├── pow_pos.m
                    │   │   │   │   ├── prod_inv.m
                    │   │   │   │   ├── quad_form.m
                    │   │   │   │   ├── quad_over_lin.m
                    │   │   │   │   ├── quad_pos_over_lin.m
                    │   │   │   │   ├── rel_entr.m
                    │   │   │   │   ├── sigma_max.m
                    │   │   │   │   ├── square.m
                    │   │   │   │   ├── square_abs.m
                    │   │   │   │   ├── square_pos.m
                    │   │   │   │   ├── sum_largest.m
                    │   │   │   │   ├── sum_log.m
                    │   │   │   │   ├── sum_square.m
                    │   │   │   │   ├── sum_square_abs.m
                    │   │   │   │   ├── sum_square_pos.m
                    │   │   │   │   ├── trace_inv.m
                    │   │   │   │   ├── trace_sqrtm.m
                    │   │   │   │   └── vec.m
                    │   │   │   ├── Contents.m
                    │   │   │   ├── avg_abs_dev.m
                    │   │   │   ├── avg_abs_dev_med.m
                    │   │   │   ├── berhu.m
                    │   │   │   ├── det_inv.m
                    │   │   │   ├── det_root2n.m
                    │   │   │   ├── det_rootn.m
                    │   │   │   ├── entr.m
                    │   │   │   ├── geo_mean.m
                    │   │   │   ├── geomean.m
                    │   │   │   ├── huber.m
                    │   │   │   ├── huber_circ.m
                    │   │   │   ├── huber_pos.m
                    │   │   │   ├── inv_pos.m
                    │   │   │   ├── kl_div.m
                    │   │   │   ├── lambda_max.m
                    │   │   │   ├── lambda_min.m
                    │   │   │   ├── lambda_sum_largest.m
                    │   │   │   ├── lambda_sum_smallest.m
                    │   │   │   ├── log_det.m
                    │   │   │   ├── log_normcdf.m
                    │   │   │   ├── log_prod.m
                    │   │   │   ├── log_sum_exp.m
                    │   │   │   ├── logsumexp.m
                    │   │   │   ├── logsumexp_sdp.m
                    │   │   │   ├── matrix_frac.m
                    │   │   │   ├── norm_largest.m
                    │   │   │   ├── norm_nuc.m
                    │   │   │   ├── norms.m
                    │   │   │   ├── norms_largest.m
                    │   │   │   ├── poly_env.m
                    │   │   │   ├── polyenv.m
                    │   │   │   ├── polyval_trig.m
                    │   │   │   ├── pos.m
                    │   │   │   ├── pow_abs.m
                    │   │   │   ├── pow_p.m
                    │   │   │   ├── pow_pos.m
                    │   │   │   ├── prod_inv.m
                    │   │   │   ├── quad_form.m
                    │   │   │   ├── quad_over_lin.m
                    │   │   │   ├── quad_pos_over_lin.m
                    │   │   │   ├── rel_entr.m
                    │   │   │   ├── sigma_max.m
                    │   │   │   ├── square_/
                    │   │   │   │   └── square.m
                    │   │   │   ├── square_abs.m
                    │   │   │   ├── square_pos.m
                    │   │   │   ├── sum_largest.m
                    │   │   │   ├── sum_log.m
                    │   │   │   ├── sum_smallest.m
                    │   │   │   ├── sum_square.m
                    │   │   │   ├── sum_square_abs.m
                    │   │   │   ├── sum_square_pos.m
                    │   │   │   ├── sym.m
                    │   │   │   ├── trace_inv.m
                    │   │   │   ├── trace_sqrtm.m
                    │   │   │   └── vec_/
                    │   │   │       └── vec.m
                    │   │   ├── keywords/
                    │   │   │   ├── Contents.m
                    │   │   │   ├── In.m
                    │   │   │   ├── binary.m
                    │   │   │   ├── dual.m
                    │   │   │   ├── epigraph.m
                    │   │   │   ├── expression.m
                    │   │   │   ├── expressions.m
                    │   │   │   ├── hypograph.m
                    │   │   │   ├── integer.m
                    │   │   │   ├── maximise.m
                    │   │   │   ├── maximize.m
                    │   │   │   ├── minimise.m
                    │   │   │   ├── minimize.m
                    │   │   │   ├── subject.m
                    │   │   │   ├── variable.m
                    │   │   │   └── variables.m
                    │   │   ├── lib/
                    │   │   │   ├── @cell/
                    │   │   │   │   ├── cvx_id.m
                    │   │   │   │   ├── cvx_setdual.m
                    │   │   │   │   └── cvx_value.m
                    │   │   │   ├── @cvx/
                    │   │   │   │   ├── bcompress.m
                    │   │   │   │   ├── buncompress.m
                    │   │   │   │   ├── cvx.m
                    │   │   │   │   ├── cvx_basis.m
                    │   │   │   │   ├── cvx_classify.m
                    │   │   │   │   ├── cvx_constant.m
                    │   │   │   │   ├── cvx_getdual.m
                    │   │   │   │   ├── cvx_isaffine.m
                    │   │   │   │   ├── cvx_isconcave.m
                    │   │   │   │   ├── cvx_isconstant.m
                    │   │   │   │   ├── cvx_isconvex.m
                    │   │   │   │   ├── cvx_isnonzero.m
                    │   │   │   │   ├── cvx_readlevel.m
                    │   │   │   │   ├── cvx_setdual.m
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvx_vexity.m
                    │   │   │   │   ├── in.m
                    │   │   │   │   ├── keywords.m
                    │   │   │   │   ├── matlab6.m
                    │   │   │   │   ├── sets.m
                    │   │   │   │   ├── sparsify.m
                    │   │   │   │   ├── svec.m
                    │   │   │   │   ├── type.m
                    │   │   │   │   └── value.m
                    │   │   │   ├── @cvxcnst/
                    │   │   │   │   ├── cvxcnst.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── display.m
                    │   │   │   │   ├── double.m
                    │   │   │   │   ├── logical.m
                    │   │   │   │   └── rhs.m
                    │   │   │   ├── @cvxdual/
                    │   │   │   │   ├── colon.m
                    │   │   │   │   ├── cvx_basis.m
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvxaff.m
                    │   │   │   │   ├── cvxdual.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── display.m
                    │   │   │   │   ├── dof.m
                    │   │   │   │   ├── inuse.m
                    │   │   │   │   ├── isreal.m
                    │   │   │   │   ├── name.m
                    │   │   │   │   ├── problem.m
                    │   │   │   │   ├── size.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   ├── type.m
                    │   │   │   │   └── value.m
                    │   │   │   ├── @cvxin/
                    │   │   │   │   ├── cvxin.m
                    │   │   │   │   ├── cvxtuple.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   └── lt.m
                    │   │   │   ├── @cvxobj/
                    │   │   │   │   ├── cvx_id.m
                    │   │   │   │   ├── cvxobj.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── display.m
                    │   │   │   │   ├── isempty.m
                    │   │   │   │   ├── isequal.m
                    │   │   │   │   ├── length.m
                    │   │   │   │   ├── ndims.m
                    │   │   │   │   ├── numel.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   └── subsref.m
                    │   │   │   ├── @cvxprob/
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvxprob.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── eliminate.m
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── extract.m
                    │   │   │   │   ├── index.m
                    │   │   │   │   ├── ne.m
                    │   │   │   │   ├── newcnstr.m
                    │   │   │   │   ├── newdual.m
                    │   │   │   │   ├── newnonl.m
                    │   │   │   │   ├── newobj.m
                    │   │   │   │   ├── newtemp.m
                    │   │   │   │   ├── newvar.m
                    │   │   │   │   ├── pop.m
                    │   │   │   │   ├── solve.m
                    │   │   │   │   ├── spy.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   └── touch.m
                    │   │   │   ├── @cvxtuple/
                    │   │   │   │   ├── apply.m
                    │   │   │   │   ├── cvx_collapse.m
                    │   │   │   │   ├── cvx_constant.m
                    │   │   │   │   ├── cvx_getdual.m
                    │   │   │   │   ├── cvx_id.m
                    │   │   │   │   ├── cvx_isaffine.m
                    │   │   │   │   ├── cvx_isconcave.m
                    │   │   │   │   ├── cvx_isconstant.m
                    │   │   │   │   ├── cvx_isconvex.m
                    │   │   │   │   ├── cvx_setdual.m
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvxtuple.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── ge.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   ├── in.m
                    │   │   │   │   ├── le.m
                    │   │   │   │   ├── lt.m
                    │   │   │   │   ├── ne.m
                    │   │   │   │   ├── numel.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   └── testall.m
                    │   │   │   ├── Contents.m
                    │   │   │   ├── cvx_accept_concave.m
                    │   │   │   ├── cvx_accept_convex.m
                    │   │   │   ├── cvx_basis.m
                    │   │   │   ├── cvx_bcompress.m
                    │   │   │   ├── cvx_blkdiag.m
                    │   │   │   ├── cvx_c2r.m
                    │   │   │   ├── cvx_check_dimension.m
                    │   │   │   ├── cvx_check_dimlist.m
                    │   │   │   ├── cvx_class.m
                    │   │   │   ├── cvx_classify.m
                    │   │   │   ├── cvx_clearpath.m
                    │   │   │   ├── cvx_clearspath.m
                    │   │   │   ├── cvx_collapse.m
                    │   │   │   ├── cvx_constant.m
                    │   │   │   ├── cvx_default_dimension.m
                    │   │   │   ├── cvx_expand_dim.m
                    │   │   │   ├── cvx_expert_check.m
                    │   │   │   ├── cvx_getdual.m
                    │   │   │   ├── cvx_global.m
                    │   │   │   ├── cvx_id.m
                    │   │   │   ├── cvx_ids.m
                    │   │   │   ├── cvx_isaffine.m
                    │   │   │   ├── cvx_isconcave.m
                    │   │   │   ├── cvx_isconstant.m
                    │   │   │   ├── cvx_isconvex.m
                    │   │   │   ├── cvx_isnonzero.m
                    │   │   │   ├── cvx_r2c.m
                    │   │   │   ├── cvx_readlevel.m
                    │   │   │   ├── cvx_reduce_size.m
                    │   │   │   ├── cvx_remap.m
                    │   │   │   ├── cvx_reshape.m
                    │   │   │   ├── cvx_run_solver.m
                    │   │   │   ├── cvx_setdual.m
                    │   │   │   ├── cvx_setpath.m
                    │   │   │   ├── cvx_setspath.m
                    │   │   │   ├── cvx_size_check.m
                    │   │   │   ├── cvx_subs2str.m
                    │   │   │   ├── cvx_subsasgn.m
                    │   │   │   ├── cvx_subsref.m
                    │   │   │   ├── cvx_subsref_check.m
                    │   │   │   ├── cvx_use_sparse.m
                    │   │   │   ├── cvx_value.m
                    │   │   │   ├── cvx_values.m
                    │   │   │   ├── cvx_vexity.m
                    │   │   │   ├── cvx_zeros.m
                    │   │   │   └── narginchk_/
                    │   │   │       └── narginchk.m
                    │   │   ├── sets/
                    │   │   │   ├── Contents.m
                    │   │   │   ├── complex_lorentz.m
                    │   │   │   ├── convex_poly_coeffs.m
                    │   │   │   ├── exponential.m
                    │   │   │   ├── geo_mean_cone.m
                    │   │   │   ├── hermitian_semidefinite.m
                    │   │   │   ├── lorentz.m
                    │   │   │   ├── nonneg_poly_coeffs.m
                    │   │   │   ├── nonnegative.m
                    │   │   │   ├── norm_ball.m
                    │   │   │   ├── rotated_complex_lorentz.m
                    │   │   │   ├── rotated_lorentz.m
                    │   │   │   ├── semidefinite.m
                    │   │   │   └── simplex.m
                    │   │   ├── shims/
                    │   │   │   ├── cvx_glpk.m
                    │   │   │   ├── cvx_sdpt3.m
                    │   │   │   └── cvx_sedumi.m
                    │   │   └── structures/
                    │   │       ├── @cvx/
                    │   │       │   └── structures.m
                    │   │       ├── Contents.m
                    │   │       ├── cvx_create_structure.m
                    │   │       ├── cvx_invert_structure.m
                    │   │       ├── cvx_orthog_structure.m
                    │   │       ├── cvx_replicate_structure.m
                    │   │       ├── cvx_s_banded.m
                    │   │       ├── cvx_s_hankel.m
                    │   │       ├── cvx_s_hermitian.m
                    │   │       ├── cvx_s_sparse.m
                    │   │       ├── cvx_s_symmetric.m
                    │   │       ├── cvx_s_symmetric_ut.m
                    │   │       └── cvx_s_upper_hankel.m
                    │   ├── Check_plot.m
                    │   ├── FTLEH.m
                    │   ├── FTLE_reg.m
                    │   ├── Integrate1.m
                    │   ├── Integrate2.m
                    │   ├── Lagr.m
                    │   ├── Lagrangian_points.m
                    │   ├── Poincare.m
                    │   ├── RK4.m
                    │   ├── TFOCS/
                    │   │   ├── @double/
                    │   │   │   ├── tfocs_dot.m
                    │   │   │   ├── tfocs_size.m
                    │   │   │   └── vec.m
                    │   │   ├── @single/
                    │   │   │   ├── tfocs_dot.m
                    │   │   │   ├── tfocs_size.m
                    │   │   │   └── vec.m
                    │   │   ├── @tfocs_tuple/
                    │   │   │   ├── abs.m
                    │   │   │   ├── cell.m
                    │   │   │   ├── disp.m
                    │   │   │   ├── display.m
                    │   │   │   ├── get.m
                    │   │   │   ├── max.m
                    │   │   │   ├── min.m
                    │   │   │   ├── minus.m
                    │   │   │   ├── mtimes.m
                    │   │   │   ├── nnz.m
                    │   │   │   ├── numel.m
                    │   │   │   ├── plus.m
                    │   │   │   ├── power.m
                    │   │   │   ├── size.m
                    │   │   │   ├── subsref.m
                    │   │   │   ├── tfocs_dot.m
                    │   │   │   ├── tfocs_normsq.m
                    │   │   │   ├── tfocs_size.m
                    │   │   │   ├── tfocs_tuple.m
                    │   │   │   ├── tfocs_zeros.m
                    │   │   │   ├── times.m
                    │   │   │   └── uminus.m
                    │   │   ├── Contents.m
                    │   │   ├── continuation.m
                    │   │   ├── examples/
                    │   │   │   ├── demos/
                    │   │   │   │   ├── SIAM_demo.m
                    │   │   │   │   ├── callandmap.m
                    │   │   │   │   ├── demo_MatrixCompletion.m
                    │   │   │   │   ├── demo_SVM.m
                    │   │   │   │   ├── demo_alternatingProjections.m
                    │   │   │   │   ├── project2DCone.m
                    │   │   │   │   └── recordPoints.m
                    │   │   │   ├── largescale/
                    │   │   │   │   ├── BugsBunny.mat
                    │   │   │   │   ├── PsiTransposeWFF.m
                    │   │   │   │   ├── PsiWFF.m
                    │   │   │   │   ├── example_quantumTomography.m
                    │   │   │   │   ├── explicitPauliTensor.m
                    │   │   │   │   ├── findWeights.m
                    │   │   │   │   ├── image_denoising_withSPOT.m
                    │   │   │   │   ├── plotNow.m
                    │   │   │   │   ├── test_SVM.m
                    │   │   │   │   ├── test_sBPDN_W_largescale.m
                    │   │   │   │   ├── test_sTV_Analysis_largescale.m
                    │   │   │   │   └── test_sTV_largescale.m
                    │   │   │   ├── private/
                    │   │   │   │   ├── eig_backup.m
                    │   │   │   │   ├── linop_identity.m
                    │   │   │   │   ├── linop_stack.m
                    │   │   │   │   ├── print_cell_size.m
                    │   │   │   │   ├── prox_stack.m
                    │   │   │   │   ├── safe_eig.m
                    │   │   │   │   ├── size_ambig.m
                    │   │   │   │   ├── size_compat.m
                    │   │   │   │   ├── smooth_stack.m
                    │   │   │   │   ├── solver_apply.m
                    │   │   │   │   ├── tfocs_backtrack.m
                    │   │   │   │   ├── tfocs_cleanup.m
                    │   │   │   │   ├── tfocs_initialize.m
                    │   │   │   │   ├── tfocs_iterate.m
                    │   │   │   │   ├── tfocs_prox.m
                    │   │   │   │   ├── tfocs_round.m
                    │   │   │   │   ├── tfocs_smooth.m
                    │   │   │   │   └── tfocs_zeros.m
                    │   │   │   └── smallscale/
                    │   │   │       ├── project_WeightedNorm.m
                    │   │   │       ├── reference_solutions/
                    │   │   │       │   ├── LMI.mat
                    │   │   │       │   ├── LMI_complex.mat
                    │   │   │       │   ├── LP.mat
                    │   │   │       │   ├── LP_box.mat
                    │   │   │       │   ├── SDP.mat
                    │   │   │       │   ├── SDP_complex.mat
                    │   │   │       │   ├── basispursuit_WW_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── basispursuit_W_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── basispursuit_problem1_noisy.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noiseless.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noiseless_nonnegative.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy_complex.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy_complex_2.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy_nonnegative.mat
                    │   │   │       │   ├── blocknorm_smoothed_noisy.mat
                    │   │   │       │   ├── complicatedProblem1.mat
                    │   │   │       │   ├── dantzig_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── lasso_problem1_noisy.mat
                    │   │   │       │   ├── nuclearNorm_problem1_noiseless.mat
                    │   │   │       │   ├── ordered_lasso_problem1_noisy.mat
                    │   │   │       │   ├── traceLS_problem1_noisy.mat
                    │   │   │       │   ├── traceLS_problem2_noisy.mat
                    │   │   │       │   └── tv_problem1_smoothed_noisy.mat
                    │   │   │       ├── test_LASSO.m
                    │   │   │       ├── test_LMI.m
                    │   │   │       ├── test_LinearProgram.m
                    │   │   │       ├── test_SDP.m
                    │   │   │       ├── test_SLOPE.m
                    │   │   │       ├── test_TraceLS.m
                    │   │   │       ├── test_all.m
                    │   │   │       ├── test_blockNorm.m
                    │   │   │       ├── test_complicatedUsage.m
                    │   │   │       ├── test_nuclearNorm.m
                    │   │   │       ├── test_psdCompletion.m
                    │   │   │       ├── test_quadratic.m
                    │   │   │       ├── test_quadratic_constrained.m
                    │   │   │       ├── test_sBP.m
                    │   │   │       ├── test_sBPDN.m
                    │   │   │       ├── test_sBPDN_W.m
                    │   │   │       ├── test_sBPDN_WW.m
                    │   │   │       ├── test_sBPDN_complex.m
                    │   │   │       ├── test_sBPDN_complex_2.m
                    │   │   │       ├── test_sBPDN_nonnegative.m
                    │   │   │       ├── test_sBPDN_withContinuation.m
                    │   │   │       ├── test_sBP_nonnegative.m
                    │   │   │       ├── test_sDantzig.m
                    │   │   │       ├── test_sDantzig_3methods.m
                    │   │   │       ├── test_sTV.m
                    │   │   │       └── test_variousSolvers.m
                    │   │   ├── linop_TV.m
                    │   │   ├── linop_TV3D.m
                    │   │   ├── linop_adjoint.m
                    │   │   ├── linop_compose.m
                    │   │   ├── linop_dot.m
                    │   │   ├── linop_explicit.m
                    │   │   ├── linop_fft.m
                    │   │   ├── linop_handles.m
                    │   │   ├── linop_horzcat.m
                    │   │   ├── linop_matrix.m
                    │   │   ├── linop_normest.m
                    │   │   ├── linop_reshape.m
                    │   │   ├── linop_scale.m
                    │   │   ├── linop_spot.m
                    │   │   ├── linop_subsample.m
                    │   │   ├── linop_test.m
                    │   │   ├── linop_vec.m
                    │   │   ├── linop_vertcat.m
                    │   │   ├── proj_0.m
                    │   │   ├── proj_Rn.m
                    │   │   ├── proj_Rplus.m
                    │   │   ├── proj_affine.m
                    │   │   ├── proj_box.m
                    │   │   ├── proj_boxAffine.m
                    │   │   ├── proj_conic.m
                    │   │   ├── proj_l1.m
                    │   │   ├── proj_l1l2.m
                    │   │   ├── proj_l2.m
                    │   │   ├── proj_l2group.m
                    │   │   ├── proj_linf.m
                    │   │   ├── proj_linfl2.m
                    │   │   ├── proj_max.m
                    │   │   ├── proj_maxEig.m
                    │   │   ├── proj_nuclear.m
                    │   │   ├── proj_psd.m
                    │   │   ├── proj_psdUTrace.m
                    │   │   ├── proj_simplex.m
                    │   │   ├── proj_singleAffine.m
                    │   │   ├── proj_spectral.m
                    │   │   ├── prox_0.m
                    │   │   ├── prox_Sl1.m
                    │   │   ├── prox_boxDual.m
                    │   │   ├── prox_diag.m
                    │   │   ├── prox_dualize.m
                    │   │   ├── prox_hinge.m
                    │   │   ├── prox_hingeDual.m
                    │   │   ├── prox_l1.m
                    │   │   ├── prox_l1_and_sum.m
                    │   │   ├── prox_l1_deadzone.m
                    │   │   ├── prox_l1_mat.m
                    │   │   ├── prox_l1l2.m
                    │   │   ├── prox_l1linf.m
                    │   │   ├── prox_l1pos.m
                    │   │   ├── prox_l2.m
                    │   │   ├── prox_linf.m
                    │   │   ├── prox_max.m
                    │   │   ├── prox_maxEig.m
                    │   │   ├── prox_nuclear.m
                    │   │   ├── prox_scale.m
                    │   │   ├── prox_shift.m
                    │   │   ├── prox_spectral.m
                    │   │   ├── prox_trace.m
                    │   │   ├── randomizedSVD.m
                    │   │   ├── smooth_constant.m
                    │   │   ├── smooth_entropy.m
                    │   │   ├── smooth_handles.m
                    │   │   ├── smooth_huber.m
                    │   │   ├── smooth_linear.m
                    │   │   ├── smooth_logLLogistic.m
                    │   │   ├── smooth_logLPoisson.m
                    │   │   ├── smooth_logdet.m
                    │   │   ├── smooth_logsumexp.m
                    │   │   ├── smooth_quad.m
                    │   │   ├── solver_L1RLS.m
                    │   │   ├── solver_LASSO.m
                    │   │   ├── solver_SLOPE.m
                    │   │   ├── solver_TraceLS.m
                    │   │   ├── solver_psdComp.m
                    │   │   ├── solver_psdCompConstrainedTrace.m
                    │   │   ├── solver_sBP.m
                    │   │   ├── solver_sBPDN.m
                    │   │   ├── solver_sBPDN_W.m
                    │   │   ├── solver_sBPDN_WW.m
                    │   │   ├── solver_sDantzig.m
                    │   │   ├── solver_sDantzig_W.m
                    │   │   ├── solver_sLMI.m
                    │   │   ├── solver_sLP.m
                    │   │   ├── solver_sLP_box.m
                    │   │   ├── solver_sNuclearBP.m
                    │   │   ├── solver_sNuclearBPDN.m
                    │   │   ├── solver_sSDP.m
                    │   │   ├── test_Lipschitz.m
                    │   │   ├── test_nonsmooth.m
                    │   │   ├── test_proxPair.m
                    │   │   ├── test_smooth.m
                    │   │   ├── tfocs.m
                    │   │   ├── tfocs_AT.m
                    │   │   ├── tfocs_GRA.m
                    │   │   ├── tfocs_LLM.m
                    │   │   ├── tfocs_N07.m
                    │   │   ├── tfocs_N83.m
                    │   │   ├── tfocs_SCD.m
                    │   │   ├── tfocs_TS.m
                    │   │   ├── tfocs_normsq.m
                    │   │   ├── tfocs_version.m
                    │   │   ├── tfocs_where.m
                    │   │   ├── tfunc_scale.m
                    │   │   └── tfunc_sum.m
                    │   ├── Traj.m
                    │   ├── adapting_structural_model.m
                    │   ├── average.m
                    │   ├── bicycle_state_space.m
                    │   ├── convert_variable.m
                    │   ├── create_ieee_paper_plots.m
                    │   ├── cross_validation.m
                    │   ├── distance.m
                    │   ├── double_gyre.m
                    │   ├── example.m
                    │   ├── fit_adapt.m
                    │   ├── fit_adapt_linear.m
                    │   ├── gpu_RKF45_FILE.m
                    │   ├── ieee.m
                    │   ├── lane_change.m
                    │   ├── load_bikes.m
                    │   ├── load_data.m
                    │   ├── make_filter.m
                    │   ├── matlab_class.m
                    │   ├── matlab_function.m
                    │   ├── matlab_script.m
                    │   ├── matlab_script2.m
                    │   ├── normalize.m
                    │   ├── overwrite_settings.m
                    │   ├── par_text_to_struct.m
                    │   ├── plant.m
                    │   ├── test_rk_par.m
                    │   ├── test_system_state_space.m
                    │   ├── varargin_to_structure.m
                    │   └── write_gains.m
                    ├── Maven POM/
                    │   └── filenames/
                    │       └── pom.xml
                    ├── Max/
                    │   ├── Hello.maxhelp
                    │   ├── Hello.maxpat
                    │   └── Hello.mxt
                    ├── MediaWiki/
                    │   ├── README.wiki
                    │   └── mediawiki.mediawiki
                    ├── Mercury/
                    │   ├── code_info.m
                    │   ├── expr.moo
                    │   ├── hello.m
                    │   ├── options.m
                    │   ├── polymorphism.m
                    │   ├── rot13_concise.m
                    │   ├── rot13_ralph.m
                    │   ├── rot13_verbose.m
                    │   ├── store.m
                    │   └── switch_detection_bug.m
                    ├── Meson/
                    │   └── filenames/
                    │       ├── meson.build
                    │       └── meson_options.txt
                    ├── Metal/
                    │   └── ITMVisualisationEngine.metal
                    ├── Modelica/
                    │   ├── NestedPackages.mo
                    │   ├── NewtonCooling.mo
                    │   ├── Pendulum.mo
                    │   ├── RLC.mo
                    │   ├── SecondOrderSystem.mo
                    │   ├── System.mo
                    │   ├── Translational.mo
                    │   ├── modelica.mo
                    │   ├── package.mo
                    │   ├── package2.mo
                    │   ├── package3.mo
                    │   └── package4.mo
                    ├── Modula-2/
                    │   └── HuffChan.mod
                    ├── Module Management System/
                    │   ├── descrip.mms
                    │   ├── openvms.mmk
                    │   ├── simh_descrip.mms
                    │   ├── spline_descrip.mms
                    │   └── xv_makefile.mms
                    ├── Monkey/
                    │   ├── encodeToPng.monkey2
                    │   ├── example.monkey
                    │   ├── example.monkey2
                    │   ├── gui.monkey2
                    │   └── sorting.monkey2
                    ├── Moocode/
                    │   ├── hello.moo
                    │   ├── moocode_toolkit.moo
                    │   └── toy.moo
                    ├── MoonScript/
                    │   └── transform.moon
                    ├── NCL/
                    │   ├── PrnOscPat_driver.ncl
                    │   ├── WRF_static_2.ncl
                    │   ├── WRF_track_1.ncl
                    │   ├── cru_8.ncl
                    │   ├── gsn_csm_xy2_time_series_inputs.ncl
                    │   ├── hdf4sds_7.ncl
                    │   ├── mask_12.ncl
                    │   ├── mcsst_1.ncl
                    │   ├── primero.ncl
                    │   ├── topo_9.ncl
                    │   ├── traj_3.ncl
                    │   ├── tsdiagram_1.ncl
                    │   ├── unique_9.ncl
                    │   ├── viewport_4.ncl
                    │   ├── weather_sym_6.ncl
                    │   └── xy_29.ncl
                    ├── NL/
                    │   ├── assign0.nl
                    │   └── balassign0.nl
                    ├── NSIS/
                    │   ├── bigtest.nsi
                    │   └── x64.nsh
                    ├── Nearley/
                    │   └── nearley-language-bootstrapped.ne
                    ├── Nemerle/
                    │   └── hello.n
                    ├── NetLinx/
                    │   ├── projector.axi
                    │   └── volume-array.axs
                    ├── NetLinx+ERB/
                    │   ├── sample.axi.erb
                    │   └── sample.axs.erb
                    ├── NetLogo/
                    │   └── Life.nlogo
                    ├── NewLisp/
                    │   ├── irc.lsp
                    │   ├── log-to-database.lisp
                    │   └── queens.nl
                    ├── Nextflow/
                    │   ├── blast.nf
                    │   ├── callings.nf
                    │   ├── filenames/
                    │   │   └── nextflow.config
                    │   └── rnaseq.nf
                    ├── Nginx/
                    │   ├── example.com.vhost
                    │   └── filenames/
                    │       └── nginx.conf
                    ├── Nim/
                    │   └── foo.nim
                    ├── Nit/
                    │   ├── calculator.nit
                    │   ├── callback_chimpanze.nit
                    │   ├── callback_monkey.nit
                    │   ├── circular_list.nit
                    │   ├── clock.nit
                    │   ├── clock_more.nit
                    │   ├── curl_http.nit
                    │   ├── curl_mail.nit
                    │   ├── draw_operation.nit
                    │   ├── drop_privileges.nit
                    │   ├── extern_methods.nit
                    │   ├── fibonacci.nit
                    │   ├── file.nit
                    │   ├── hello_world.nit
                    │   ├── html_page.nit
                    │   ├── int_stack.nit
                    │   ├── meetup.nit
                    │   ├── opengles2_hello_triangle.nit
                    │   ├── print_arguments.nit
                    │   ├── procedural_array.nit
                    │   ├── socket_client.nit
                    │   ├── socket_server.nit
                    │   ├── tmpl_composer.nit
                    │   └── websocket_server.nit
                    ├── Nix/
                    │   └── nginx.nix
                    ├── Nu/
                    │   ├── RandomApp.nu
                    │   └── nu
                    ├── OCaml/
                    │   ├── Foo.ml
                    │   ├── cmdliner.ml
                    │   ├── common.ml
                    │   ├── date.ml
                    │   ├── example.eliom
                    │   ├── map.ml
                    │   ├── mirage.ml
                    │   ├── reload.ml
                    │   ├── sigset.ml
                    │   └── uutf.ml
                    ├── Objective-C/
                    │   ├── ASIHTTPRequest.h
                    │   ├── ASIHTTPRequest.m
                    │   ├── Foo.h
                    │   ├── Foo.m
                    │   ├── FooAppDelegate.h
                    │   ├── FooAppDelegate.m
                    │   ├── JSONKit.h
                    │   ├── JSONKit.m
                    │   ├── MainMenuViewController.h
                    │   ├── MainMenuViewController.m
                    │   ├── PlaygroundViewController.h
                    │   ├── PlaygroundViewController.m
                    │   ├── SBJsonParser.h
                    │   ├── SBJsonParser.m
                    │   ├── Siesta.h
                    │   ├── StyleViewController.h
                    │   ├── StyleViewController.m
                    │   ├── TUITableView.h
                    │   ├── TUITableView.m
                    │   ├── cocoa_monitor.m
                    │   ├── gen-cocoa-linguist-thrift.m
                    │   └── hello.m
                    ├── Objective-C++/
                    │   ├── EventHandlerMac.mm
                    │   └── objsql.mm
                    ├── Objective-J/
                    │   ├── AppController.j
                    │   ├── LightsOff.j
                    │   └── iTunesLayout.j
                    ├── Omgrofl/
                    │   └── hello.omgrofl
                    ├── Opa/
                    │   ├── hello_syntax1.opa
                    │   └── hello_syntax2.opa
                    ├── Opal/
                    │   └── DeepakChopra.opal
                    ├── OpenCL/
                    │   ├── fft.cl
                    │   └── sample.cl
                    ├── OpenEdge ABL/
                    │   ├── Email.cls
                    │   ├── SendEmailAlgorithm.cls
                    │   ├── SocketReader.p
                    │   ├── Util.cls
                    │   ├── openedge.p
                    │   └── test-win.w
                    ├── OpenRC runscript/
                    │   └── acpid
                    ├── OpenSCAD/
                    │   ├── not_simple.scad
                    │   └── simple.scad
                    ├── Org/
                    │   └── org.org
                    ├── Ox/
                    │   ├── IJCEmet2009.oxh
                    │   ├── ParallelObjective.ox
                    │   └── particle.oxo
                    ├── Oxygene/
                    │   └── Loops.oxygene
                    ├── Oz/
                    │   └── example.oz
                    ├── P4/
                    │   ├── l2.p4
                    │   └── mirror_acl.p4
                    ├── PAWN/
                    │   ├── fixes.inc
                    │   └── timertest.pwn
                    ├── PHP/
                    │   ├── Application.php
                    │   ├── Client.php
                    │   ├── Controller.php
                    │   ├── Form.php
                    │   ├── Model.php
                    │   ├── ThriftGenerated.php
                    │   ├── drupal.php
                    │   ├── exception.zep.php
                    │   ├── file_display.inc
                    │   ├── filenames/
                    │   │   ├── .php
                    │   │   ├── .php_cs
                    │   │   └── .php_cs.dist
                    │   ├── mail.phps
                    │   ├── php
                    │   ├── php-script
                    │   ├── php2
                    │   ├── prefix.fcgi
                    │   └── root.php
                    ├── PLSQL/
                    │   ├── myobject.sql
                    │   ├── packagebody.pkb
                    │   ├── packageheader.pks
                    │   ├── plsqlguide.pck
                    │   ├── prime#.plsql
                    │   ├── print_bool.prc
                    │   ├── videodb.ddl
                    │   └── who_called_me.sql
                    ├── PLpgSQL/
                    │   ├── plpgsql_lint-8.4.sql
                    │   ├── plpgsql_lint-9.0.sql
                    │   ├── plpgsql_lint-9.1.sql
                    │   ├── plpgsql_lint-9.2.sql
                    │   ├── plpgsql_lint-9.3.sql
                    │   └── procedures.sql
                    ├── POV-Ray SDL/
                    │   ├── balcony.pov
                    │   ├── bglass.inc
                    │   ├── building.inc
                    │   ├── chair.inc
                    │   ├── cloth.inc
                    │   ├── gamma_showcase.pov
                    │   ├── sky.inc
                    │   ├── table.inc
                    │   ├── table_cloth.inc
                    │   ├── table_stuff.inc
                    │   ├── terrain.inc
                    │   └── water.inc
                    ├── Pan/
                    │   ├── ceph-raid.pan
                    │   ├── cluster-A.pan
                    │   ├── databases.pan
                    │   ├── functions.pan
                    │   ├── infernalis.pan
                    │   ├── libvirt.pan
                    │   ├── link.pan
                    │   ├── mysql.pan
                    │   ├── nodes_properties.pan
                    │   ├── onevm.pan
                    │   ├── osd-fetch.pan
                    │   ├── pakiti.pan
                    │   ├── purge_fqan_accounts.pan
                    │   ├── resources.pan
                    │   ├── simple.pan
                    │   ├── test.pan
                    │   ├── types.pan
                    │   └── unit.pan
                    ├── Papyrus/
                    │   ├── CAMTEST_OverShoulderME.psc
                    │   ├── vMFX_FXPlugin.psc
                    │   └── vSCM_MetaQuestScript.psc
                    ├── Parrot Assembly/
                    │   └── hello.pasm
                    ├── Parrot Internal Representation/
                    │   └── hello.pir
                    ├── Pascal/
                    │   ├── bulls-and-cows.pascal
                    │   ├── custforms.pp
                    │   ├── cwindirs.pp
                    │   ├── image_url.inc
                    │   ├── large.pp
                    │   ├── libc.inc
                    │   ├── program.dpr
                    │   ├── read-a-configuration-file.pascal
                    │   ├── tw27294.pp
                    │   └── vmops_impl.inc
                    ├── Pep8/
                    │   ├── div.pep
                    │   ├── flag.pep
                    │   ├── linked.pep
                    │   ├── msq.pep
                    │   ├── qsort.pep
                    │   ├── stri_buf.pep
                    │   └── stristack.pep
                    ├── Perl/
                    │   ├── Ack.pm
                    │   ├── Any.pm
                    │   ├── Request.pm
                    │   ├── Response.pm
                    │   ├── example.cgi
                    │   ├── exception_handler.pl
                    │   ├── feedgnuplot
                    │   ├── fib.pl
                    │   ├── filenames/
                    │   │   ├── Makefile.PL
                    │   │   ├── Rexfile
                    │   │   ├── ack
                    │   │   └── cpanfile
                    │   ├── getchar.al
                    │   ├── index.fcgi
                    │   ├── oo1.pl
                    │   ├── oo2.pl
                    │   ├── oo3.pl
                    │   ├── perl
                    │   ├── perl-test.t
                    │   ├── script.pl
                    │   ├── strict.t
                    │   ├── test-perl.pl
                    │   ├── test-perl2.pl
                    │   └── use5.pl
                    ├── Perl 6/
                    │   ├── 01-dash-uppercase-i.t
                    │   ├── 01-parse.t
                    │   ├── A.pm
                    │   ├── ANSIColor.pm
                    │   ├── Bailador.pm
                    │   ├── ContainsUnicode.pm
                    │   ├── Exception.pm
                    │   ├── List.pm
                    │   ├── Model.pm
                    │   ├── RoleQ.pm6
                    │   ├── Simple.pm
                    │   ├── Win32.pm
                    │   ├── advent2009-day16.t
                    │   ├── basic-open.t
                    │   ├── calendar.t
                    │   ├── for.t
                    │   ├── grammar-test.p6
                    │   ├── hash.t
                    │   ├── htmlify.pl
                    │   ├── listquote-whitespace.t
                    │   ├── man-or-boy.t
                    │   └── test.p6
                    ├── Pic/
                    │   ├── dextroamphetamine.chem
                    │   ├── graph.pic
                    │   └── ritalin.chem
                    ├── Pickle/
                    │   ├── data.pkl
                    │   ├── neural-network-ce-l2reg-784-10-30.pkl
                    │   ├── random.pkl
                    │   └── save.pkl
                    ├── PicoLisp/
                    │   └── simul.l
                    ├── PigLatin/
                    │   └── example.pig
                    ├── Pike/
                    │   ├── Error.pmod
                    │   ├── FakeFile.pike
                    │   └── shebang.pike
                    ├── Pod/
                    │   ├── PSGI.pod
                    │   ├── Sample.pod
                    │   └── contents.pod
                    ├── PogoScript/
                    │   └── squashy.pogo
                    ├── Pony/
                    │   ├── circle.pony
                    │   ├── counter.pony
                    │   ├── gups-opt.pony
                    │   ├── hello-world.pony
                    │   ├── mandelbrot.pony
                    │   └── mixed.pony
                    ├── PostCSS/
                    │   └── sample.pcss
                    ├── PostScript/
                    │   ├── lambda.pfa
                    │   └── sierpinski.ps
                    ├── PowerBuilder/
                    │   ├── TestPBT.pbt
                    │   ├── ginpix7.sra
                    │   ├── myproject.pbt
                    │   ├── n_cst_buttonlistbar_gradient.sru
                    │   ├── part1.srw
                    │   └── w_export.srw
                    ├── PowerShell/
                    │   ├── ZLocation.psd1
                    │   ├── ZLocation.psm1
                    │   ├── history.ps1
                    │   └── pwsh-shebang.ps1
                    ├── Processing/
                    │   └── hello.pde
                    ├── Prolog/
                    │   ├── admin.pl
                    │   ├── dleak-report
                    │   ├── ex6.pl
                    │   ├── format_spec.pl
                    │   ├── func.pl
                    │   ├── logic-problem.pro
                    │   ├── queues.yap
                    │   ├── test-prolog.prolog
                    │   └── turing.pl
                    ├── Propeller Spin/
                    │   ├── 4x4 Keypad Reader.spin
                    │   ├── Debug_Lcd.spin
                    │   ├── Graphics.spin
                    │   ├── Inductor.spin
                    │   ├── Keyboard.spin
                    │   ├── TV.spin
                    │   ├── TV_Terminal.spin
                    │   ├── TV_Text.spin
                    │   ├── VGA.spin
                    │   └── VocalTract.spin
                    ├── Protocol Buffer/
                    │   └── addressbook.proto
                    ├── Public Key/
                    │   ├── gpg_key.asc
                    │   ├── id.pub
                    │   ├── id_dsa.asc
                    │   ├── id_rsa.asc
                    │   ├── id_rsa.pub
                    │   ├── sshkey1.asc
                    │   └── sunCert.asc
                    ├── Pug/
                    │   ├── hello.jade
                    │   └── hello.pug
                    ├── Puppet/
                    │   ├── apacheinit.pp
                    │   ├── expiringhost.pp
                    │   ├── hiera_include.pp
                    │   ├── stages-example.pp
                    │   └── unmanaged-notify-puppet25.pp
                    ├── PureBasic/
                    │   ├── Example_Sine.pb
                    │   └── Memory.pbi
                    ├── PureScript/
                    │   ├── Control.Arrow.purs
                    │   ├── Data.Foreign.purs
                    │   ├── Data.Map.purs
                    │   └── ReactiveJQueryTest.purs
                    ├── Python/
                    │   ├── AdditiveWave.pyde
                    │   ├── Cinema4DPythonPlugin.pyp
                    │   ├── JupyterNotebook.ipynb
                    │   ├── MoveEye.pyde
                    │   ├── action.cgi
                    │   ├── argparse.pyi
                    │   ├── backstage.fcgi
                    │   ├── closure_js_binary.bzl
                    │   ├── django-models-base.py
                    │   ├── filenames/
                    │   │   ├── .gclient
                    │   │   ├── BUCK
                    │   │   ├── BUILD
                    │   │   └── WORKSPACE
                    │   ├── flask-view.py
                    │   ├── gen-py-linguist-thrift.py
                    │   ├── protocol_buffer_pb2.py
                    │   ├── py3.py3
                    │   ├── python
                    │   ├── python2
                    │   ├── python3
                    │   ├── simpleclient.rpy
                    │   ├── spec.linux.spec
                    │   ├── standalone.gypi
                    │   ├── toolchain.gypi
                    │   └── tornado-httpserver.py
                    ├── QML/
                    │   └── common.qbs
                    ├── QMake/
                    │   ├── complex.pro
                    │   ├── functions.pri
                    │   ├── qmake
                    │   └── simple.pro
                    ├── R/
                    │   ├── R-qgis-extension.rsx
                    │   ├── df.residual.r
                    │   ├── filenames/
                    │   │   └── expr-dist
                    │   ├── git-punchcard
                    │   ├── hello-r.R
                    │   ├── import.Rd
                    │   ├── import.r
                    │   └── scholar.Rd
                    ├── RAML/
                    │   └── api.raml
                    ├── RDoc/
                    │   └── rdoc.rdoc
                    ├── REXX/
                    │   ├── BatchRemapBrushes.pprx
                    │   ├── ShapesInfo.rexx
                    │   ├── SkrivShape.rexx
                    │   └── ag2xml.rexx
                    ├── RMarkdown/
                    │   └── example.rmd
                    ├── RPC/
                    │   ├── rpc.x
                    │   ├── rusers.x
                    │   └── yp.x
                    ├── RPM Spec/
                    │   ├── apache.spec
                    │   ├── erlang-erlydtl.spec
                    │   └── manos.spec
                    ├── RUNOFF/
                    │   ├── VMS_ZIP.RNH
                    │   ├── contributing.rnh
                    │   ├── longlib.rno
                    │   └── mcp_help.rnh
                    ├── Racket/
                    │   ├── 99-bottles-of-beer.scrbl
                    │   └── scribble.scrbl
                    ├── Ragel/
                    │   ├── ephemeris_parser.rl
                    │   ├── simple_scanner.rl
                    │   └── simple_tokenizer.rl
                    ├── Rascal/
                    │   ├── Analyze.rsc
                    │   ├── Compile.rsc
                    │   ├── Rascal.rsc
                    │   └── Syntax.rsc
                    ├── Reason/
                    │   ├── JSX.re
                    │   ├── Layout.re
                    │   ├── Machine.re
                    │   ├── SuperMerlin.re
                    │   └── Syntax.re
                    ├── Rebol/
                    │   ├── GCP-datatypes.r
                    │   ├── booters.r
                    │   ├── hello-world.r2
                    │   ├── hello-world.r3
                    │   ├── hello-world.reb
                    │   └── hello-world.rebol
                    ├── Red/
                    │   ├── example.red
                    │   └── example.reds
                    ├── Regular Expression/
                    │   ├── modeline-emacs.regexp
                    │   ├── modeline-vim.regexp
                    │   ├── ordinal.regex
                    │   └── url.regex
                    ├── Ren'Py/
                    │   └── example.rpy
                    ├── RenderScript/
                    │   ├── convolve3x3.rs
                    │   └── scenegraph_objects.rsh
                    ├── Ring/
                    │   ├── hello.ring
                    │   ├── natural.ring
                    │   ├── weblib.ring
                    │   └── weighthistory.ring
                    ├── RobotFramework/
                    │   ├── data_driven.robot
                    │   ├── gherkin.robot
                    │   └── keyword_driven.robot
                    ├── Roff/
                    │   ├── Tcl.n
                    │   ├── an-ext.tmac
                    │   ├── create_view.l
                    │   ├── fsinterface.ms
                    │   ├── refs.rno
                    │   ├── sample.4
                    │   └── trekmanual.nr
                    ├── Ruby/
                    │   ├── any.spec
                    │   ├── filenames/
                    │   │   ├── .irbrc
                    │   │   ├── .pryrc
                    │   │   ├── Appraisals
                    │   │   ├── Brewfile
                    │   │   ├── Capfile
                    │   │   ├── Dangerfile
                    │   │   ├── Deliverfile
                    │   │   ├── Fastfile
                    │   │   ├── Podfile
                    │   │   ├── Rakefile
                    │   │   └── Snapfile
                    │   ├── foo.rb
                    │   ├── formula.rb
                    │   ├── gen-rb-linguist-thrift.rb
                    │   ├── grit.rb
                    │   ├── index.json.jbuilder
                    │   ├── inflector.rb
                    │   ├── jekyll.rb
                    │   ├── jenkinsci.pluginspec
                    │   ├── macruby
                    │   ├── mdata_server.fcgi
                    │   ├── rabl.rabl
                    │   ├── racc.rb
                    │   ├── resque.rb
                    │   ├── rexpl
                    │   ├── ruby
                    │   ├── ruby2
                    │   ├── script.rake
                    │   ├── shoes-swt
                    │   └── sinatra.rb
                    ├── Rust/
                    │   ├── hashmap.rs
                    │   ├── main.rs
                    │   └── task.rs
                    ├── SAS/
                    │   ├── data.sas
                    │   ├── detect_phi.sas
                    │   └── proc.sas
                    ├── SCSS/
                    │   └── screen.scss
                    ├── SMT/
                    │   ├── bignum_lia1.smt2
                    │   ├── list4.smt2
                    │   ├── queen10-1.smt2
                    │   └── shufflevector.smt
                    ├── SPARQL/
                    │   ├── foaf.sparql
                    │   └── string-matching.sparql
                    ├── SQF/
                    │   ├── fn_remoteExecFnc.sqf
                    │   └── macros.hqf
                    ├── SQL/
                    │   ├── AvailableInSearchSel.prc
                    │   ├── create_stuff.sql
                    │   ├── db.sql
                    │   ├── drop_stuff.sql
                    │   ├── dual.sql
                    │   ├── filial.tab
                    │   ├── hostcache_set_state.inc
                    │   ├── object-update.udf
                    │   ├── suspendedtoday.viw
                    │   ├── videodb.cql
                    │   ├── videodb.ddl
                    │   └── zipcodes.uk.mysql
                    ├── SQLPL/
                    │   ├── check_reorg.sql
                    │   ├── comm_amount.db2
                    │   ├── drop_table.db2
                    │   ├── runstats.sql
                    │   ├── sleep.sql
                    │   └── trigger.sql
                    ├── SRecode Template/
                    │   └── linguist.srt
                    ├── STON/
                    │   ├── Array.ston
                    │   ├── Dictionary.ston
                    │   ├── Rectangle.ston
                    │   ├── TestDomainObject.ston
                    │   ├── ZNResponse.ston
                    │   ├── methodProperties.ston
                    │   └── properties.ston
                    ├── Sage/
                    │   └── polinomios.sagews
                    ├── SaltStack/
                    │   ├── eval.sls
                    │   ├── gimp.sls
                    │   ├── gpg4win-light.sls
                    │   ├── openoffice.sls
                    │   ├── top.sls
                    │   └── truecrypt.sls
                    ├── Sass/
                    │   └── screen.sass
                    ├── Scala/
                    │   ├── 99-bottles-of-beer
                    │   ├── build.sbt
                    │   ├── car-ride.kojo
                    │   ├── fib-tree.kojo
                    │   ├── node11.sc
                    │   ├── scala
                    │   └── turtle-controller.kojo
                    ├── Scaml/
                    │   └── hello.scaml
                    ├── Scheme/
                    │   ├── asteroids.sps
                    │   ├── basic.sld
                    │   ├── lambdastar.sls
                    │   └── sboyer.sch
                    ├── Scilab/
                    │   ├── scilab_function.sci
                    │   ├── scilab_script.sce
                    │   └── scilab_test.tst
                    ├── ShaderLab/
                    │   ├── DepthOfField.shader
                    │   ├── Fog.shader
                    │   └── Uber.shader
                    ├── Shell/
                    │   ├── 99-bottles-of-beer
                    │   ├── bash
                    │   ├── build.command
                    │   ├── filenames/
                    │   │   ├── .bash_logout
                    │   │   ├── .bash_profile
                    │   │   ├── .bashrc
                    │   │   ├── .cshrc
                    │   │   ├── .login
                    │   │   ├── .profile
                    │   │   ├── .zlogin
                    │   │   ├── .zlogout
                    │   │   ├── .zprofile
                    │   │   ├── .zshenv
                    │   │   ├── .zshrc
                    │   │   ├── 9fs
                    │   │   ├── PKGBUILD
                    │   │   ├── bash_logout
                    │   │   ├── bash_profile
                    │   │   ├── bashrc
                    │   │   ├── cshrc
                    │   │   ├── gradlew
                    │   │   ├── login
                    │   │   ├── man
                    │   │   ├── profile
                    │   │   ├── zlogin
                    │   │   ├── zlogout
                    │   │   ├── zprofile
                    │   │   ├── zshenv
                    │   │   └── zshrc
                    │   ├── invalid-shebang.sh
                    │   ├── php.fcgi
                    │   ├── plugin
                    │   ├── rbenv-sh-shell.sh
                    │   ├── rvm.bash
                    │   ├── sbt
                    │   ├── script.bash
                    │   ├── script.sh
                    │   ├── script.zsh
                    │   ├── settime.cgi
                    │   ├── sh
                    │   ├── string-chopping
                    │   ├── valid-shebang.tool
                    │   └── zsh
                    ├── ShellSession/
                    │   ├── dollar.sh-session
                    │   ├── gem-install.sh-session
                    │   └── simple.sh-session
                    ├── Shen/
                    │   ├── graph.shen
                    │   ├── html.shen
                    │   └── json.shen
                    ├── Slash/
                    │   └── brainfuck.sl
                    ├── Slim/
                    │   └── sample.slim
                    ├── Smali/
                    │   ├── ActionBarDrawerToggle.smali
                    │   ├── DoodleMobileAnaylise.smali
                    │   ├── ModernAsyncTask.smali
                    │   ├── PenguinSprite.smali
                    │   ├── Subject.smali
                    │   ├── ViewDragHelper.smali
                    │   └── WbxmlSerializer.smali
                    ├── Smalltalk/
                    │   ├── Booleans.cs
                    │   ├── Collections.cs
                    │   ├── Dinner.st
                    │   ├── TestBasic.st
                    │   ├── baselineDependency.st
                    │   ├── categories.st
                    │   ├── renderSeasideExampleOn..st
                    │   ├── scriptWithPragma.st
                    │   ├── smallMethod.st
                    │   └── testSimpleChainMatches.st
                    ├── Solidity/
                    │   └── VotingContract.sol
                    ├── SourcePawn/
                    │   ├── Check.inc
                    │   ├── fixed.inc
                    │   ├── foo.sma
                    │   ├── foo.sp
                    │   ├── mfile.inc
                    │   └── y_testing.inc
                    ├── Squirrel/
                    │   └── Squirrel.nut
                    ├── Stan/
                    │   ├── congress.stan
                    │   ├── dogs.stan
                    │   └── schools.stan
                    ├── Standard ML/
                    │   ├── Foo.ML
                    │   ├── Foo.sig
                    │   ├── Foo.sml
                    │   ├── RedBlackTree.fun
                    │   └── main.fun
                    ├── Stata/
                    │   ├── common.doh
                    │   ├── hello.ado
                    │   ├── include.ihlp
                    │   ├── limits.matah
                    │   ├── odkmeta.sthlp
                    │   ├── regress_example.do
                    │   └── tanh.mata
                    ├── Stylus/
                    │   └── demo.styl
                    ├── SubRip Text/
                    │   └── Adding.NCL.Language.S01E01.1080p.BluRay.x264.srt
                    ├── Sublime Text Config/
                    │   ├── AMPL.sublime-build
                    │   ├── CLIPS.sublime-settings
                    │   ├── Context.sublime-menu
                    │   ├── Dart.sublime-commands
                    │   ├── Dart.sublime-project
                    │   ├── Default (Linux).sublime-mousemap
                    │   ├── Default.sublime-keymap
                    │   ├── JavaDoc Add Line.sublime-macro
                    │   ├── RunBuild.sublime-macro
                    │   ├── SourcePawn.sublime-build
                    │   ├── Tubnil.sublime-theme
                    │   └── jade.sublime-completions
                    ├── SugarSS/
                    │   └── sample.sss
                    ├── SuperCollider/
                    │   ├── WarpPreset.sc
                    │   ├── WarpTate.sc
                    │   ├── WarpTrack.sc
                    │   ├── WarpUtil.sc
                    │   └── example.scd
                    ├── Swift/
                    │   ├── section-11.swift
                    │   ├── section-13.swift
                    │   ├── section-15.swift
                    │   ├── section-17.swift
                    │   ├── section-19.swift
                    │   ├── section-21.swift
                    │   ├── section-23.swift
                    │   ├── section-25.swift
                    │   ├── section-27.swift
                    │   ├── section-29.swift
                    │   ├── section-3.swift
                    │   ├── section-31.swift
                    │   ├── section-33.swift
                    │   ├── section-35.swift
                    │   ├── section-37.swift
                    │   ├── section-39.swift
                    │   ├── section-41.swift
                    │   ├── section-43.swift
                    │   ├── section-45.swift
                    │   ├── section-47.swift
                    │   ├── section-49.swift
                    │   ├── section-5.swift
                    │   ├── section-51.swift
                    │   ├── section-53.swift
                    │   ├── section-55.swift
                    │   ├── section-57.swift
                    │   ├── section-59.swift
                    │   ├── section-61.swift
                    │   ├── section-63.swift
                    │   ├── section-65.swift
                    │   ├── section-67.swift
                    │   ├── section-69.swift
                    │   ├── section-7.swift
                    │   ├── section-71.swift
                    │   ├── section-73.swift
                    │   ├── section-75.swift
                    │   ├── section-77.swift
                    │   ├── section-79.swift
                    │   ├── section-81.swift
                    │   ├── section-83.swift
                    │   ├── section-85.swift
                    │   ├── section-87.swift
                    │   └── section-9.swift
                    ├── SystemVerilog/
                    │   ├── endpoint_phy_wrapper.svh
                    │   ├── fifo.sv
                    │   ├── priority_encoder.sv
                    │   └── util.vh
                    ├── TI Program/
                    │   ├── srcalpha.8xp.txt
                    │   ├── srcfunc.8xp.txt
                    │   ├── srcgui.8xp.txt
                    │   └── srcsort.8xp.txt
                    ├── TLA/
                    │   ├── AsyncInterface.tla
                    │   └── fifo.tla
                    ├── TXL/
                    │   └── Cal.txl
                    ├── Tcl/
                    │   ├── filenames/
                    │   │   ├── owh
                    │   │   └── starfield
                    │   ├── stream-0.1.tm
                    │   └── xdgbasedir-0.3.tm
                    ├── TeX/
                    │   ├── authortitle.cbx
                    │   ├── beispiel.toc
                    │   ├── english.lbx
                    │   ├── perl.toc
                    │   ├── problemset.cls
                    │   ├── reedthesis.cls
                    │   └── verbose.bbx
                    ├── Tea/
                    │   └── foo.tea
                    ├── Terra/
                    │   ├── arith.t
                    │   ├── arrayt.t
                    │   └── benchmark_nbody.t
                    ├── Text/
                    │   ├── 01_top.ncl
                    │   ├── ISO-2022-KR.txt
                    │   ├── LIDARLite.ncl
                    │   ├── Site.local.ncl
                    │   ├── aptitude-defaults.nb
                    │   ├── filenames/
                    │   │   ├── COPYING.regex
                    │   │   ├── LICENSE.mysql
                    │   │   ├── README.me
                    │   │   ├── README.mysql
                    │   │   ├── click.me
                    │   │   ├── delete.me
                    │   │   ├── keep.me
                    │   │   ├── read.me
                    │   │   ├── readme.1st
                    │   │   └── test.me
                    │   ├── foo.txt
                    │   ├── mac.txt
                    │   ├── main.ncl
                    │   ├── messages.fr
                    │   ├── min-help.ncl
                    │   ├── readme.txt
                    │   ├── receiver.ncl
                    │   ├── rmMonAnnCycLLT-help.ncl
                    │   ├── tutor.nb
                    │   ├── tutor.no
                    │   └── zonalAve-help.ncl
                    ├── Thrift/
                    │   └── linguist.thrift
                    ├── Turing/
                    │   ├── simplegame.t
                    │   └── turing.t
                    ├── Turtle/
                    │   ├── gnd-record.ttl
                    │   └── rdf-syntax-grammar.ttl
                    ├── Type Language/
                    │   ├── builtin.tl
                    │   └── scheme.tl
                    ├── TypeScript/
                    │   ├── cache.ts
                    │   ├── classes.ts
                    │   ├── hello.ts
                    │   ├── import.tsx
                    │   ├── react-native.tsx
                    │   ├── require.tsx
                    │   └── triple-slash-reference.tsx
                    ├── Unity3D Asset/
                    │   ├── GapTile.mat
                    │   ├── Hover.anim
                    │   ├── Tiles.meta
                    │   ├── TimeManager.asset
                    │   └── canvas_Fullscreen_Fader.prefab
                    ├── Unix Assembly/
                    │   ├── hello.ms
                    │   └── hello.s
                    ├── Uno/
                    │   ├── PlayerPads.uno
                    │   ├── Pong.uno
                    │   └── TowerBlock.uno
                    ├── UnrealScript/
                    │   ├── MutU2Weapons.uc
                    │   └── US3HelloWorld.uc
                    ├── UrWeb/
                    │   ├── iso8601.ur
                    │   └── parse.urs
                    ├── VCL/
                    │   ├── varnish2_default.vcl
                    │   └── varnish3_default.vcl
                    ├── VHDL/
                    │   └── foo.vhd
                    ├── Verilog/
                    │   ├── button_debounce.v
                    │   ├── control.v
                    │   ├── hex_display.v
                    │   ├── mux.v
                    │   ├── pipeline_registers.v
                    │   ├── ps2_mouse.v
                    │   ├── sha-256-functions.v
                    │   ├── sign_extender.v
                    │   ├── sqrt_pipelined.v
                    │   ├── t_button_debounce.v
                    │   ├── t_div_pipelined.v
                    │   ├── t_sqrt_pipelined.v
                    │   └── vga.v
                    ├── Vim script/
                    │   ├── filenames/
                    │   │   ├── .gvimrc
                    │   │   ├── .nvimrc
                    │   │   ├── .vimrc
                    │   │   └── _vimrc
                    │   └── solarized.vim
                    ├── Visual Basic/
                    │   ├── Index.vbhtml
                    │   ├── Module1.vb
                    │   ├── VBAllInOne.vb
                    │   ├── cApplication.cls
                    │   └── vpptype.bas
                    ├── Volt/
                    │   └── tesla.volt
                    ├── Wavefront Material/
                    │   ├── dice.mtl
                    │   ├── ripple.mtl
                    │   ├── shapes.mtl
                    │   └── spline.mtl
                    ├── Wavefront Object/
                    │   ├── dice.obj
                    │   ├── random.obj
                    │   ├── ripple.obj
                    │   ├── shapes.obj
                    │   └── spline.obj
                    ├── Web Ontology Language/
                    │   └── sample.owl
                    ├── WebAssembly/
                    │   ├── add.wat
                    │   ├── fibonacci.wat
                    │   ├── imported-min.wast
                    │   ├── local-cse.wast
                    │   ├── print.wat
                    │   └── remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast
                    ├── WebIDL/
                    │   ├── AnimationEvent.webidl
                    │   └── Fetch.webidl
                    ├── Wolfram Language/
                    │   └── mendeley-wolfram.m
                    ├── World of Warcraft Addon Data/
                    │   ├── addon.toc
                    │   ├── lingua.toc
                    │   └── linguist.toc
                    ├── X10/
                    │   ├── ArraySum.x10
                    │   ├── Cancellation.x10
                    │   ├── Fibonacci.x10
                    │   ├── HeatTransfer_v0.x10
                    │   ├── HeatTransfer_v1.x10
                    │   ├── HelloWholeWorld.x10
                    │   ├── HelloWorld.x10
                    │   ├── Histogram.x10
                    │   ├── Integrate.x10
                    │   ├── KMeans.x10
                    │   ├── KMeansDist.x10
                    │   ├── KMeansDistPlh.x10
                    │   ├── KMeansSPMD.x10
                    │   ├── MontyPi.x10
                    │   ├── NQueensDist.x10
                    │   ├── NQueensPar.x10
                    │   ├── QSort.x10
                    │   └── StructSpheres.x10
                    ├── XC/
                    │   └── main.xc
                    ├── XCompose/
                    │   └── filenames/
                    │       └── XCompose
                    ├── XML/
                    │   ├── Application.xib
                    │   ├── CSharpVSPackage.vstemplate
                    │   ├── Default.props
                    │   ├── Demo.sfproj
                    │   ├── Example.mdpolicy
                    │   ├── FXMLSample.fxml
                    │   ├── HITSP_C32.sch
                    │   ├── JSBrowser.jsproj
                    │   ├── MDM.adml
                    │   ├── MDM.admx
                    │   ├── MainView.ux
                    │   ├── MyApp.ux
                    │   ├── NDepends_Example.ndproj
                    │   ├── Storyboard.storyboard
                    │   ├── Strings.resx
                    │   ├── System.Buffers.pkgproj
                    │   ├── XmlIO.pluginspec
                    │   ├── chrome.natvis
                    │   ├── cloudconfig.cscfg
                    │   ├── clouddef.csdef
                    │   ├── configdef.cscfg
                    │   ├── csproj-sample.csproj
                    │   ├── dependency-example.depproj
                    │   ├── example-sharedproj.shproj
                    │   ├── example.ccproj
                    │   ├── filenames/
                    │   │   └── .cproject
                    │   ├── fsproj-sample.fsproj
                    │   ├── intellij.iml
                    │   ├── libsomething.dll.config
                    │   ├── module.ant
                    │   ├── module.ivy
                    │   ├── msbuild-example.proj
                    │   ├── namespace-strict.sch
                    │   ├── net_docfile.xml
                    │   ├── nproj-sample.nproj
                    │   ├── oasis-table.sch
                    │   ├── phpunit.xml.dist
                    │   ├── point-3.1.gml
                    │   ├── point-3.2.gml
                    │   ├── pt_BR.ts
                    │   ├── pt_BR.xml
                    │   ├── racoon.mjml
                    │   ├── real-estate.mjml
                    │   ├── sample.csl
                    │   ├── sample.nuspec
                    │   ├── sample.targets
                    │   ├── some-ideas.mm
                    │   ├── source.extension.vsixmanifest
                    │   ├── src.builds
                    │   ├── tei-odd-sample.odd
                    │   ├── translation_en3.ts
                    │   ├── vbproj-sample.vbproj
                    │   ├── vcxproj-sample.vcxproj
                    │   ├── vcxproj-sample.vcxproj.filters
                    │   ├── water.tsx
                    │   ├── wixdemo.wixproj
                    │   ├── xhtml-struct-1.mod
                    │   └── xquery-tutorial.xspec
                    ├── XPM/
                    │   ├── cc-public_domain_mark_white.pm
                    │   └── stick-unfocus.xpm
                    ├── XPages/
                    │   ├── navbar.xsp-config
                    │   └── navbar.xsp.metadata
                    ├── XProc/
                    │   └── xproc.xpl
                    ├── XQuery/
                    │   └── xproc.xqm
                    ├── XS/
                    │   └── CommonMark.xs
                    ├── XSLT/
                    │   └── test.xslt
                    ├── Xojo/
                    │   ├── App.xojo_code
                    │   ├── BillingReport.xojo_report
                    │   ├── MainMenuBar.xojo_menu
                    │   ├── MyToolbar.xojo_toolbar
                    │   ├── Window1.xojo_window
                    │   └── database.xojo_script
                    ├── Xtend/
                    │   ├── BasicExpressions.xtend
                    │   └── Movies.xtend
                    ├── YAML/
                    │   ├── Ansible.YAML-tmLanguage
                    │   ├── HexInspect.sublime-syntax
                    │   ├── database.yml.mysql
                    │   ├── filenames/
                    │   │   ├── .clang-format
                    │   │   ├── .clang-tidy
                    │   │   └── .gemrc
                    │   ├── source.r-console.syntax
                    │   └── vcr_cassette.yml
                    ├── YANG/
                    │   └── sfc-lisp-impl.yang
                    ├── YARA/
                    │   ├── OfExample.yar
                    │   ├── example.yara
                    │   └── true.yar
                    ├── Zephir/
                    │   ├── Cblock.zep
                    │   └── Router.zep
                    ├── Zimpl/
                    │   └── sample.zmpl
                    ├── desktop/
                    │   └── example.desktop
                    ├── eC/
                    │   └── Designer.ec
                    ├── edn/
                    │   └── bigger-than-pluto.edn
                    ├── fish/
                    │   ├── config.fish
                    │   ├── eval.fish
                    │   └── funced.fish
                    ├── reStructuredText/
                    │   └── HACKING.rst.txt
                    ├── sed/
                    │   └── hanoi.sed
                    ├── wdl/
                    │   ├── hello.wdl
                    │   ├── ifs_in_scatters.wdl
                    │   └── passingfiles.wdl
                    ├── wisp/
                    │   └── intro.wisp
                    └── xBase/
                        ├── sample.ch
                        ├── sample.prg
                        └── sample.prw

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
src/test/resources/samples/* linguist-vendored


================================================
FILE: .gitignore
================================================
.DS_Store
.gradle/
.idea/
.sourcerer
build/
sourcerer-app.iml
sourcerer-app.ipr
sourcerer-app.iws
app.iml
app.ipr
app.iws
/confluence/target
/dependencies
/dist
/gh-pages
/ideaSDK
/out
/tmp
*.versionsBackup
/ultimate/dependencies
/ultimate/ideaSDK
/ultimate/out
/ultimate/tmp
tmp_repo


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Code of Conduct

As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.

We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.

Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.

This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at https://www.contributor-covenant.org/version/1/0/0/code-of-conduct.html


================================================
FILE: CONTRIBUTING.md
================================================
# Contribution

We welcome contributions to [Sourcerer App](https://github.com/sourcerer-io/sourcerer-app) by the community.

See [README](https://github.com/sourcerer-io/sourcerer-app) for more information about prerequirements and building project.

## How to report a problem

Please search before creating a new issue. Feel free to add issues related to the app or [sourcerer](https://sourcerer.io) site.

## Submitting сhanges

* Open a new issue in the [issue tracker](https://github.com/sourcerer-io/sourcerer-app/issues).
* Fork and clone the repo with `git clone https://github.com/your-username/sourcerer-app.git`.
* Create a new branch based off the `develop` branch.
* Make changes.
* Make sure all tests pass.
* Submit a pull request, referencing any issues it addresses.

We will review your Pull Request as soon as possible. Thank you for contributing!

## Integration testing

We will work on a special environment for contributors in the nearest future. For now one should use his personal or additional account on site.

## Style guides
### Commit messages

Format:
```type(component): message (jira issue tag, github issue number with #)```

Message types:
* **feat** is used when new feature is provided;
* **wip** is used when making regular commit and changes don't match any other types;
* **fix** is used when you fix a bug;
* **chore** is used when changes are about organization, not about logic;
* **docs** is used when you add/change documentation.
Component is a decomposition unit your commit affected. Write message in present simple.

Examples:
feat(logger): add rotating
chore: remove redundant commas, add copyright
wip: pass models to routers
fix: program exit is prevented when button is pressed (COMP-1, #123)

### Kotlin style guide
* Code has a column limit of 80 characters.
* Inline comments should be indented with 2 spaces from code.

We are using [Kotlin Coding Conventions](https://kotlinlang.org/docs/reference/coding-conventions.html).

## Code of conduct
We value input from each member of the community, however we urge you to abide by [code of conduct](https://github.com/sourcerer-io/sourcerer-app/blob/master/CODE_OF_CONDUCT.md).


================================================
FILE: Dockerfile
================================================
FROM nginx:1.13

COPY deploy/default.conf /etc/nginx/conf.d

RUN mkdir /files
COPY build/libs/sourcerer-app.jar /files/download
COPY src/install/install /files/install


================================================
FILE: LICENSE.md
================================================
Copyright 2017 Sourcerer, Inc. https://sourcerer.io

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: README.md
================================================
<h1 style="font-weight:normal">
  <a href="https://sourcerer.io">
    <img src=https://user-images.githubusercontent.com/20287615/34189346-d426d4c2-e4ef-11e7-9da4-cc76a1ed111d.png alt="Sourcerer" width=35>
  </a>
  &nbsp;sourcerer.io&nbsp;
  <a href="https://sourcerer.io/start"><img src=https://img.shields.io/badge/sourcerer-start%20now-brightgreen.svg?colorA=087c08></a>
  <a href="https://github.com/sourcerer-io/sourcerer-app/releases"><img src=https://img.shields.io/github/release/sourcerer-io/sourcerer-app.svg?colorB=58839b></a>
  <a href="https://github.com/sourcerer-io/sourcerer-app/blob/master/LICENSE.md"><img src=https://img.shields.io/github/license/sourcerer-io/sourcerer-app.svg?colorB=ff0000></a>
</h1>

A visual profile for software engineers.
<br>

<p align="center">
  <img alt="sergey" src="https://user-images.githubusercontent.com/20287615/47371068-c70f5a00-d6ef-11e8-8988-dcdca71bf83c.gif">
</p>

Features
========
* Profile creation with a single click
* Support of 100 languages (even exotic ones like COBOL)
* Detection of more than [1,000 libraries](https://github.com/sourcerer-io/awesome-libraries) in code with per-line statistics
* Visual presentation your development experience
* *Finally!* Summary of all repositories you've contributed to :tada:
* Interesting facts about yourself

Creating your profile is just the first step for us at Sourcerer. Some of the things on our roadmap include:
* Engineers to follow and learn from
* Technology and libraries you should know about
* Projects that could use your help

Get started
===========
The easiest way to get started is with your open source repos. Go to [sourcerer.io/start](https://sourcerer.io/start), and select *Build with GitHub* and watch your profile build. 

For closed source repos, you will need to use this app. If you already created an account using GitHub, you would have received an email with credentials for the app. If not, You will need a new account, which you can get at [sourcerer.io/join](https://sourcerer.io/join).

Showcase
========
<center>
  <table>
    <tr>
      <td><a href="https://sourcerer.io/chdemko"><img width="120" alt="chdemko" src="https://user-images.githubusercontent.com/20287615/42243607-c7f6c40c-7ec6-11e8-9f8e-d4450d1d92d1.png"></a></td>
      <td><a href="https://sourcerer.io/chendaniely"><img width="120" alt="chendaniely" src="https://user-images.githubusercontent.com/20287615/42243623-d1bd479a-7ec6-11e8-983c-00945c926dc6.png"></a></td>
      <td><a href="https://sourcerer.io/lauragift21"><img width="120" alt="lauragift21" src="https://user-images.githubusercontent.com/20287615/42243624-d1d24cd0-7ec6-11e8-84c0-3a1aad54a774.png"></a></td>
      <td><a href="https://sourcerer.io/maracuja-juice"><img width="120" alt="maracuja-juice" src="https://user-images.githubusercontent.com/20287615/42243626-d1eb19c2-7ec6-11e8-8e94-fa02d8f11894.png"></a></td>
    </tr>
    <tr>
      <td><a href="https://sourcerer.io/marisbotero"><img width="120" alt="marisbotero" src="https://user-images.githubusercontent.com/20287615/42243627-d203bb58-7ec6-11e8-945e-49b878f07436.png"></a></td>
      <td><a href="https://sourcerer.io/nordes"><img width="120" alt="nordes" src="https://user-images.githubusercontent.com/20287615/42243628-d21df464-7ec6-11e8-9147-31b99ea3465d.png"></a></td>
      <td><a href="https://sourcerer.io/ppapadeas"><img width="120" alt="ppapadeas" src="https://user-images.githubusercontent.com/20287615/42243629-d23b27e6-7ec6-11e8-92c1-0c3edc2f3dba.png"></a></td>
      <td><a href="https://sourcerer.io/praharshjain"><img width="120" alt="praharshjain" src="https://user-images.githubusercontent.com/20287615/42243630-d2562abe-7ec6-11e8-8ad3-fd6ca3ddd413.png"></a></td>
    </tr>
  </table>
</center>

Requirements
============
* Web browser

or

* Linux or macOS or Windows
* Java 8+ Platform ([JRE](http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html) for Linux and Windows or [JDK](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) for macOS)
* Bash for Windows (`git bash` should suffice)

Usage
=====
To install sourcerer run the following command in bash:

```
curl -s https://sourcerer.io/app/install | bash
```

To run wizard use `sourcerer` command for macOS and Linux, `java -jar sourcerer.jar` in folder `Users\user\.sourcerer` for Windows.

Use parameter `--help` for additional info.


Internals
=========
The app looks at repos locally on your machine, and then sends stats to sourcerer.io. The best way to verify is to look at the code. Protobuf messages declared in [src/main/proto/sourcerer.proto](https://github.com/sourcerer-io/sourcerer-app/blob/develop/src/main/proto/sourcerer.proto) is a good start as it describes the client-server protocol.
The Sourcerer app does **NOT** upload source code anywhere, and it **NEVER** will.

FAQ
===
### How can I process private repos?
We process only public repos using GitHub OAuth. To process private repos you need to run sourcerer app locally. See [Get started](#get-started) for instructions. Sourcerer app sends only statistical information to our servers and never sends code.

### Why do you need GitHub permissions?
We use emails to identify commit authorship, read orgs access to get list of public repositories that you've contributed to. You also need to grant access to read this public information from an organization.

### Other questions
See [sourcerer.io/faq](https://sourcerer.io/faq).

Contributing
============
We love contributions! Check out the [Contribution guide](https://github.com/sourcerer-io/sourcerer-app/blob/master/CONTRIBUTING.md) for more information. Simplest and really helpful for the community would be contribution meta information to our [supported libraries list](https://github.com/sourcerer-io/awesome-libraries). If you an author of a library you show definitely add yours to the list or you can help to someone whose work you use.

[![0](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/0)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/0)
[![1](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/1)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/1)
[![2](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/2)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/2)
[![3](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/3)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/3)
[![4](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/4)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/4)
[![5](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/5)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/5)
[![6](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/6)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/6)
[![7](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/images/7)](https://sourcerer.io/fame/sergey48k/sourcerer-io/sourcerer-app/links/7)

Build
=====
To build and run this application locally, you'll need latest versions of Git, Gradle and JDK installed on your computer. From your command line:

```
# Clone this repository
$ git clone https://github.com/sourcerer-io/sourcerer-app.git

# Go into the repository
$ cd sourcerer-app

# Build
$ gradle build

# Run the app
$ java -jar build/libs/sourcerer-app.jar
```

License
=======
Sourcerer is under the MIT license. See the [LICENSE](https://github.com/sourcerer-io/sourcerer-app/blob/develop/LICENSE.md) for more information.

Links
=====
* [Sourcerer Site](https://sourcerer.io/)
* [Sourcerer Blog](https://blog.sourcerer.io)
* [Follow Sourcerer on Twitter](https://twitter.com/sourcerer_io)
* [Follow Sourcerer on Facebook](https://www.facebook.com/sourcerer.io/)


================================================
FILE: build.gradle
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.

buildscript {
    ext.kotlin_version = '1.2.31'
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.10"
        classpath "org.junit.platform:junit-platform-gradle-plugin:1.0.1"
    }
}

plugins {
    id 'de.fuerstenau.buildconfig' version '1.1.8'
}

apply plugin: "idea"
apply plugin: "java"
apply plugin: "kotlin"
apply plugin: "application"
apply plugin: "com.google.protobuf"
apply plugin: "org.junit.platform.gradle.plugin"

buildConfig {
    clsName = 'BuildConfig'
    packageName = 'app'

    // API.
    def apiBasePath = project.hasProperty('api') ? api : 'https://sourcerer.io/api/commit'
    buildConfigField 'String', 'API_BASE_PATH', apiBasePath

    // Common.
    buildConfigField 'String', 'PROFILE_URL', 'https://sourcerer.io/'

    // App version.
    buildConfigField 'int', 'VERSION_CODE', '30'
    buildConfigField 'String', 'VERSION', '0.3.18'

    // Logging.
    buildConfigField 'String', 'ENV', project.hasProperty('env') ? env : 'production'
    buildConfigField 'String', 'LOG_LEVEL', project.hasProperty('log') ? log : 'info'
    buildConfigField 'boolean', 'SILENT_USER_OUTPUT', project.hasProperty('silent') ? silent : 'false'
    buildConfigField 'boolean', 'SENTRY_ENABLED', project.hasProperty('sentry') ? sentry : 'false'
    buildConfigField 'String', 'SENTRY_DSN', 'https://0263d6473bd24a9ba40e25aa5fb0a242:c5451dc815074bff8ce3fb9f0851f2f5@sentry.io/233260'
    buildConfigField 'boolean', 'PRINT_STACK_TRACE', 'false'

    // Google Analytics.
    buildConfigField 'String', 'GA_BASE_PATH', 'https://www.google-analytics.com'
    buildConfigField 'String', 'GA_TRACKING_ID', 'UA-107129190-2'
    buildConfigField 'boolean', 'IS_GA_ENABLED', 'true'

    // Models storage path.
    buildConfigField 'String', 'LIBRARY_MODELS_URL', 'https://storage.googleapis.com/sourcerer-app/library-models/v2/'

    // Hashing.
    buildConfigField 'boolean', 'COMMIT_HASHER_ENABLED', project.hasProperty('commit-hasher-enabled') ? project.property('commit-hasher-enabled').toString() : 'true'
    buildConfigField 'boolean', 'FACT_HASHER_ENABLED', project.hasProperty('fact-hasher-enabled') ? project.property('fact-hasher-enabled').toString() : 'true'
    buildConfigField 'boolean', 'LONGEVITY_ENABLED', project.hasProperty('longevity-enabled') ? project.property('longevity-enabled').toString() : 'false'
    buildConfigField 'long', 'HEARTBEAT_RATE', project.hasProperty('heartbeat-rate') ? project.property('heartbeat-rate').toString() : '60000'
    buildConfigField 'boolean', 'META_HASHER_ENABLED', project.hasProperty('meta-hasher-enabled') ? project.property('meta-hasher-enabled').toString() : 'true'
    buildConfigField 'boolean', 'DISTANCES_ENABLED', project.hasProperty('distances-enabled') ? project.property('distances-enabled').toString() : 'true'

    buildConfig
}

junitPlatform {
    filters {
        engines {
            include 'spek'
        }
    }
}

task cleanData {
    delete 'build/libs/data'
    delete 'build/kotlin/data'
}

test.dependsOn cleanData

mainClassName = "app.MainKt"

repositories {
    mavenCentral()
    jcenter()
    maven { url "https://dl.bintray.com/jetbrains/spek" }
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
    compile "com.beust:jcommander:1.72"
    compile 'com.google.protobuf:protobuf-java:3.5.1'
    compile 'commons-codec:commons-codec:1.5'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.9.5'
    compile 'com.fasterxml.jackson.module:jackson-module-kotlin:2.9.5'
    compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.5'
    compile 'io.reactivex.rxjava2:rxjava:2.1.12'
    compile 'com.github.kittinunf.fuel:fuel:1.12.1'
    compile 'com.github.kittinunf.fuel:fuel-rxjava:1.12.1'
    compile 'org.eclipse.jgit:org.eclipse.jgit:4.9.0.201710071750-r'
    compile 'org.slf4j:slf4j-nop:1.7.2'
    compile 'io.sentry:sentry:1.7.3'
    compile 'org.json:json:20180813'

    testCompile 'commons-io:commons-io:2.6'
    testCompile 'org.jetbrains.kotlin:kotlin-test'
    testCompile 'org.jetbrains.spek:spek-api:1.1.5'
    testCompile 'org.junit.platform:junit-platform-runner:1.0.1'
    testRuntime 'org.jetbrains.spek:spek-junit-platform-engine:1.1.5'
}

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.5.1"
    }
}

sourceSets.main.java.srcDirs += 'build/generated/source/proto/main/java'
sourceSets.test.java.srcDirs += 'src/test/kotlin'
compileKotlin.dependsOn ':generateProto'

// Include dependent libraries in archive.
jar {
    manifest {
        attributes "Main-Class": "$mainClassName"
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    } {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }

    baseName 'sourcerer-app'
}


================================================
FILE: deploy/GradleDockerfile
================================================
FROM gradle:4.2.0

USER root
WORKDIR /root/app


================================================
FILE: deploy/Jenkinsfile
================================================
// Copyright 2017 Sourcerer, Inc. All Rights Reserved.
// Author: Maxim Rusak (maxim@sourcerer.io)

def label = "sourcerer-app-${UUID.randomUUID().toString()}"

def namespace = 'sandbox'
if (env.BRANCH_NAME == 'master') {
  namespace = 'production'
} else if (env.BRANCH_NAME == 'develop') {
  namespace = 'staging'
}

podTemplate(label: label,
    containers: [
        containerTemplate(name: 'jnlp', image: 'gcr.io/sourcerer-1377/jenkins-slave:v4', args: '${computer.jnlpmac} ${computer.name}'),
        containerTemplate(name: 'gradle', image: 'gcr.io/sourcerer-1377/gradle:4.2.0', ttyEnabled: true, command: 'tail -f /dev/null')
    ],
    envVars: [
      envVar(key: 'NAMESPACE', value: namespace),
      envVar(key: 'CONTAINER_TAG', value: "${namespace}.${env.BUILD_NUMBER}.${System.currentTimeMillis()}")
    ],
    volumes: [
        hostPathVolume(hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock'),
        hostPathVolume(hostPath: '/usr/bin/docker', mountPath: '/usr/bin/docker')
    ]
) {
  node(label) {
    stage('checkout') {
      checkout scm
    }

    stage('build jar and test') {
      container('gradle') {
        sh("./do.sh build_jar_inside")
      }
    }

    stage('build nginx') {
      container('gradle') {
        sh("./do.sh build_prod_inside")
      }
    }

    stage('push') {
      sh("./do.sh push")
    }
    
    stage('deploy') {
      println "Deploying to ${namespace} kubernetes namespace"
      sh("./do.sh deploy")
    }
  }
}



================================================
FILE: deploy/default.conf
================================================
geo $dollar {
    default "$";
}

server {
  listen       80 default_server;
  server_name  _;

  location /install {
    alias /files/install;

    sub_filter "${dollar}SERVER_EXT" 'https://$host';
    sub_filter_types *;
  }

  location / {
    root /files/;
  }
}


================================================
FILE: deploy/production_env.sh
================================================
export REPLICAS="2"


================================================
FILE: deploy/sandbox_env.sh
================================================
export REPLICAS="1"


================================================
FILE: deploy/sourcerer-app.yaml
================================================
apiVersion: v1
kind: Service
metadata:
  name: sourcerer-app
  labels:
    app: sourcerer-app
spec:
  type: ClusterIP
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: sourcerer-app
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: sourcerer-app
spec:
  replicas: $REPLICAS
  template:
    metadata:
      labels:
        app: sourcerer-app
    spec:
      containers:
      - name: sourcerer-app
        image: gcr.io/sourcerer-1377/sourcerer-app:$CONTAINER_TAG
        imagePullPolicy: Always
        resources:
          requests:
            cpu: 100m
            memory: 100Mi


================================================
FILE: deploy/staging_env.sh
================================================
export REPLICAS="0"


================================================
FILE: do.sh
================================================
#!/bin/bash

# Copyright 2017 Sourcerer, Inc. All Rights Reserved.
# Author: Maxim Rusak (maxim@sourcerer.io)

set -x

fn_exists() {
  type $1 2>/dev/null | grep -q 'is a function'
}

COMMAND=$1
shift
ARGUMENTS=${@}

CONTAINER_TAG="${CONTAINER_TAG:-latest}"
NAMESPACE="${NAMESPACE:-sandbox}"
LOG="${LOG:-debug}"
VOLUME="${BUILD_VOLUME:-$PWD}"
PROJECT=sourcerer-app
PORT=3182
REPO_NAME=gcr.io/sourcerer-1377/$PROJECT:$CONTAINER_TAG
GRADLE_VERSION=4.2.0

#--------------------#
#----- Commands -----#
#--------------------#

# run only inside build container
build_jar_inside() {
  if [ "${NAMESPACE}" == "sandbox" ]; then
    API="https://sandbox.sourcerer/api/commit"
    LOG="debug"
  elif [ "${NAMESPACE}" == "staging" ]; then
    API="https://staging.sourcerer/api/commit"
    LOG="info"
  elif [ "${NAMESPACE}" == "local" ]; then
    API="http://localhost:3181"
    LOG="debug"
  else
    API="https://sourcerer.io/api/commit"
    LOG="info"
  fi
  gradle -Penv=${NAMESPACE} -Plog=${LOG} -Papi=${API} build
}

build_jar() {
  docker run -i -v ${VOLUME}:/home/gradle/app --workdir=/home/gradle/app \
    -e LOG=${LOG} -e NAMESPACE=${NAMESPACE} \
    gradle:${GRADLE_VERSION} \
    ./do.sh build_jar_inside
}

build_prod_inside() {
  docker build -t ${REPO_NAME} .
}

deploy() {
  source ./deploy/${NAMESPACE}_env.sh
  envsubst < ./deploy/sourcerer-app.yaml > /tmp/deploy.yaml
  kubectl --namespace=${NAMESPACE} apply -f /tmp/deploy.yaml
}

######################

run_jar() {
  docker run -i -v ${VOLUME}:/app --workdir=/app gradle:${GRADLE_VERSION} \
    java -jar build/libs/app.jar
}

run_prod() {
  docker run -i -p ${PORT}:80 ${REPO_NAME}
}

push() {
  gcloud docker -- push ${REPO_NAME}
}

#---------------------#
#----- Execution -----#
#---------------------#

fn_exists ${COMMAND}
if [ $? -eq 0 ]; then
  ${COMMAND} ${ARGUMENTS}
else
  echo "Command not found"
fi


================================================
FILE: src/install/install
================================================
#!/usr/bin/env bash
# Copyright 2017 Sourcerer, Inc. All Rights Reserved.
# License: MIT, https://github.com/sourcerer-io/sourcerer-app/blob/master/LICENSE.md
# Source code: https://github.com/sourcerer-io

echo "Installing sourcerer app.."
SERVER=$SERVER_EXT
DOWNLOAD_URL=$SERVER/app/download
SCRIPT_DIR=$HOME/.sourcerer
JAR_DIR=$SCRIPT_DIR

if [ -f $SCRIPT_DIR/sourcerer ] ; then
  read -p "Previous version of sourcerer is detected. Reinstall it? [Y/n] " yesno < /dev/tty
  if [ "$yesno" ] && [ "$yesno" = "n" ] ; then
    echo "Exiting"
    exit
  fi
fi

mkdir -p $SCRIPT_DIR
mkdir -p $JAR_DIR
curl -s $DOWNLOAD_URL > $JAR_DIR/sourcerer.jar

cat <<EOF > $SCRIPT_DIR/sourcerer
#!/usr/bin/env bash
# Copyright 2017 Sourcerer, Inc. All Rights Reserved.
# License: MIT, https://github.com/sourcerer-io/sourcerer-app/blob/master/LICENSE.md
# Source code: https://github.com/sourcerer-io

if [ "\$1" = "--uninstall" ] ; then
  read -p "The script will uninstall sourcerer app. Proceed? [Y/n] " yesno < /dev/tty
  if [ "$yesno" ] && [ "$yesno" = "n" ] ; then
    echo "Exiting"
    exit
  fi

  rm -f /usr/local/bin/sourcerer
  rm $SCRIPT_DIR/sourcerer
  rm -r $JAR_DIR

  echo "Done!"
  exit
fi

VERSION=0
if which java > /dev/null ; then
  VERSION_STR=\$(java -version 2>&1 | awk -F '"' '/version/ {print \$2}')
  MAJOR_VERSION=\$(echo \$VERSION_STR | cut -d. -f1)
  MINOR_VERSION=\$(echo \$VERSION_STR | cut -d. -f2)

  if [[ "\$MAJOR_VERSION" = "10" || "\$MAJOR_VERSION" > "10" ]]; then  # Format: 10
    VERSION=10
  elif [[ "\$MAJOR_VERSION" = "9" ]]; then  # Format: 9.0.1
    VERSION=9
  elif [[ "\$MAJOR_VERSION" = "1" && "\$MINOR_VERSION" = "8" ]]; then  # Format: 1.8.1
    VERSION=8
  else
    echo "Installed $VERSION_STR version of Java is not supported."
  fi
fi

if [ \$VERSION = 0 ] ; then
  if [ `uname` = "Darwin" ] ; then
    echo "Sourcerer requires JDK 8+ installed on the system. You can download it from:"
    echo "http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html"
  else
    echo "Sourcerer requires JRE 8+ installed on the system. You can download it from:"
    echo "http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html"
  fi
  exit 1
fi

# Java 9 and 10 requires additional parameters.
if [[ \$VERSION = 9 ]] ; then
  java --add-modules java.activation --add-opens java.base/java.nio=ALL-UNNAMED -jar $JAR_DIR/sourcerer.jar "\$@"
elif [[ \$VERSION = 10 ]] ; then
  java --add-opens java.base/java.nio=ALL-UNNAMED -jar $JAR_DIR/sourcerer.jar "\$@"
else
  java -jar $JAR_DIR/sourcerer.jar "\$@"
fi
EOF

chmod +x $SCRIPT_DIR/sourcerer

{
  rm -f /usr/local/bin/sourcerer 2> /dev/null &&
  ln -s $SCRIPT_DIR/sourcerer /usr/local/bin/sourcerer 2> /dev/null &&
  echo 'Done!' &&
  echo 'Run sourcerer to start hashing your repos!'
} || {
  echo 'We installed app to ~/.sourcerer/sourcerer.'
  echo 'You can add it to $PATH or run specified command to finish installation:'
  echo "sudo ln -s $SCRIPT_DIR/sourcerer /usr/local/bin/sourcerer"
  echo 'Then run sourcerer to start hashing your repos!'
}


================================================
FILE: src/main/kotlin/app/Analytics.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app

import com.github.kittinunf.fuel.core.FuelError
import com.github.kittinunf.fuel.core.FuelManager
import com.github.kittinunf.fuel.core.Method
import com.github.kittinunf.fuel.core.Request
import com.google.protobuf.InvalidProtocolBufferException
import java.security.InvalidParameterException

typealias Param = Pair<String, String>

/**
 * Google Analytics events tracking.
 */
object Analytics {
    private val IS_ENABLED = BuildConfig.IS_GA_ENABLED
    private val BASE_PATH = BuildConfig.GA_BASE_PATH
    private val BASE_URL = "/virtual/app/"
    private val PROTOCOL_VERSION = "1"
    private val TRACKING_ID = BuildConfig.GA_TRACKING_ID
    private val DATA_SOURCE = "app"

    private val HIT_PAGEVIEW = "pageview"
    private val HIT_EXCEPTION = "exception"

    private val fuelManager = FuelManager()

    var uuid: String = ""  // Should be set on start of the app.
    var username: String = ""  // Should be set on successful authorization.

    init {
        fuelManager.basePath = BASE_PATH
    }

    private fun post(params: List<Param>): Request {
        return fuelManager.request(Method.POST, "/collect", params)
    }

    /**
     * Google Analytics Measurement Protocol is used to track events.
     * User iteration data is sent to GA endpoint via POST request.
     * Events (or hits) mapped to virtual urls with "Data Source" parameter.
     * Used parameters:
     * - v: Protocol Version (Required)
     * - tid: Tracking ID - used to specify GA account (Required)
     * - cid: Client ID - anonymous client id (UUID type 4)
     * - uid: User ID - username
     * - t: Hit Type - type of event
     * - dp: Document Path - virtual url
     */
    fun trackEvent(event: String, params: List<Param> = listOf()) {
        if (!IS_ENABLED || (username.isEmpty() && uuid.isEmpty())) {
            return
        }

        val idParams = mutableListOf<Param>()
        if (uuid.isNotEmpty()) {
            idParams.add("cid" to uuid)
        }
        if (username.isNotEmpty()) {
            idParams.add("uid" to username)
        }

        val defaultParams = listOf("v" to PROTOCOL_VERSION,
                                   "tid" to TRACKING_ID,
                                   "ds" to DATA_SOURCE,
                                   "t" to HIT_PAGEVIEW,
                                   "dp" to BASE_URL + event)

        try {
            // Send event to GA with united params.
            val (_, _, result) = post(params +
                defaultParams.filter { !params.contains(it) } +
                idParams).responseString()
            val (_, e) = result
            if (e != null) { throw e }
        } catch (e: Throwable) {
            Logger.error(e, "Error while sending GA report", logOnly = true)
        }
    }

    fun trackError(e: Throwable? = null) {
        val url = if (e != null) getErrorUrl(e) else ""
        val separator = if (url.isNotEmpty()) "/" else ""
        trackEvent("error" + separator + url, listOf("t" to HIT_EXCEPTION))
    }

    private fun getErrorUrl(e: Throwable): String {
        // Mapping for request exceptions.
        when (e) {
            is FuelError -> return "request"
            is InvalidParameterException -> return "request/parsing"
            is InvalidProtocolBufferException -> return "request/parsing"
        }

        // Get concrete class of exception name removing all common parts.
        val name = e.javaClass.simpleName.replace("Exception", "")
                                         .replace("Error", "")
                                         .replace("Throwable", "")

        if (name.length == 0 || name.length == 1) {
            return name
        }

        // Divide CamelCased words in class name by dashes.
        val nameCapitalized = name.toUpperCase()
        var url = name[0].toString()
        for (i in 1..name.length - 1) {
            if (name[i] == nameCapitalized[i]) {
                url += "-"
            }
            url += name[i]
        }

        return url.toLowerCase()
    }
}


================================================
FILE: src/main/kotlin/app/FactCodes.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app

object FactCodes {
    val COMMIT_DAY_WEEK = 1  // Day of week fun fact and graph.
    val COMMIT_DAY_TIME = 2  // Day time fun fact.

    val COMMIT_LINE_NUM_AVG = 8  // Average number of lines per commit fun fact.
    val COMMIT_NUM = 9  // Used for averaging COMMIT_LINE_NUM_AVG between repos.
    // A map of line numbers to commits number. Used in a commit histogram.
    val COMMIT_NUM_TO_LINE_NUM = 12
    val COMMIT_SHARE = 16  // Used for commit share chart.
    val COMMIT_SHARE_REPO_AVG = 17  // Used for commit share chart.
    val LINE_LONGEVITY = 3  // Used for longevity graph.
    val LINE_LONGEVITY_REPO = 4  // Used for longevity graph.
    val LINE_LEN_AVG = 10  // Average length of line fun fact.
    val LINE_NUM = 11  // Used for averaging LINE_LEN_AVG between repos.
    val REPO_DATE_START = 5  // Repo summary info. Date of first contribution.
    val REPO_DATE_END = 6  // Repo summary info. Date of last contribution.
    val REPO_TEAM_SIZE = 7  // Repo summary info. Number of contributors.
    val VARIABLE_NAMING = 13 // Variables naming fun fact.
    val VARIABLE_NAMING_SNAKE_CASE = 0
    val VARIABLE_NAMING_CAMEL_CASE = 1
    val VARIABLE_NAMING_OTHER = 2
    val INDENTATION = 14
    val INDENTATION_TABS = 0
    val INDENTATION_SPACES = 1

    val COLLEAGUES = 15
}


================================================
FILE: src/main/kotlin/app/Logger.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app

import io.sentry.Sentry
import io.sentry.context.Context
import io.sentry.event.Breadcrumb
import io.sentry.event.UserBuilder
import io.sentry.event.BreadcrumbBuilder
import java.util.*


/**
 * Singleton class that logs events of different levels.
 */
object Logger {
    object Events {
        val START = "start"
        val AUTH = "auth"
        val CONFIG_SETUP = "config/setup"
        val CONFIG_CHANGED = "config/changed"
        val HASHING_REPO_SUCCESS = "hashing/repo/success"
        val HASHING_SUCCESS = "hashing/success"
        val EXIT = "exit"
    }

    /**
     * Current log level. All that higher than this level will not be displayed.
     */
    @kotlin.PublishedApi
    internal val LEVEL : Int

    /**
     * Error level.
     */
    @kotlin.PublishedApi
    internal const val ERROR = 0

    /**
     * Warning level.
     */
    @kotlin.PublishedApi
    internal const val WARN = 1

    /**
     * Information level.
     */
    @kotlin.PublishedApi
    internal const val INFO = 2

    /**
     * Debug level.
     */
    @kotlin.PublishedApi
    internal const val DEBUG = 3

    /**
     * Trace level. For extremely detailed and high volume debug logs.
     */
    @kotlin.PublishedApi
    internal const val TRACE = 4

    const val SILENT = BuildConfig.SILENT_USER_OUTPUT
    const val SENTRY_ENABLED = BuildConfig.SENTRY_ENABLED

    /**
     * Print stack trace on error log.
     */
    private const val PRINT_STACK_TRACE = BuildConfig.PRINT_STACK_TRACE

    /**
     * Context of Sentry error reporting software for adding info.
     */
    private val sentryContext: Context?

    /**
     * Username used for error reporting.
     */
    var username: String? = null
        set(value) {
            if (SENTRY_ENABLED) {
                sentryContext?.user = UserBuilder().setUsername(value).build()
            }
            Analytics.username = value ?: ""
        }

    var uuid: String? = null
        set(value) {
            Analytics.uuid = value ?: ""
        }

    init {
        if (SENTRY_ENABLED) {
            Sentry.init(BuildConfig.SENTRY_DSN)
            sentryContext = Sentry.getContext()
            addTags()
        } else {
            sentryContext = null
        }
        LEVEL = configLevelValue()
    }

    private fun configLevelValue() : Int {
        val a = mapOf("trace" to TRACE, "debug" to DEBUG, "info" to INFO,
            "warn" to WARN, "error" to ERROR)
        return a.getValue(BuildConfig.LOG_LEVEL)
    }

    /**
     * Utils.
     */
    private fun Double.format(digits: Int, digitsFloating: Int) =
        java.lang.String.format("%${digits}.${digitsFloating}f", this)

    private fun generateIndent(num: Int): String {
        return 0.rangeTo(num).fold("") { ind, _ -> ind + " " }
    }

    /**
     * CLI messages and pretty printing.
     */
    fun print(message: Any, indentLine: Boolean = false) {
        if (!SILENT) {
            print(message.toString(), indentLine)
        }
    }

    fun print(message: String, indentLine: Boolean = false) {
        if (!SILENT) {
            if (indentLine) {
                println()
            }
            println(message)
        }
    }

    fun printCommit(commitMessage: String, commitHash: String,
                    percents: Double) {
        if (!SILENT) {
            val percentsStr = percents.format(6, 2)
            val hash = commitHash.substring(0, 7)
            val messageTrim = if (commitMessage.length > 59) {
                commitMessage.substring(0, 56).plus("...")
            } else commitMessage
            println(" [$percentsStr%] * $hash $messageTrim")
        }
    }

    private val commitDetailIndent = generateIndent(10) + "|" +
        generateIndent(8)
    fun printCommitDetail(message: String) {
        if (!SILENT) {
            val messageTrim = if (message.length > 59) {
                message.substring(0, 56).plus("...")
            } else message
            println(commitDetailIndent + messageTrim)
        }
    }

    /**
     * Log error message with exception info.
     * Don't log private information with this method.
     *
     * @property e the exception if presented.
     * @property message the message for user and logs.
     * @property logOnly only log to console, no additional actions.
     */
    fun error(e: Throwable, message: String = "", logOnly: Boolean = false) {
        val finalMessage = if (message.isNotBlank()) { message + ": " }
        else { "" } + e.message
        if (LEVEL >= ERROR) {
            println("[e] $finalMessage")
            if (PRINT_STACK_TRACE) {
                e.printStackTrace()
            }
        }
        if (!logOnly) {
            Analytics.trackError(e)
            capture(e)
        }
        addBreadcrumb(finalMessage, Breadcrumb.Level.ERROR)
    }

    /**
     * Log warning message. Don't log private information with this method.
     */
    inline fun warn(message: () -> String) {
        val msg = message()
        if (LEVEL >= WARN) {
            println("[w] $msg.")
        }
        addBreadcrumb(msg, Breadcrumb.Level.WARNING)
    }

    /**
     * Log information message. Don't log private information with this method.
     */
    inline fun info(event: String = "", message: () -> String) {
        val msg = message()
        if (LEVEL >= INFO) {
            println("[i] $msg.")
        }
        if (event.isNotBlank()) {
            Analytics.trackEvent(event)
        }
        addBreadcrumb(msg, Breadcrumb.Level.INFO)
    }

    /**
     * Log debug message.
     */
    inline fun debug(message: () -> String) {
        if (LEVEL >= DEBUG) {
            println("[d] ${message()}.")
        }
    }

    /**
     * Log trace message.
     */
    inline fun trace(message: () -> String) {
        if (LEVEL >= TRACE) {
            println("[t] ${message()}.")
        }
    }

    val isTrace: Boolean
        inline get() = LEVEL >= TRACE

    @kotlin.PublishedApi
    internal fun addBreadcrumb(message: String, level: Breadcrumb.Level) {
        if (SENTRY_ENABLED) {
            sentryContext?.recordBreadcrumb(BreadcrumbBuilder()
                .setMessage(message)
                .setLevel(level)
                .setTimestamp(Date())
                .build())
        }
    }

    private fun addTags() {
        if (SENTRY_ENABLED) {
            val default = "unavailable"
            val osName = System.getProperty("os.name", default)
            val osVersion = System.getProperty("os.version", default)
            val javaVendor = System.getProperty("java.vendor", default)
            val javaVersion = System.getProperty("java.version", default)

            sentryContext?.addTag("environment", BuildConfig.ENV)
            sentryContext?.addTag("log-level", BuildConfig.LOG_LEVEL)
            sentryContext?.addTag("version", BuildConfig.VERSION)
            sentryContext?.addTag("version-code", BuildConfig.VERSION_CODE
                .toString())
            sentryContext?.addTag("os-name", osName)
            sentryContext?.addTag("os-version", osVersion)
            sentryContext?.addTag("java-vendor", javaVendor)
            sentryContext?.addTag("java-version", javaVersion)
        }
    }

    private fun capture(e: Throwable) {
        if (SENTRY_ENABLED) {
            Sentry.capture(e)
        }
    }
}


================================================
FILE: src/main/kotlin/app/Main.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app

import app.api.ServerApi
import app.config.FileConfigurator
import app.model.LocalRepo
import app.ui.ConsoleUi
import app.utils.CommandConfig
import app.utils.CommandAdd
import app.utils.CommandList
import app.utils.CommandRemove
import app.utils.FileHelper.toPath
import app.utils.Options
import app.utils.PasswordHelper
import app.utils.RepoHelper
import app.utils.UiHelper
import com.beust.jcommander.JCommander
import com.beust.jcommander.MissingCommandException
import java.nio.file.Files
import java.nio.file.Path
import java.security.GeneralSecurityException
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
import java.security.cert.X509Certificate
import javax.net.ssl.HttpsURLConnection
import javax.net.ssl.SSLContext

fun main(argv : Array<String>) {
    Thread.setDefaultUncaughtExceptionHandler { _, e: Throwable ->
        Logger.error(e, "Uncaught exception")
    }
    if (BuildConfig.ENV != "production") {
        disableSslChecks()
    }
    Main(argv)
}

class Main(argv: Array<String>) {
    private val configurator = FileConfigurator()
    private val api = ServerApi(configurator)

    init {
        Logger.uuid = configurator.getUuidPersistent()
        Logger.info(Logger.Events.START) { "App started" }

        val options = Options()
        val commandAdd = CommandAdd()
        val commandConfig = CommandConfig()
        val commandList = CommandList()
        val commandRemove = CommandRemove()
        val jc: JCommander = JCommander.newBuilder()
            .programName("sourcerer")  // Used for usage method.
            .addObject(options)
            .addCommand(commandAdd.name, commandAdd)
            .addCommand(commandConfig.name, commandConfig)
            .addCommand(commandList.name, commandList)
            .addCommand(commandRemove.name, commandRemove)
            .build()

        try {
            jc.parse(*argv)
            options.password = PasswordHelper.hashPassword(options.password)
            configurator.setOptions(options)

            if (options.help) {
                showHelp(jc)
            } else if (options.setup) {
                doSetup()
            } else when (jc.parsedCommand) {
                commandAdd.name -> doAdd(commandAdd)
                commandConfig.name -> doConfig(commandConfig)
                commandList.name -> doList()
                commandRemove.name -> doRemove(commandRemove)
                else -> startUi()
            }
        } catch (e: MissingCommandException) {
            Logger.warn { "No such command: ${e.unknownCommand}" }
        }

        Logger.info(Logger.Events.EXIT) { "App finished" }
    }

    private fun startUi() {
        ConsoleUi(api, configurator)
    }

    private fun doAdd(commandAdd: CommandAdd) {
        val paths = commandAdd.paths
        paths.forEach {
            val path = it.toPath()
            val hashAll = commandAdd.hashAll
            if (commandAdd.recursive) {
                Files.walk(path)
                        .filter { p -> RepoHelper.isValidGitRepo(p) }
                        .forEach { p -> processPath(p, hashAll) }
            } else {
                processPath(path, hashAll)
            }
        }
    }

    private fun processPath(path: Path, hashAll: Boolean) {
        if (RepoHelper.isValidRepo(path)) {
            val localRepo = LocalRepo(path.toString())
            localRepo.hashAllContributors = hashAll
            configurator.addLocalRepoPersistent(localRepo)
            configurator.saveToFile()
            Logger.print("Added git repository at $path.")
            Logger.info(Logger.Events.CONFIG_CHANGED) { "Config changed" }
        } else {
            Logger.warn { "No valid git repository found at specified path $path" }
        }
    }

    private fun doConfig(commandOptions: CommandConfig) {
        val (key, value) = commandOptions.pair

        if (!arrayListOf("username", "password").contains(key)) {
            Logger.warn { "No such key $key" }
            return
        }

        when (key) {
            "username" -> configurator.setUsernamePersistent(value)
            "password" -> configurator.setPasswordPersistent(value)
        }

        configurator.saveToFile()

        Logger.info(Logger.Events.CONFIG_CHANGED) { "Config changed" }
    }

    private fun doList() {
        RepoHelper.printRepos(configurator.getLocalRepos(),
                              "Tracked repositories:",
                              "No tracked repositories")
    }

    private fun doRemove(commandRemove: CommandRemove) {
        val path = commandRemove.path
        // Don't validate because repository may be deleted already.
        if (path != null) {
            configurator.removeLocalRepoPersistent(LocalRepo(path))
            configurator.saveToFile()
            Logger.print("Repository removed from tracking list.")

            Logger.info(Logger.Events.CONFIG_CHANGED) { "Config changed" }
        } else {
            Logger.print("Repository not found in tracking list.")
        }
    }

    private fun doSetup() {
        if (!configurator.isFirstLaunch()) {
            if (UiHelper.confirm("Are you sure that you want to setup "
                + "Sourcerer again?", defaultIsYes = false)) {
                configurator.resetAndSave()
            }
        }
        startUi()
    }

    private fun showHelp(jc: JCommander) {
        Logger.print("Sourcerer hashes your git repositories into intelligent "
            + "engineering profiles.")
        Logger.print("If you don't have an account, please, proceed to " +
            "https://sourcerer.io/join")
        Logger.print("More info at https://sourcerer.io and " +
            "https://github.com/sourcerer-io")
        jc.usage()  // Will show detailed info about usage based on annotations.
    }
}

fun disableSslChecks() {
    // Create a trust manager that does not validate certificate chains.
    val trustAllCerts = arrayOf<TrustManager>(object : X509TrustManager {
        override fun getAcceptedIssuers(): Array<X509Certificate> {
            return arrayOf()
        }
        override fun checkClientTrusted(certs: Array<X509Certificate>,
                                        authType: String) {}
        override fun checkServerTrusted(certs: Array<X509Certificate>,
                                        authType: String) {}
    })

    // Install the all-trusting trust manager.
    try {
        val sc = SSLContext.getInstance("SSL")
        sc.init(null, trustAllCerts, java.security.SecureRandom())
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory())
    } catch (e: GeneralSecurityException) {}

    // Skip server name checking.
    HttpsURLConnection.setDefaultHostnameVerifier { _, _ -> true }
}


================================================
FILE: src/main/kotlin/app/api/Api.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.api

import app.model.*

interface Api {
    companion object {
        val OUT_OF_DATE = 1
        val STATUS_CLONING = 80
        val PROCESS_STATUS_START = 100
        val PROCESS_STATUS_COMPLETE = 200
        val PROCESS_STATUS_FAIL = 1000
        val CODE_SUCCESS = 0
        val PROCESS_ERROR_TOO_MUCH_COMMITS = 4
        val PROCESS_ERROR_NO_COMMITS = 5
        val PROCESS_ERROR_PROCESSOR = 6
        val PROCESS_ERROR_EMPTY_REPO = 8
        val PROCESS_ERROR_NO_ACCESS = 9
    }

    fun authorize(): Result<Unit>
    fun getUser(): Result<User>
    fun postUser(user: User): Result<Unit>
    fun postRepo(repo: Repo): Result<Repo>
    fun postCommits(commitsList: List<Commit>): Result<Unit>
    fun deleteCommits(commitsList: List<Commit>): Result<Unit>
    fun postFacts(factsList: List<Fact>): Result<Unit>
    fun postAuthors(authorsList: List<Author>): Result<Unit>
    fun postProcessCreate(requestNumEntries: Int): Result<Process>
    fun postProcess(processEntries: List<ProcessEntry>): Result<Unit>
    fun postAuthorDistances(authorDistanceList: List<AuthorDistance>):
            Result<Unit>
}


================================================
FILE: src/main/kotlin/app/api/ApiError.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.api

import app.Logger
import app.model.Error
import app.model.Errors
import com.github.kittinunf.fuel.core.FuelError
import com.google.protobuf.InvalidProtocolBufferException
import java.nio.charset.Charset
import java.security.InvalidParameterException

class ApiError(exception: Exception) : Exception(exception.message) {
    companion object {
        private val AUTH_ERROR_CODES = listOf(401, 403)
    }

    // Response content.
    var httpStatusCode: Int = 0
    var httpResponseMessage: String = ""
    var httpBodyMessage: String = ""

    // Server errors from response.
    var serverErrors = listOf<Error>()

    // Type of errors.
    var isParseError = false
    var isAuthError: Boolean = false
    get() = AUTH_ERROR_CODES.contains(httpStatusCode)

    constructor(fuelError: FuelError) : this(fuelError as Exception) {
        httpStatusCode = fuelError.response.statusCode
        httpResponseMessage = fuelError.response.responseMessage
        if (fuelError.response.headers["Content-Type"]
            ?.contains("application/octet-stream") == true) {
            try {
                serverErrors = Errors(fuelError.response.data).errors
            } catch (e: Exception) {
                Logger.error(e, "Error while parsing errors from server")
            }
        } else {
            httpBodyMessage = fuelError.response.data
                .toString(Charset.defaultCharset())
        }
    }

    constructor(parseException: InvalidProtocolBufferException) :
            this(parseException as Exception) {
        isParseError = true
    }

    constructor(parseException: InvalidParameterException) :
            this(parseException as Exception) {
        isParseError = true
    }

    fun isWithServerCode(serverErrorCode: Int): Boolean {
        return serverErrors.find { error ->
            error.code == serverErrorCode } != null
    }
}

fun ApiError?.ifNotNullThrow() {
    if (this != null) {
        throw this
    }
}

fun ApiError?.isWithServerCode(serverErrorCode: Int): Boolean {
    if (this != null) {
        return this.isWithServerCode(serverErrorCode)
    }
    return false
}


================================================
FILE: src/main/kotlin/app/api/MockApi.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.api

import app.Logger
import app.model.*

class MockApi(  // GET requests.
    var mockUser: User = User(),
    var mockRepo: Repo = Repo(),
    var mockProcessEntries: List<ProcessEntry> = listOf()) : Api {
    // POST requests.
    // In case of multiple requests.
    var receivedRepos: MutableList<Repo> = mutableListOf()
    var receivedAddedCommits: MutableList<Commit> = mutableListOf()
    var receivedFacts: MutableList<Fact> = mutableListOf()
    var receivedAuthors: MutableList<Author> = mutableListOf()
    var receivedUsers: MutableList<User> = mutableListOf()
    var receivedProcessCreate: MutableList<Process> = mutableListOf()
    var receivedProcess: MutableList<Process> = mutableListOf()
    var receivedDistances: MutableList<AuthorDistance> = mutableListOf()

    // DELETE requests.
    var receivedDeletedCommits: MutableList<Commit> = mutableListOf()

    override fun authorize(): Result<Unit> {
        Logger.debug { "MockApi: authorize request" }
        return Result()
    }

    override fun getUser(): Result<User> {
        Logger.debug { "MockApi: getUser request" }
        return Result(mockUser)
    }

    override fun postUser(user: User): Result<Unit> {
        Logger.debug { "MockApi: postUser request" }
        receivedUsers.add(user)
        return Result()
    }

    override fun postRepo(repo: Repo): Result<Repo> {
        Logger.debug { "MockApi: postRepo request" }
        receivedRepos.add(repo)
        return Result(mockRepo)
    }

    override fun postCommits(commitsList: List<Commit>): Result<Unit> {
        Logger.debug {
            "MockApi: postCommits request (${commitsList.size} commits)"
        }
        receivedAddedCommits.addAll(commitsList)
        return Result()
    }

    override fun deleteCommits(commitsList: List<Commit>): Result<Unit> {
        Logger.debug {
            "MockApi: deleteCommits request (${commitsList.size} commits)" }
        receivedDeletedCommits.addAll(commitsList)
        return Result()
    }

    override fun postFacts(factsList: List<Fact>): Result<Unit> {
        Logger.debug { "MockApi: postFacts request (${factsList.size} facts)" }
        receivedFacts.addAll(factsList)
        return Result()
    }

    override fun postAuthors(authorsList: List<Author>): Result<Unit> {
        Logger.debug { "MockApi: postAuthors request (${authorsList.size} " +
            "stats)" }
        receivedAuthors.addAll(authorsList)
        return Result()
    }

    override fun postProcessCreate(requestNumEntries: Int): Result<Process> {
        Logger.debug { "MockApi: postProcessCreate request " +
            "($requestNumEntries entries requested)" }
        receivedProcessCreate.add(
            Process(requestNumEntries = requestNumEntries))
        return Result(Process(entries = mockProcessEntries))
    }

    override fun postProcess(processEntries: List<ProcessEntry>): Result<Unit> {
        Logger.debug { "MockApi: postProcess request (${processEntries.size} " +
            "entries updated)" }
        receivedProcess.add(Process(entries = processEntries))
        return Result()
    }

    override fun postAuthorDistances(authorDistanceList:
                                     List<AuthorDistance>): Result<Unit> {
        Logger.debug { "MockApi: postAuthorDistances request (${authorDistanceList
                .size} distances)" }
        receivedDistances.addAll(authorDistanceList)
        return Result()
    }
}


================================================
FILE: src/main/kotlin/app/api/Result.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.api

data class Result<out T> (val data: T? = null, val error: ApiError? = null) {
    fun getOrThrow(): T {
        if (error == null) {
            return data!!
        }
        throw error
    }

    fun onErrorThrow() {
        if (error != null) {
            throw error
        }
    }
}


================================================
FILE: src/main/kotlin/app/api/ServerApi.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.api

import app.BuildConfig
import app.Logger
import app.config.Configurator
import app.model.*
import com.github.kittinunf.fuel.core.FuelManager
import com.github.kittinunf.fuel.core.Method
import com.github.kittinunf.fuel.core.Request
import com.github.kittinunf.fuel.core.Response
import com.google.protobuf.InvalidProtocolBufferException
import java.security.InvalidParameterException

class ServerApi (private val configurator: Configurator) : Api {
    companion object {
        private val HEADER_VERSION_CODE = "app-version-code"
        private val HEADER_CONTENT_TYPE = "Content-Type"
        private val HEADER_CONTENT_TYPE_PROTO = "application/octet-stream"
        private val HEADER_COOKIE = "Cookie"
        private val HEADER_SET_COOKIE = "Set-Cookie"
        private val KEY_TOKEN = "Token="
    }

    val fuelManager = FuelManager()
    private var token = ""

    private fun cookieRequestInterceptor() = { req: Request ->
        if (token.isNotEmpty()) {
            req.header(Pair(HEADER_COOKIE, KEY_TOKEN + token))
        }
        req
    }

    private fun cookieResponseInterceptor() = { _: Request, res: Response ->
        val newToken = res.headers[HEADER_SET_COOKIE]
            ?.find { it.startsWith(KEY_TOKEN) }
        if (newToken != null && newToken.isNotBlank()) {
            token = newToken.substringAfter(KEY_TOKEN).substringBefore(';')
        }
        res
    }

    init {
        fuelManager.basePath = BuildConfig.API_BASE_PATH
        fuelManager.addRequestInterceptor { cookieRequestInterceptor() }
        fuelManager.addResponseInterceptor { cookieResponseInterceptor() }
    }

    private val username
        get() = configurator.getUsername()

    private val password
        get() = configurator.getPassword()

    private fun post(path: String): Request {
        return fuelManager.request(Method.POST, path)
    }

    private fun get(path: String): Request {
        return fuelManager.request(Method.GET, path)
    }

    private fun delete(path: String): Request {
        return fuelManager.request(Method.DELETE, path)
    }

    private fun createRequestGetToken(): Request {
        return post("/auth").authenticate(username, password)
                            .header(getVersionCodeHeader())
    }

    private fun createRequestGetUser(): Request {
        return get("/user")
    }

    private fun createRequestPostUser(user: User): Request {
        return post("/user").header(getContentTypeHeader())
                            .body(user.serialize())
    }

    private fun createRequestPostRepo(repo: Repo): Request {
        return post("/repo").header(getContentTypeHeader())
                            .body(repo.serialize())
    }

    private fun createRequestPostCommits(commits: CommitGroup): Request {
        return post("/commits").header(getContentTypeHeader())
                               .body(commits.serialize())
    }

    private fun createRequestDeleteCommits(commits: CommitGroup): Request {
        return delete("/commits").header(getContentTypeHeader())
                                 .body(commits.serialize())
    }

    private fun createRequestPostFacts(facts: FactGroup): Request {
        return post("/facts").header(getContentTypeHeader())
                             .body(facts.serialize())
    }

    private fun createRequestPostAuthors(authors: AuthorGroup): Request {
        return post("/authors").header(getContentTypeHeader())
                               .body(authors.serialize())
    }

    private fun createRequestPostProcessCreate(process: Process): Request {
        return post("/process/create").header(getContentTypeHeader())
                                      .body(process.serialize())
    }

    private fun createRequestPostProcess(process: Process): Request {
        return post("/process").header(getContentTypeHeader())
                               .body(process.serialize())
    }

    private fun createRequestPostAuthorDistances(distances:
        AuthorDistanceGroup): Request {
        return post("/distances").header(getContentTypeHeader())
                .body(distances.serialize())
    }

    private fun <T> makeRequest(request: Request,
                                requestName: String,
                                parser: (ByteArray) -> T): Result<T> {
        var error: ApiError? = null
        var data: T? = null

        try {
            Logger.debug { "Request $requestName initialized" }
            val (_, res, result) = request.responseString()
            val (_, e) = result
            if (e == null) {
                Logger.debug { "Request $requestName success" }
                data = parser(res.data)
            } else {
                error = ApiError(e)
            }
        } catch (e: InvalidProtocolBufferException) {
            error = ApiError(e)
        } catch (e: InvalidParameterException) {
            error = ApiError(e)
        }

        return Result(data, error)
    }

    private fun getVersionCodeHeader(): Pair<String, String> {
        return Pair(HEADER_VERSION_CODE, BuildConfig.VERSION_CODE.toString())
    }

    private fun getContentTypeHeader(): Pair<String, String> {
        return Pair(HEADER_CONTENT_TYPE, HEADER_CONTENT_TYPE_PROTO)
    }

    override fun authorize(): Result<Unit> {
        return makeRequest(createRequestGetToken(), "getToken", {})
    }

    override fun getUser(): Result<User> {
        return makeRequest(createRequestGetUser(), "getUser",
                           { body -> User(body) })
    }

    override fun postUser(user: User): Result<Unit> {
        return makeRequest(createRequestPostUser(user), "postUser", {})
    }

    override fun postRepo(repo: Repo): Result<Repo> {
        if (repo.rehash.isBlank()) {
            throw IllegalArgumentException()
        }

        return makeRequest(createRequestPostRepo(repo), "getRepo",
                           { body -> Repo(body) })
    }

    override fun postCommits(commitsList: List<Commit>): Result<Unit> {
        val commits = CommitGroup(commitsList)
        return makeRequest(createRequestPostCommits(commits),
                           "postCommits", {})
    }

    override fun deleteCommits(commitsList: List<Commit>): Result<Unit> {
        val commits = CommitGroup(commitsList)
        return makeRequest(createRequestDeleteCommits(commits),
                           "deleteCommits", {})
    }

    override fun postFacts(factsList: List<Fact>): Result<Unit> {
        val facts = FactGroup(factsList)
        return makeRequest(createRequestPostFacts(facts), "postFacts", {})
    }

    override fun postAuthors(authorsList: List<Author>): Result<Unit> {
        val authors = AuthorGroup(authorsList)
        return makeRequest(createRequestPostAuthors(authors), "postAuthors", {})
    }

    override fun postProcessCreate(requestNumEntries: Int): Result<Process> {
        val process = Process(requestNumEntries = requestNumEntries)
        return makeRequest(createRequestPostProcessCreate(process),
                           "postProcessCreate", { body -> Process(body) })
    }

    override fun postProcess(processEntries: List<ProcessEntry>): Result<Unit> {
        // TODO(anatoly): Restrict possible status and error codes on CS.
        val process = Process(entries = processEntries)
        return makeRequest(createRequestPostProcess(process), "postProcess", {})
    }

    override fun postAuthorDistances(authorDistanceList: List<AuthorDistance>):
            Result<Unit> {
        val distances = AuthorDistanceGroup(authorDistanceList)
        return makeRequest(createRequestPostAuthorDistances(distances),
                "postDistances", {})
    }
}


================================================
FILE: src/main/kotlin/app/config/Config.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.config

import app.model.LocalRepo
import app.utils.Options

/**
 * Config data class.
 */
class Config (
        var uuid: String = "",
        var username: String = "",
        var password: String = "",
        var localRepos: MutableSet<LocalRepo> = mutableSetOf()
) {
    fun addRepo(repo: LocalRepo) {
        localRepos.remove(repo)  // Fields may be updated.
        localRepos.add(repo)
    }

    fun removeRepo(repo: LocalRepo) {
        localRepos.remove(repo)
    }

    fun merge(config: Config): Config {
        if (config.username.isNotEmpty()) {
            username = config.username
        }
        if (config.password.isNotEmpty()) {
            password = config.password
        }
        if (config.localRepos.isNotEmpty()) {
            localRepos = config.localRepos
        }

        return this
    }

    fun merge(options: Options): Config {
        if (options.username.isNotEmpty()) {
            username = options.username
        }
        if (options.password.isNotEmpty()) {
            password = options.password
        }

        return this
    }
}


================================================
FILE: src/main/kotlin/app/config/Configurator.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.config

import app.model.LocalRepo
import app.model.User
import app.utils.Options

interface Configurator {
    fun setOptions(options: Options)
    fun getUsername(): String
    fun getPassword(): String
    fun isValidCredentials(): Boolean
    fun getLocalRepos(): List<LocalRepo>
    fun getUser(): User
    fun setUsernameCurrent(username: String)
    fun setPasswordCurrent(password: String)
    fun getUuidPersistent(): String
    fun setUsernamePersistent(username: String)
    fun setPasswordPersistent(password: String)
    fun addLocalRepoPersistent(localRepo: LocalRepo)
    fun removeLocalRepoPersistent(localRepo: LocalRepo)
    fun setUser(user: User)
    fun isFirstLaunch(): Boolean
    fun loadFromFile()
    fun saveToFile()
    fun resetAndSave()
}


================================================
FILE: src/main/kotlin/app/config/FileConfigurator.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.config

import app.Logger
import app.model.LocalRepo
import app.model.User
import app.utils.FileHelper
import app.utils.Options
import app.utils.PasswordHelper
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility
import com.fasterxml.jackson.annotation.PropertyAccessor
import com.fasterxml.jackson.core.JsonParseException
import com.fasterxml.jackson.databind.JsonMappingException
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import com.fasterxml.jackson.module.kotlin.KotlinModule
import java.io.IOException
import java.nio.file.Files
import java.nio.file.InvalidPathException
import java.nio.file.NoSuchFileException
import java.util.UUID

/**
 * Singleton class that manage configs and CLI options.
 */
class FileConfigurator : Configurator {
    /**
     * Persistent configuration file name.
     */
    private val CONFIG_FILE_NAME = "config.yaml"

    // Config levels are presented in priority decreasing order.

    /**
     * Configuration based on CLI arguments or temporary user entered data.
     */
    private var current: Config = Config()

    /**
     * Persistent configuration saved in config file in YAML format.
     */
    private var persistent: Config = Config()

    /**
     * Default configuration.
     */
    private val default: Config = Config()

    /**
     * Merger of all configuration levels. Is used to get properties.
     */
    private val config: Config
        get() = default.merge(persistent).merge(current)

    /**
     * Command-line arguments. Updates [current] on set.
     */
    private var options: Options = Options()

    /**
     * Used to temporarily save list of repos that known by server.
     */
    private var user: User = User()

    /**
     * Jackson's ObjectMapper.
     */
    private val mapper = createMapper()

    /**
     * Initializer that loads persistent config.
     */
    init {
        loadFromFile()
        assignUuidIfMissing()
    }

    /**
     * Generates UUID for analytics on install.
     */
    private fun assignUuidIfMissing() {
        if (persistent.uuid.isNotEmpty()) {
            return
        }
        persistent.uuid = UUID.randomUUID().toString()
    }

    /**
     * Creates and setups Jackson's ObjectMapper.
     */
    private fun createMapper(): ObjectMapper {
        return ObjectMapper(YAMLFactory())  // Enable YAML parsing.
                // Map only fields (not getters, etc).
                .setVisibility(PropertyAccessor.ALL, Visibility.NONE)
                .setVisibility(PropertyAccessor.FIELD, Visibility.ANY)
                .registerModule(KotlinModule())  // Enable Kotlin support.
    }

    override fun setOptions(options: Options) {
        current.merge(options)
        this.options = options
    }

    /**
     * Gets username from merger of all configuration levels.
     */
    override fun getUsername(): String {
        return config.username
    }

    /**
     * Gets hashed password from merger of all configuration levels.
     */
    override fun getPassword(): String {
        return config.password
    }

    /**
     * Checks for non empty credentials from merger of all configuration levels.
     */
    override fun isValidCredentials(): Boolean {
        return config.username.isNotEmpty() && config.password.isNotEmpty()
    }

    /**
     * Gets list of repos from merger of all configuration levels.
     */
    override fun getLocalRepos(): List<LocalRepo> {
        return config.localRepos.toList()
    }

    /**
     * Gets temprorary saved user information.
     */
    override fun getUser(): User {
        return user
    }

    /**
     * Sets username to current launch temprorary config.
     */
    override fun setUsernameCurrent(username: String) {
        current.username = username
    }

    /**
     * Sets and hashes password to current launch temprorary config.
     */
    override fun setPasswordCurrent(password: String) {
        current.password = PasswordHelper.hashPassword(password)
    }

    /**
     * Gets UUID.
     */
    override fun getUuidPersistent(): String {
        return persistent.uuid
    }

    /**
     * Sets username to persistent config. Use [saveToFile] to save.
     */
    override fun setUsernamePersistent(username: String) {
        persistent.username = username
    }

    /**
     * Sets and hashes password to persistent config. Use [saveToFile] to save.
     */
    override fun setPasswordPersistent(password: String) {
        persistent.password = PasswordHelper.hashPassword(password)
    }

    /**
     * Add repo to persistent config. Use [saveToFile] to save.
     */
    override fun addLocalRepoPersistent(localRepo: LocalRepo) {
        persistent.addRepo(localRepo)
    }

    /**
     * Remove repo from persistent config. Use [saveToFile] to save.
     */
    override fun removeLocalRepoPersistent(localRepo: LocalRepo) {
        persistent.removeRepo(localRepo)
    }

    /**
     * Temporarily sets info about user.
     */
    override fun setUser(user: User) {
        this.user = user
    }

    /**
     * Defines whether this is the first run. If any fields are defined then no.
     */
    override fun isFirstLaunch(): Boolean {
        return persistent.password.isEmpty()
                && persistent.username.isEmpty()
                && persistent.localRepos.isEmpty()
    }

    /**
     * Loads [persistent] configuration from config file.
     */
    override fun loadFromFile() {
        // Сonfig initialization in case an exception is thrown.
        var loadConfig = Config()

        try {
            loadConfig = Files.newBufferedReader(FileHelper
                .getPath(CONFIG_FILE_NAME)).use {
                mapper.readValue(it, Config::class.java)
            }
        } catch (e: IOException) {
            if (e is NoSuchFileException){
                Logger.warn { "No config file found" }
            } else {
                Logger.error(e, "Cannot access config file")
            }
        } catch (e: SecurityException) {
            Logger.error(e, "Cannot access config file")
        } catch (e: InvalidPathException) {
            Logger.error(e, "Cannot access config file")
        } catch (e: JsonParseException) {
            Logger.error(e, "Cannot parse config file")
        } catch (e: JsonMappingException) {
            Logger.error(e, "Cannot parse config file")
        } catch (e: IllegalStateException) {
            Logger.error(e, "Cannot parse config file")
        }

        persistent = loadConfig
    }

    /**
     * Saves [persistent] configuration to config file.
     */
    override fun saveToFile() {
        try {
            Files.newBufferedWriter(FileHelper.getPath(CONFIG_FILE_NAME)).use {
                mapper.writeValue(it, persistent)
            }
        } catch (e: IOException) {
            Logger.error(e, "Cannot save config file")
        } catch (e: SecurityException) {
            Logger.error(e, "Cannot save config file")
        } catch (e: InvalidPathException) {
            Logger.error(e, "Cannot save config file")
        } catch (e: JsonParseException) {
            Logger.error(e, "Cannot parse config file")
        } catch (e: JsonMappingException) {
            Logger.error(e, "Cannot parse config file")
        } catch (e: IllegalStateException) {
            Logger.error(e, "Cannot parse config file")
        }
    }

    /**
     * Resets all configurations, CLI options and config file.
     */
    override fun resetAndSave() {
        options = Options()
        persistent = Config()
        saveToFile()
    }
}


================================================
FILE: src/main/kotlin/app/config/MockConfigurator.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.config

import app.model.LocalRepo
import app.model.User
import app.utils.Options

class MockConfigurator(var mockUsername: String = "",
                       var mockPassword: String = "",
                       var mockIsValidCredentials: Boolean = true,
                       var mockIsFirstLaunch: Boolean = true,
                       var mockUser: User = User(),
                       var mockLocalRepos: MutableList<LocalRepo> =
                           mutableListOf(),
                       var uuid: String = "") : Configurator {
    var mockCurrent: Config = Config()
    var mockPersistent: Config = Config()
    var mockOptions: Options = Options()

    override fun setOptions(options: Options) {
        mockOptions = options
    }

    override fun getUsername(): String {
        return mockUsername
    }

    override fun getPassword(): String {
        return mockPassword
    }

    override fun isValidCredentials(): Boolean {
        return mockIsValidCredentials
    }

    override fun getLocalRepos(): List<LocalRepo> {
        return mockLocalRepos
    }

    override fun getUser(): User {
        return mockUser
    }

    override fun setUsernameCurrent(username: String) {
        mockCurrent.username = username
    }

    override fun setPasswordCurrent(password: String) {
        mockCurrent.password = password
    }

    override fun getUuidPersistent(): String {
        return uuid
    }

    override fun setUsernamePersistent(username: String) {
        mockPersistent.username = username
    }

    override fun setPasswordPersistent(password: String) {
        mockPersistent.password = password
    }

    override fun addLocalRepoPersistent(localRepo: LocalRepo) {
        mockPersistent.localRepos.remove(localRepo)
        mockPersistent.localRepos.add(localRepo)
    }

    override fun removeLocalRepoPersistent(localRepo: LocalRepo) {
        mockPersistent.localRepos.remove(localRepo)
    }

    override fun setUser(user: User) {
        mockUser = user
    }

    override fun isFirstLaunch(): Boolean {
        return mockIsFirstLaunch
    }

    override fun loadFromFile() {}

    override fun saveToFile() {}

    override fun resetAndSave() {}
}


================================================
FILE: src/main/kotlin/app/extractors/CExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class CExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.C
        val importRegex = Regex("""^([^\n]*#include)\s[^\n]*""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val extractImportRegex =
            Regex("""#include\s+["<](\w+)[/\w+]*\.\w+[">]""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val lineLib = res.groupValues.last()
                imports.add(lineLib)
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        // TODO(lyaronskaya): Add C to libraries.
        return super.mapImportToIndex(import, Lang.CPP, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/CSharpExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class CSharpExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.CSHARP
        val importRegex = Regex("""^.*using\s+(\w+[.\w+]*)""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val extractImportRegex = Regex("""using\s+(\w+[.\w+]*)""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                imports.add(res.groupValues[1])
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/ClassifierManager.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

import app.BuildConfig
import app.Logger
import app.model.Classifier
import app.model.LibraryMeta
import app.utils.FileHelper
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClientBuilder
import java.io.FileOutputStream

class ClassifierManager {
    companion object {
        private const val CLASSIFIERS_DIR = "classifiers"
        private const val DATA_EXT = ".pb"
        private const val LIBS_META_DIR = ClassifierManager.CLASSIFIERS_DIR
        private const val LIBS_META_FILENAME = "libraries_meta.pb"
    }

    val cache = hashMapOf<String, Classifier>()
    val libsMeta = getLibraryMeta()

    /**
     * Returns libraries used in a line.
     */
    fun estimate(line: List<String>, libraries: List<String>): List<String> {
        return libraries.filter { libId ->
            if (!cache.containsKey(libId)) {
                // Library not downloaded from cloud storage.
                if (FileHelper.notExists(libId + DATA_EXT, CLASSIFIERS_DIR)) {
                    Logger.info { "Downloading $libId classifier" }
                    downloadClassifier(libId)
                    Logger.info { "Finished downloading $libId classifier" }
                }

                // Library not loaded from local storage.
                Logger.info { "Loading $libId evaluator" }
                loadClassifier(libId)
                Logger.info { "$libId evaluator ready" }
            }

            // Check line for usage of a library.
            val prediction = cache[libId]!!.evaluate(line)
            // Prediction based on two classes.
            val prob = prediction[cache[libId]!!.libraries.indexOf(libId)]
            // Define lower bound of classifier output
            // that depends on data used to create the model.
            // TODO(lyaronskaya): move thresholds to protobuf.
            if (libId == "rb.rails") {
                prob > 0.91
            } else if (libId == "py.flask") {
                prob > 0.95
            } else if (libId.startsWith(Lang.KOTLIN)) {
                prob > 0.8
            } else if (libId.startsWith(Lang.PLPGSQL)) {
                prob > 0.7
            } else if (libId.startsWith(Lang.PHP)) {
                prob > 0.75
            } else if (libId.startsWith(Lang.PYTHON)) {
                prob > 0.75
            } else if (libId.startsWith(Lang.SCALA)) {
                prob > 0.85
            } else if (libId.startsWith(Lang.GO)) {
                prob > 0.75
            } else if (libId.startsWith(Lang.JAVA)) {
                prob > 0.9
            } else if (libId.startsWith(Lang.CRYSTAL)) {
                prob > 0.7
            } else if (libId.startsWith(Lang.PERL)) {
                prob > 0.8
            } else if (libId.startsWith("rb.dry-")) {
                prob > 0.85
            } else if (libId == "js.q") {
                prob > 0.9
            } else if (libId == "cpp.gflags") {
                prob > 0.9
            } else if (libId == "dart.flutter") {
                prob > 0.85
            }
            else if (libId.startsWith(Lang.CPP)) {
                prob > 0.8
            }
            else if (libId.startsWith(Lang.JAVASCRIPT)) {
                prob > 0.7
            }
            else {
                prob > 0.5
            }
        }
    }

    /**
     * Downloads libraries from cloud.
     */
    private fun downloadClassifier(libId: String) {
        val file = FileHelper.getFile(libId + DATA_EXT, CLASSIFIERS_DIR)
        val langId = libId.split('.')[0]
        val url = "${BuildConfig.LIBRARY_MODELS_URL}$langId/$libId$DATA_EXT"
        val builder = HttpClientBuilder.create()
        val client = builder.build()
        try {
            client.execute(HttpGet(url)).use { response ->
                val entity = response.entity
                if (entity != null) {
                    FileOutputStream(file).use { outstream ->
                        entity.writeTo(outstream)
                        outstream.flush()
                        outstream.close()
                    }
                }

            }
        } catch (e: Exception) {
            Logger.error(e, "Failed to download $libId classifier")
        }
    }

    /**
     * Loads libraries from local storage to cache.
     */
    private fun loadClassifier(libId: String) {
        val bytesArray = FileHelper.getFile(libId + DATA_EXT, CLASSIFIERS_DIR)
            .readBytes()
        cache[libId] = Classifier(bytesArray)
    }

    /**
     * Downloads libraries meta data from cloud.
     */
    private fun downloadLibrariesMeta() {
        val file = FileHelper.getFile(LIBS_META_FILENAME, LIBS_META_DIR)
        val url = BuildConfig.LIBRARY_MODELS_URL + LIBS_META_FILENAME
        val builder = HttpClientBuilder.create()
        val client = builder.build()
        try {
            client.execute(HttpGet(url)).use { response ->
                val entity = response.entity
                if (entity != null) {
                    FileOutputStream(file).use { outstream ->
                        entity.writeTo(outstream)
                        outstream.flush()
                        outstream.close()
                    }
                }
            }
        } catch (e: Exception) {
            Logger.error(e, "Failed to download $LIBS_META_FILENAME")
        }
    }

    /**
     * Loads libraries meta data from local storage.
     */
    private fun getLibraryMeta(): LibraryMeta {
        Logger.info { "Downloading $LIBS_META_FILENAME" }
        downloadLibrariesMeta()
        Logger.info { "Finished downloading $LIBS_META_FILENAME" }

        val bytesArray = FileHelper.getFile(LIBS_META_FILENAME,
            LIBS_META_DIR).readBytes()
        return LibraryMeta(bytesArray)
    }
}


================================================
FILE: src/main/kotlin/app/extractors/CommonExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class CommonExtractor(private val langName: String) : ExtractorInterface {
    override fun extract(files: List<DiffFile>): List<CommitStats> {
        files.map { file -> file.lang = langName }
        return super.extract(files)
    }
}


================================================
FILE: src/main/kotlin/app/extractors/CppExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class CppExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.CPP
        const val TEMPLATE = "template"
        val importRegex = Regex("""^([^\n]*#include)\s[^\n]*""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val extractImportRegex = Regex("""#include\s+["<](\w+[/\w+]*(\.\w+)?)[">]""")
        val templateRegex = Regex("""template\s*<""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val lineLib = res.groupValues
                                 .last { !it.startsWith(".") && it != ""}
                imports.add(lineLib)
            }
        }
        return imports.toSet().toList()
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        val stats = super.extract(files).toMutableList()

        // Templates fun fact.
        val allAdded = files.map{ file -> file.getAllAdded() }.flatten()
        val allDeleted = files.map{ file -> file.getAllDeleted() }.flatten()

        val templateAllAdded = allAdded.filter { isTemplate(it) }.size
        val templateAllDeleted = allDeleted.filter { isTemplate(it) }.size

        if (templateAllAdded > 0 || templateAllDeleted > 0) {
            stats.add(CommitStats(
                    templateAllAdded, templateAllDeleted, ExtractorInterface.TYPE_SYNTAX,
                    tech = LANGUAGE_NAME + ExtractorInterface.SEPARATOR + TEMPLATE
            ))
        }

        return stats
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }

    private fun isTemplate(line: String): Boolean {
        return line.contains(templateRegex)
    }
}


================================================
FILE: src/main/kotlin/app/extractors/CrystalExtractor.kt
================================================
// Copyright 2019 Sourcerer Inc. All Rights Reserved.
// Author: Anton Maminov (anton.maminov@gmail.com)

package app.extractors

class CrystalExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.CRYSTAL
        val importRegex = Regex("""require\s+\"(\w+)\"""")
        val commentRegex = Regex("""^([^\n]*#)[^\n]*""")
        val extractImportRegex = Regex("""require\s+\"(.+)\"""")
        val includeRegex = Regex("""include\s+(\w+)::.+""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val lineLib = res.groupValues.last { it != "" }
                imports.add(lineLib)
            }
        }

        if (imports.isEmpty()) {
            fileContent.forEach {
                val res = includeRegex.find(it)
                if (res != null) {
                    imports.add(res.groupValues.last().toLowerCase())
                }
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/CssExtractor.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class CssExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.CSS
        val FILE_EXTS = listOf("css", "scss", "less", "sass")
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        files.map { file -> file.lang = LANGUAGE_NAME }
        val stats = FILE_EXTS.filter { it != "css" }.map { extension ->
            val result = files.filter { it.extension == extension }
                .fold(Pair(0, 0)) { total, file ->
                    val currentNumAdded = file.getAllAdded()
                                              .filter { it.isNotBlank() }.size
                    val currentNumDeleted = file.getAllDeleted()
                                                .filter { it.isNotBlank() }.size
                    Pair(total.first + currentNumAdded,
                         total.second + currentNumDeleted)}.toList()

            CommitStats(numLinesAdded = result[0],
                        numLinesDeleted = result[1],
                        type = ExtractorInterface.TYPE_LIBRARY,
                        tech = extension)
        }.filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }

        return stats + super.extract(files)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/DMExtractor.kt
================================================
// Copyright 2019 Sourcerer Inc. All Rights Reserved.
// Author: Nickolas Gupton (nickolas@gupton.xyz)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class DMExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.DM
    }

    override fun extractLibStats(files: List<DiffFile>): List<CommitStats> {
        val mapExtension = ".dmm"
        val spriteExtension = ".dmi"

        val mapFiles = files.filter { it.path.endsWith(mapExtension) }
        val spriteFiles = files.filter { it.path.endsWith(spriteExtension) }

        // Add stats from *.dmm files.
        val mapStats = listOf(CommitStats(
            numLinesAdded = mapFiles.map { it.getAllAdded().size }.sum(),
            numLinesDeleted = mapFiles.map { it.getAllDeleted().size }.sum(),
            type = ExtractorInterface.TYPE_LIBRARY,
            tech = "dm.byond-mapping"
        )).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }

        // Add stats from *.dmi files.
        val spriteStats = listOf(CommitStats(
            numLinesAdded = spriteFiles.map { it.getAllAdded().size }.sum(),
            numLinesDeleted = spriteFiles.map { it.getAllDeleted().size }.sum(),
            type = ExtractorInterface.TYPE_LIBRARY,
            tech = "dm.byond-sprites"
        )).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }

        return mapStats + spriteStats;
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/DartExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

object DartExtractor : ExtractorBase(
    language = Lang.DART,
    importRegex = Regex("""^import ['"](.+)['"];$"""),
    commentRegex = Regex("(//.+$)|(/[*].*?[*]/)"))


================================================
FILE: src/main/kotlin/app/extractors/DevopsExtractor.kt
================================================
// Copyright 2019 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class DevopsExtractor(private val techName: String) : ExtractorInterface {
    companion object {
        const val DEVOPS = "devops."
        const val JENKINS = "jenkins"
        const val CIRCLECI = "circleci"
        const val GITLAB_CI = "gitlab-ci"
        const val GITHUB_ACTIONS = "github-actions"
        const val TRAVIS = "travis"
        const val K8S = "k8s"
        const val DOCKER = "docker"
        const val DRONE = "drone"
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        return listOf(CommitStats(
            numLinesAdded = files.map { it.getAllAdded().size }.sum(),
            numLinesDeleted = files.map { it.getAllDeleted().size }.sum(),
            type = ExtractorInterface.TYPE_LIBRARY,
            tech = DEVOPS + techName
        )).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }
    }
}


================================================
FILE: src/main/kotlin/app/extractors/ElixirExtractor.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

object ElixirExtractor : ExtractorBase(
    language = Lang.ELIXIR,
    importRegex = Regex("""^\s+(?:use|import|require) ([a-zA-Z_][a-zA-Z0-9_]*)"""),
    commentRegex = Regex("""#.*$"""))


================================================
FILE: src/main/kotlin/app/extractors/Extractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class Extractor : ExtractorInterface {
    companion object {
        val RESTRICTED_EXTS = listOf(".min.js")
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        return files
            .filter { file -> !RESTRICTED_EXTS.contains(file.extension) }
            .mapNotNull { file ->
                Heuristics.analyze(file)
            }
            .fold(mutableListOf()) { accStats, stats ->
                accStats.addAll(stats)
                accStats
            }
    }
}


================================================
FILE: src/main/kotlin/app/extractors/ExtractorBase.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

open class ExtractorBase(private val language: String,
                         private val importRegex: Regex,
                         private val commentRegex: Regex,
                         private val importStartsWith: Boolean = false) :
        ExtractorInterface {
    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val line = commentRegex.replace(it, "")
            val res = importRegex.find(line)
            if (res != null) {
                val lineLib = res.groupValues[1]
                imports.add(lineLib)
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String, startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = importStartsWith)
    }

    override fun getLanguageName(): String? {
        return language
    }
}


================================================
FILE: src/main/kotlin/app/extractors/ExtractorInterface.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app.extractors

import app.model.*

interface ExtractorInterface {
    companion object {
        const val TYPE_LANGUAGE = 1
        const val TYPE_LIBRARY = 2
        const val TYPE_KEYWORD = 3
        const val TYPE_SYNTAX = 4
        const val SEPARATOR = ">"

        private val classifierManager = ClassifierManager()

        val stringRegex = Regex("""(".+?"|'.+?')""")
        val splitRegex = Regex("""\s|,|;|\*|\n|\(|\)|\[|]|\{|}|\+|=|&|\$|""" +
            """!=|\.|>|<|#|@|:|\?|!""")
    }

    // Identify libs used in a line with classifiers.
    fun determineLibs(line: String, importedLibs: List<String>): List<String> {
        val lang = getLanguageName()
        if (lang != null) {
            return classifierManager.estimate(tokenize(line), importedLibs)
        }
        return listOf()
    }

    // Should be defined for each language otherwise libs extraction disabled.
    fun extractImports(fileContent: List<String>): List<String> {
        return listOf()
    }

    // Should be defined for additional statistics like keywords.
    fun extract(files: List<DiffFile>): List<CommitStats> {
        val lang = getLanguageName()
        if (lang != null) {
            files.forEach { file -> file.lang = lang }
        }

        return extractLangStats(files) + extractLibStats(files)
    }

    fun extractLangStats(files: List<DiffFile>): List<CommitStats> {
        return files.filter { file -> file.lang.isNotBlank() }
            .groupBy { file -> file.lang }
            .map { (language, files) -> CommitStats(
                numLinesAdded = files.fold(0) { total, file ->
                    total + file.getAllAdded().size },
                numLinesDeleted = files.fold(0) { total, file ->
                    total + file.getAllDeleted().size },
                type = TYPE_LANGUAGE,
                tech = language)
            }
    }

    fun extractLibStats(files: List<DiffFile>): List<CommitStats> {
        val oldLibs = extractLibsOfDiffs(files.map { Pair(it.lang, it.old) })
        val newLibs = extractLibsOfDiffs(files.map { Pair(it.lang, it.new) })

        val allLibsIds = oldLibs.keys + newLibs.keys

        return allLibsIds.map { libId -> CommitStats(
            numLinesAdded = newLibs.getOrDefault(libId, 0),
            numLinesDeleted = oldLibs.getOrDefault(libId, 0),
            type = TYPE_LIBRARY,
            tech = libId
        ) }.filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }
    }

    fun extractLibsOfDiffs(diffs: List<Pair<String, DiffContent>>):
        Map<String, Int> {
        val libsCount = mutableMapOf<String, Int>()

        // Extract imports from files.
        diffs.forEach { (_, diff) ->
            diff.imports = extractImports(diff.content)
        }

        // Skip library stats calculation if no imports found.
        if (!diffs.any({ (_, diff) -> diff.imports.isNotEmpty() })) {
            return mapOf()
        }

        // Determine libraries used in each line.
        diffs.filter { (lang, _) -> lang.isNotBlank() }
            .forEach { (lang, diff) ->
                val importedLibs = diff.imports.mapNotNull { import ->
                    mapImportToIndex(import, lang)
                }

                diff.getAllDiffs().forEach { line ->
                    determineLibs(line, importedLibs).forEach { libId ->
                        libsCount[libId] = libsCount.getOrDefault(libId, 0) + 1
                    }
                }
            }

        return libsCount
    }

    fun tokenize(line: String): List<String> {
        // TODO(lyaronskaya): Multiline comment regex.

        // TODO(anatoly): Optimize this regex, better to get rid of it.
        val newLine = stringRegex.replace(line, "")

        val tokens = newLine.split(' ', '[', ',', ';', '*', '\n', ')', '(',
            '[', ']', '}', '{', '+', '-', '=', '&', '$', '!', '.', '>', '<',
            '#', '@', ':', '?', ']')
            .filter {
                it.isNotBlank() && !it.contains('"') && !it.contains('\'') &&
                it != "-" && it != "@"
            }

        return tokens
    }

    fun getLanguageName(): String? {
        return null
    }

    fun mapImportToIndex(import: String, lang: String,
                         startsWith: Boolean = false): String? {
        val libsMeta = classifierManager.libsMeta
        if (!libsMeta.importToIndexMap.contains(lang)) return null

        if (startsWith) {
            val map = libsMeta.importToIndexMap[lang]
            val baseImports = map!!.keys.filter { import.startsWith(it) }
            if (baseImports.isEmpty()) {
                return null
            }
            val baseImport = baseImports.reduce { acc, s ->
                if (s.length > acc.length) s else acc
            }
            return map[baseImport]
        }

        return libsMeta.importToIndexMap[lang]!![import]
    }

}


================================================
FILE: src/main/kotlin/app/extractors/FSharpExtractor.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Tuomas Hietanen
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class FSharpExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.FSHARP
        val importRegex = Regex("""^.*open\s+(\w+[.\w+]*)""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val extractImportRegex = Regex("""open\s+(\w+[.\w+]*)""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                imports.add(res.groupValues[1])
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        // The behaviour of fsharp library classifier is the same as for csharp.
        return super.mapImportToIndex(import, Lang.CSHARP, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/GoExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class GoExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.GO
        val importRegex = Regex("""^(.*import)\s[^\n]*""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val singleImportRegex = Regex("""import\s+"(.+?)"""")
        val multipleImportRegex = Regex("""import[\s\t\n]+\((.+?)\)""",
                RegexOption.DOT_MATCHES_ALL)
        val separatorsRegex = Regex("""(\t+|\n+|\s+|")""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = singleImportRegex.find(it)
            if (res != null) {
                val lineLib = res.groupValues.last()
                imports.add(lineLib)
            }
        }
        val contentJoined = fileContent.joinToString(separator = "")
        multipleImportRegex.findAll(contentJoined).forEach { matchResult ->
            imports.addAll(matchResult.groupValues.last()
                .split(separatorsRegex)
                .filter { it.isNotEmpty() }
                .map { it.replace("\"", "") })
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/Heuristics.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

import app.model.DiffFile
import app.model.CommitStats

val ActionscriptRegex = Regex(
    "^\\s*(package\\s+[a-z0-9_\\.]+|import\\s+[a-zA-Z0-9_\\.]+;|class\\s+[A-Za-z0-9_]+\\s+extends\\s+[A-Za-z0-9_]+)",
    RegexOption.MULTILINE
)
val CoqRegex = Regex(
    """^Require\s""",
    RegexOption.MULTILINE
)
val CommonLispRegex = Regex(
    "^\\s*\\((defun|in-package|defpackage) ",
    setOf(RegexOption.MULTILINE, RegexOption.IGNORE_CASE)
)
val CppRegex = Regex(
    "(template |class |namespace |#include <c?std[^.]+>)",
    RegexOption.MULTILINE
)
val DRegex = Regex(
    "^module\\s+[\\w.]*\\s*;|import\\s+[\\w\\s,.:]*;|\\w+\\s+\\w+\\s*\\(.*\\)(?:\\(.*\\))?\\s*\\{[^}]*\\}|unittest\\s*(?:\\(.*\\))?\\s*\\{[^}]*\\}",
    RegexOption.MULTILINE
)
val DtraceRegex = Regex(
    "^(\\w+:\\w*:\\w*:\\w*|BEGIN|END|provider\\s+|(tick|profile)-\\w+\\s+\\{[^}]*\\}|#pragma\\s+D\\s+(option|attributes|depends_on)\\s|#pragma\\s+ident\\s)",
    RegexOption.MULTILINE
)
val FilterscriptRegex = Regex(
    "#include|#pragma\\s+(rs|version)|__attribute__"
)
val FSharpRegex = Regex(
    "^\\s*(#light|import|let|module|namespace|open|type)",
    RegexOption.MULTILINE
)
val ForthRegex = Regex(
    "^: "
)
val ForthFsRegex = Regex(
    "^(: |new-device)"
)
val FortranRegex = Regex(
    "^([c*][^abd-z]|      (subroutine|program|end|data)\\s|\\s*!)",
    RegexOption.IGNORE_CASE
)
val GlslRegex = Regex(
    "^\\s*(#version|precision|uniform|varying|vec[234])",
    RegexOption.IGNORE_CASE
)
val IdlRegex = Regex(
    "^\\s*function[ \\w,]+$",
    RegexOption.MULTILINE
)
val IniPropsRegex = Regex(
    "\\w+\\s*=\\s*",
    RegexOption.IGNORE_CASE
)
val LexRegex = Regex(
    "^(%[%{}]xs|<.*>)",
    RegexOption.MULTILINE
)
val LimboRegex = Regex(
    "^\\w+\\s*:\\s*module\\s*\\{",
    RegexOption.MULTILINE
)
val MathematicaRegex = Regex(
    "\\*\\)$",
    RegexOption.MULTILINE
)
val MatlabRegex = Regex(
    """(^\s*%)|(^end$)""",
    RegexOption.MULTILINE
)
val MRegexs = setOf(
    Regex(
        "^\\s*;",
        RegexOption.MULTILINE
    ),
    Regex(
        "^\\w+\\s;",
        RegexOption.MULTILINE
    )
)
val MakefileRegex = Regex(
    "([\\/\\\\].*:\\s+.*\\s\\\\$|: \\\\$|^ : |^[\\w\\s\\/\\\\.]+\\w+\\.\\w+\\s*:\\s+[\\w\\s\\/\\\\.]+\\w+\\.\\w+)"
)
val MufRegex =Regex(
    "^: ",
    RegexOption.MULTILINE
)
val NewLispRegex = Regex(
    "^\\s*\\(define ",
    RegexOption.MULTILINE
)
val NotSqlRegex = Regex(
    "begin|boolean|package|exception",
    RegexOption.IGNORE_CASE
)
val ObjectiveCRegex = Regex(
    "^\\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\\b|#import\\s+.+\\.h[\">])",
    RegexOption.MULTILINE
)
val OcamlRegex = Regex(
    "(^\\s*module)|let rec |match\\s+(\\S+\\s)+with",
    RegexOption.MULTILINE
)
val PascalRegex = Regex(
    "(^\\s*uses)|(function)|(program)",
    setOf(RegexOption.MULTILINE, RegexOption.IGNORE_CASE)
)
val Perl5Regex = Regex(
    "\\buse\\s+(?:strict\\b|v?5\\.)"
)
val Perl6Regex = Regex(
    "^\\s*(?:use\\s+v6\\b|\\bmodule\\b|\\b(?:my\\s+)?class\\b)",
    RegexOption.MULTILINE
)
val PhpRegex = Regex(
    "^<\\?(?:php)?"
)
val PhpIlluminateRegex = Regex(
    "(Auth|Bootstrap|Bus|Console|Events|Exceptions|Http|Providers" +
                "|Support|Testing|Validation)")
val PicoLispRegex = Regex(
    "^\\((de|class|rel|code|data|must)\\s",
    RegexOption.MULTILINE
)
val PlpgsqlRegexs = setOf(
    Regex(
        "^\\\\i\\b|AS \\$\\$|LANGUAGE '?plpgsql'?",
        setOf(RegexOption.MULTILINE, RegexOption.IGNORE_CASE)
    ),
    Regex(
        "SECURITY (DEFINER|INVOKER)",
        RegexOption.IGNORE_CASE
    ),
    Regex(
        "BEGIN( WORK| TRANSACTION)?;",
        RegexOption.IGNORE_CASE
    )
)
val PlsqlRegexs = setOf(
    Regex(
        "\\\$\\\$PLSQL_|XMLTYPE|sysdate|systimestamp|\\.nextval|connect by|AUTHID (DEFINER|CURRENT_USER)",
        RegexOption.IGNORE_CASE
    ),
    Regex(
        "constructor\\W+function",
        RegexOption.IGNORE_CASE
    )
)
val PovRaySdlRegex = Regex(
    "^\\s*#(declare|local|macro|while)\\s", RegexOption.MULTILINE
)
val PrologRegex = Regex(
    "^[^#]*:-",
    RegexOption.MULTILINE
)
val PythonRegex = Regex(
    "(^(import|from|class|def)\\s)",
    RegexOption.MULTILINE
)
val RRegex = Regex(
    "<-|^\\s*#"
)
val RebolRegex = Regex(
    "\\bRebol\\b",
    RegexOption.IGNORE_CASE
)
val RoffRegex = Regex(
    "^\\.[a-z][a-z](\\s|$)",
    setOf(RegexOption.MULTILINE, RegexOption.IGNORE_CASE)
)
val RustRegex = Regex(
    "^(use |fn |mod |pub |macro_rules|impl|#!?\\[)",
    RegexOption.MULTILINE
)
val RenderscriptRegex = Regex(
    "#include|#pragma\\s+(rs|version)|__attribute__"
)
val ScalaRegex = Regex(
    "^\\s*import (scala|java)\\./.match(data) || /^\\s*val\\s+\\w+\\s*=/.match(data) || /^\\s*class\\b",
    RegexOption.MULTILINE
)
val SmalltalkRegex = Regex(
    "![\\w\\s]+methodsFor: "
)
val SqlplRegexs = setOf(
    Regex(
        "(alter module)|(language sql)|(begin( NOT)+ atomic)",
        RegexOption.IGNORE_CASE
    ),
    Regex(
        "signal SQLSTATE '[0-9]+'",
        RegexOption.IGNORE_CASE
    )
)
val StandardMlRegex = Regex(
    "=> |case\\s+(\\S+\\s)+of"
)
val SupercolliderRegexs = setOf(
    Regex("\\^(this|super)\\."),
    Regex("^\\s*(\\+|\\*)\\s*\\w+\\s*\\{", RegexOption.MULTILINE),
    Regex("^\\s*~\\w+\\s*=\\.", RegexOption.MULTILINE)
)
val TexRegex = Regex(
    "\\\\\\w+\\{"
)
val TypescriptRegex = Regex(
    "^\\s*(import.+(from\\s+|require\\()['\"]react|\\/\\/\\/\\s*<reference\\s)",
    RegexOption.MULTILINE
)
val XmlPropsRegex = Regex(
    "^(\\s*)(<Project|<Import|<Property|<?xml|xmlns)",
    setOf(RegexOption.MULTILINE, RegexOption.IGNORE_CASE)
)
val XmltsRegex = Regex(
    "<TS\\b"
)
// Mystical \uFEFF 'ZERO WIDTH NO-BREAK SPACE' unicode character may appear
// in beginning of files.
val XmlRegex = Regex(
    "^\\uFEFF?\\s*<\\?xml\\s+version",
    setOf(RegexOption.MULTILINE, RegexOption.IGNORE_CASE)
)
val XpmRegex = Regex(
    "^\\s*\\/\\* XPM \\*\\/",
    RegexOption.MULTILINE
)

val k8sExp = { buf: String ->
    // Required fields in k8s config: apiVersion, kind, metadata.
    buf.contains("apiVersion") && buf.contains("kind")
        && buf.contains("metadata")
}

val bootstrapWebpackExp = { buf: String ->
    // Handling php projects with bootstrap Webpack.
    buf.contains("/******/ (function(modules) { // webpackBootstrap")
}

/**
 * Heuristics to detect a programming language by file extension and content.
 * Inspired by GitHub Liguist heuristics (https://github.com/github/linguist).
 */
object Heuristics
{
    /**
     * Returns a list of language commit stats extracted from the given file.
     */
    fun analyze(file: DiffFile) : List<CommitStats>? {
        val buf = toBuf(file.new.content)
        var extractor: ExtractorInterface? = null

        // Look for an extractor by a file extension. If failed, then fallback
        // to generic content analysis.
        val extractorFactory = HeuristicsMap[file.extension]
        if (extractorFactory != null) {
            extractor = extractorFactory(buf, file.path.toLowerCase())
        } else {
            if (XmlRegex.containsMatchIn(buf)) {
                extractor = CommonExtractor(Lang.XML)
            }
        }

        return extractor?.extract(listOf(file))
    }

    /**
     * Returns a portion of the file content not exceeding the limit.
     */
    private const val HEURISTICS_CONSIDER_BYTES = 50 * 1024
    private fun toBuf(lines: List<String>) : String {
        var buf = ""
        for (line in lines) {
            buf += "$line\n"
            if (buf.length > HEURISTICS_CONSIDER_BYTES) {
                break
            }
        }
        return buf
    }
}

/**
 * A map of file extensions to language extracters.
 */
val HeuristicsMap = mapOf<String, (String, String) -> ExtractorInterface?>(
    "4" to { _, _ ->
        CommonExtractor(Lang.ROFF)
    },
    "4th" to { _, _ ->
        CommonExtractor(Lang.FORTH)
    },
    "a51" to { _, _ ->
        CommonExtractor(Lang.ASSEMBLY)
    },
    "al" to { _, _ ->
        PerlExtractor(Lang.PERL)
    },
    "as" to { buf, _ ->
        if (ActionscriptRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.ACTIONSCRIPT)
        } else CommonExtractor(Lang.ANGELSCRIPT)
    },
    "asm" to { _, _ ->
        CommonExtractor(Lang.ASSEMBLY)
    },
    "b" to { _, _ ->
        CommonExtractor(Lang.LIMBO)
    },
    "bas" to { _, _ ->
        CommonExtractor(Lang.VISUALBASIC)
    },
    "bat" to { _, _ ->
        CommonExtractor(Lang.DOSBATCH)
    },
    "bbx" to { _, _ ->
        CommonExtractor(Lang.TEX)
    },
    "bdy" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "boot" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "c" to { _, _ ->
        CExtractor()
    },
    "cake" to { _, _ ->
        CSharpExtractor()
    },
    "cbl" to { _, _ ->
        CommonExtractor(Lang.COBOL)
    },
    "cbx" to { _, _ ->
        CommonExtractor(Lang.TEX)
    },
    "cc" to { _, _ ->
        CppExtractor()
    },
    "cgi" to { buf, _ ->
        if (Perl5Regex.containsMatchIn(buf)) {
            PerlExtractor(Lang.PERL)
        } else null
    },
    "cl" to { _, _ ->
        CommonExtractor(Lang.COMMONLISP)
    },
    "cl2" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "clj" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "cljc" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "cljscm" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "cljs" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "cljx" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "cls" to { buf, _ ->
        if (TexRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.TEX)
        } else {
            CommonExtractor(Lang.VISUALBASIC)
        }
    },
    "cob" to { _, _ ->
        CommonExtractor(Lang.COBOL)
    },
    "coffee" to { _, _ ->
        CommonExtractor(Lang.COFFEESCRIPT)
    },
    "cp" to { _, _ ->
        CppExtractor()
    },
    "cpp" to { _, _ ->
        CppExtractor()
    },
    "cr" to { _, _ ->
        CrystalExtractor()
    },
    "cpy" to { _, _ ->
        CommonExtractor(Lang.COBOL)
    },
    "cql" to { _, _ ->
        CommonExtractor(Lang.SQL)
    },
    "cs" to { buf, _ ->
        if (SmalltalkRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.SMALLTALK)
        } else {
            CSharpExtractor()
        }
    },
    "cshtml" to { _, _ ->
        CSharpExtractor()
    },
    "css" to { _, _ ->
        CssExtractor()
    },
    "csx" to { _, _ ->
        CSharpExtractor()
    },
    "cu" to { _, _ ->
        CommonExtractor(Lang.CUDA)
    },
    "cuh" to { _, _ ->
        CommonExtractor(Lang.CUDA)
    },
    "cxx" to { _, _ ->
        CppExtractor()
    },
    "c++" to { _, _ ->
        CppExtractor()
    },
    "d" to { buf, _ ->
        if (DRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.D)
        } else if (DtraceRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.DTRACE)
        } else if (MakefileRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.MAKEFILE)
        } else null
    },
    "dart" to { _, _ ->
        DartExtractor
    },
    "db2" to { _, _ ->
        CommonExtractor(Lang.SQLPL)
    },
    "ddl" to { buf, _ ->
        if (PlsqlRegexs.any { re -> re.containsMatchIn(buf)}) {
            CommonExtractor(Lang.PLSQL)  // Oracle
        } else if (!NotSqlRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.SQL)  // Generic SQL
        } else null
    },
    "dlm" to { _, _ ->
        CommonExtractor(Lang.IDL)
    },
    "dm" to { _, _ ->
        DMExtractor()
    },
    "dmm" to { _, _ ->
        DMExtractor()
    },
    "dmi" to { _, _ ->
        DMExtractor()
    },
    "dpr" to { _, _ ->
        CommonExtractor(Lang.PASCAL)
    },
    "edn" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "el" to { _, _ ->
        CommonExtractor(Lang.EMACSLISP)
    },
    "elc" to { _, _ ->
        CommonExtractor(Lang.EMACSLISP)
    },
    "eliom" to { _, _ ->
        CommonExtractor(Lang.OCAML)
    },
    "elm" to { _, _ ->
        CommonExtractor(Lang.ELM)
    },
    "erl" to { _, _ ->
        CommonExtractor(Lang.ERLANG)
    },
    "ex" to { _, _ ->
        ElixirExtractor
    },
    "exs" to { _, _ ->
        ElixirExtractor
    },
    "f" to { buf, _ ->
        if (ForthRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.FORTH)
        } else if (buf.contains("flowop")) {
            CommonExtractor(Lang.FILEBENCHWML)
        } else if (FortranRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.FORTRAN)
        } else null
    },
    "f03" to { _, _ ->
        CommonExtractor(Lang.FORTRAN)
    },
    "f08" to { _, _ ->
        CommonExtractor(Lang.FORTRAN)
    },
    "f15" to { _, _ ->
        CommonExtractor(Lang.FORTRAN)
    },
    "f90" to { _, _ ->
        CommonExtractor(Lang.FORTRAN)
    },
    "f95" to { _, _ ->
        CommonExtractor(Lang.FORTRAN)
    },
    "factor" to { _, _ ->
        CommonExtractor(Lang.FACTOR)
    },
    "fcgi" to { buf, _ ->
        if (Perl5Regex.containsMatchIn(buf)) {
            PerlExtractor(Lang.PERL)
        } else {
            CommonExtractor(Lang.LUA)
        }
    },
    "fnc" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "for" to { buf, _ ->
        if (ForthRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.FORTH)
        } else if (FortranRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.FORTRAN)
        } else null
    },
    "forth" to { _, _ ->
        CommonExtractor(Lang.FORTH)
    },
    "fp" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "fr" to { _, _ ->
        CommonExtractor(Lang.FORTH)
    },
    "frag" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "frg" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "frt" to { _, _ ->
        CommonExtractor(Lang.FORTH)
    },
    "fs" to { buf, _ ->
        if (ForthFsRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.FORTH)
        } else if (FSharpRegex.containsMatchIn(buf)) {
            FSharpExtractor()
        } else if (GlslRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.GLSL)
        } else if (FilterscriptRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.FILTERSCRIPT)
        } else null
    },
    "fsh" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "fsx" to { _, _ ->
        FSharpExtractor()
    },
    "fth" to { _, _ ->
        CommonExtractor(Lang.FORTH)
    },
    "fxml" to { _, _ ->
        CommonExtractor(Lang.XML)
    },
    "glsl" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "go" to { _, _ ->
        GoExtractor()
    },
    "gradle" to { _, _ ->
        CommonExtractor(Lang.GRADLE)
    },
    "groovy" to { _, _ ->
        CommonExtractor(Lang.GROOVY)
    },
    "h" to { buf, _ ->
        if (ObjectiveCRegex.containsMatchIn(buf)) {
            ObjectiveCExtractor()
        } else if (CppRegex.containsMatchIn(buf)) {
            CppExtractor()
        } else CExtractor()
    },
    "h++" to { _, _ ->
        CppExtractor()
    },
    "hh" to { _, _ ->
        CppExtractor()
    },
    "hic" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "hl" to { _, _ ->
        CommonExtractor(Lang.CLOJURE)
    },
    "hpp" to { _, _ ->
        CppExtractor()
    },
    "htm" to { _, _ ->
        CommonExtractor(Lang.HTML)
    },
    "html" to { _, _ ->
        CommonExtractor(Lang.HTML)
    },
    "hs" to { _, _ ->
        CommonExtractor(Lang.HASKELL)
    },
    "hrl" to { _, _ ->
        CommonExtractor(Lang.ERLANG)
    },
    "hx" to { _, _ ->
        CommonExtractor(Lang.HAXE)
    },
    "hxx" to { _, _ ->
        CppExtractor()
    },
    "hy" to { _, _ ->
        CommonExtractor(Lang.HY)
    },
    "ijs" to { _, _ ->
        CommonExtractor(Lang.J)
    },
    "inc" to { buf, _ ->
        if (PhpRegex.containsMatchIn(buf)) {
            PhpExtractor()
        } else if (PovRaySdlRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.POVRAYSDL)
        } else if (PascalRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.PASCAL)
        } else {
            CommonExtractor(Lang.ASSEMBLY)
        }
    },
    "inl" to { _, _ ->
        CppExtractor()
    },
    "ino" to { _, _ ->
        CommonExtractor(Lang.ARDUINO)
    },
    "ipynb" to { _, _ ->
        IPythonExtractor()
    },
    "java" to { _, _ ->
        JavaExtractor()
    },
    "jl" to { _, _ ->
        CommonExtractor(Lang.JULIA)
    },
    "js" to { buf, _ ->
        if (bootstrapWebpackExp(buf)) {
            null
        }
        else JavascriptExtractor()
    },
    "jsx" to { _, _ ->
        JavascriptExtractor()
    },
    "kt" to { _, _ ->
        KotlinExtractor()
    },
    "kojo" to { _, _ ->
        ScalaExtractor
    },
    "l" to { buf, _ ->
        if (CommonLispRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.COMMONLISP)
        } else if (LexRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.LEX)
        } else if (RoffRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.ROFF)
        } else if (PicoLispRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.PICOLISP)
        } else null
    },
    "lbx" to { _, _ ->
        CommonExtractor(Lang.TEX)
    },
    "less" to { _, _ ->
        CssExtractor()
    },
    "lhs" to { _, _ ->
        CommonExtractor(Lang.HASKELL)
    },
    "lisp" to { buf, _ ->
        if (CommonLispRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.COMMONLISP)
        } else if (NewLispRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.NEWLISP)
        } else null
    },
    "litcoffee" to { _, _ ->
        CommonExtractor(Lang.COFFEESCRIPT)
    },
    "lsp" to { buf, _ ->
        if (CommonLispRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.COMMONLISP)
        } else if (NewLispRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.NEWLISP)
        } else null
    },
    "lua" to { _, _ ->
        CommonExtractor(Lang.LUA)
    },
    "m" to { buf, _ ->
        if (ObjectiveCRegex.containsMatchIn(buf)) {
            ObjectiveCExtractor()
        } else if (buf.contains(":- module")) {
            CommonExtractor(Lang.MERCURY)
        } else if (MufRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.MUF)
        } else if (MRegexs.any { re -> re.containsMatchIn(buf)}) {
            CommonExtractor(Lang.M)
        } else if (MathematicaRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.MATHEMATICA)
        } else if (MatlabRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.MATLAB)
        } else if (LimboRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.LIMBO)
        } else {
            CommonExtractor(Lang.WOLFRAM)
        }
    },
    "make" to { _, _ ->
        CommonExtractor(Lang.MAKEFILE)
    },
    "makefile" to { _, _ ->
        CommonExtractor(Lang.MAKEFILE)
    },
    "mat" to { _, _ ->
        CommonExtractor(Lang.MATLAB)
    },
    "mjml" to { _, _ ->
        CommonExtractor(Lang.XML)
    },
    "ml" to { buf, _ ->
        if (OcamlRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.OCAML)
        } else if (StandardMlRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.STANDARDML)
        } else null
    },
    "mli" to { _, _ ->
        CommonExtractor(Lang.OCAML)
    },
    "mlx" to { _, _ ->
        CommonExtractor(Lang.MATLAB)
    },
    "mm" to { _, _ ->
        ObjectiveCExtractor()
    },
    "ms" to { _, _ ->
        CommonExtractor(Lang.ROFF)
    },
    "mt" to { _, _ ->
        CommonExtractor(Lang.MATHEMATICA)
    },
    "muf" to { _, _ ->
        CommonExtractor(Lang.MUF)
    },
    "mysql" to { _, _ ->
        CommonExtractor(Lang.SQL)
    },
    "n" to { _, _ ->
        CommonExtractor(Lang.ROFF)
    },
    "nasm" to { _, _ ->
        CommonExtractor(Lang.ASSEMBLY)
    },
    "nb" to { buf, _ ->
        if (MathematicaRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.MATHEMATICA)
        } else CommonExtractor(Lang.WOLFRAM)
    },
    "nl" to { _, _ ->
        CommonExtractor(Lang.NEWLISP)
    },
    "nr" to { _, _ ->
        CommonExtractor(Lang.ROFF)
    },
    "oxygene" to { _, _ ->
        CommonExtractor(Lang.OXYGENE)
    },
    "P" to { _, _ ->
        CommonExtractor(Lang.PROLOG)
    },
    "p6" to { _, _ ->
        PerlExtractor(Lang.PERL6)
    },
    "p8" to { _, _ ->
        CommonExtractor(Lang.LUA)
    },
    "pas" to { _, _ ->
        CommonExtractor(Lang.PASCAL)
    },
    "pascal" to { _, _ ->
        CommonExtractor(Lang.PASCAL)
    },
    "pck" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "pd_lua" to { _, _ ->
        CommonExtractor(Lang.LUA)
    },
    "pde" to { _, _ ->
        CommonExtractor(Lang.PROCESSING)
    },
    "php" to { buf, path ->
        if (buf.contains("<?hh")) {
            CommonExtractor(Lang.HACK)
        } else if (PhpIlluminateRegex.containsMatchIn(path)) {
            null
        }
        else {
            PhpExtractor()
        }
    },
    "phtml" to { _, _ ->
        PhpExtractor()
    },
    "php3" to { _, _ ->
        PhpExtractor()
    },
    "php4" to { _, _ ->
        PhpExtractor()
    },
    "php5" to { _, _ ->
        PhpExtractor()
    },
    "phps" to { _, _ ->
        PhpExtractor()
    },
    "pkb" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "pks" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "pl" to { buf, _ ->
        if (PrologRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.PROLOG)
        } else if (Perl6Regex.containsMatchIn(buf)) {
            PerlExtractor(Lang.PERL6)
        } else {
            PerlExtractor(Lang.PERL)
        }
    },
    "plb" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "pls" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "plsql" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "pm" to { buf, _ ->
        if (Perl5Regex.containsMatchIn(buf)) {
            PerlExtractor(Lang.PERL)
        } else if (Perl6Regex.containsMatchIn(buf)) {
            PerlExtractor(Lang.PERL6)
        } else if (XpmRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.XPM)
        } else null
    },
    "pm6" to { _, _ ->
        PerlExtractor(Lang.PERL6)
    },
    "pom" to { _, _ ->
        CommonExtractor(Lang.MAVENPOM)
    },
    "pov" to { _, _ ->
        CommonExtractor(Lang.POVRAYSDL)
    },
    "pp" to { buf, _ ->
        if (PascalRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.PASCAL)
        } else {
            CommonExtractor(Lang.PUPPET)
        }
    },
    "prc" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "pro" to { buf, _ ->
        if (PrologRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.PROLOG)
        } else if (buf.contains("last_client=")) {
            CommonExtractor(Lang.INI)
        } else if (buf.contains("HEADERS") || buf.contains("SOURCES")) {
            CommonExtractor(Lang.QMAKE)
        } else if (IdlRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.IDL)
        } else null
    },
    "prolog" to { _, _ ->
        CommonExtractor(Lang.PROLOG)
    },
    "props" to { buf, _ ->
        if (XmlPropsRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.XML)
        } else if (IniPropsRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.INI)
        } else null
    },
    "ps1" to { _, _ ->
        CommonExtractor(Lang.POWERSHELL)
    },
    "psd1" to { _, _ ->
        CommonExtractor(Lang.POWERSHELL)
    },
    "psm1" to { _, _ ->
        CommonExtractor(Lang.POWERSHELL)
    },
    "py" to { _, _ ->
        PythonExtractor()
    },
    "py3" to { _, _ ->
        PythonExtractor()
    },
    "qml" to { _, _ ->
        CommonExtractor(Lang.QML)
    },
    "r" to { buf, _ ->
        if (RebolRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.REBOL)
        } else if (RRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.R)
        } else null
    },
    "r2" to { _, _ ->
        CommonExtractor(Lang.REBOL)
    },
    "r3" to { _, _ ->
        CommonExtractor(Lang.REBOL)
    },
    "rb" to { _, _ ->
        RubyExtractor()
    },
    "rbw" to { _, _ ->
        RubyExtractor()
    },
    "rd" to { _, _ ->
        CommonExtractor(Lang.R)
    },
    "re" to { _, _ ->
        CommonExtractor(Lang.OCAML)
    },
    "reb" to { _, _ ->
        CommonExtractor(Lang.REBOL)
    },
    "rebol" to { _, _ ->
        CommonExtractor(Lang.REBOL)
    },
    "rno" to { _, _ ->
        CommonExtractor(Lang.ROFF)
    },
    "rpy" to { buf, _ ->
        if (PythonRegex.containsMatchIn(buf)) {
            PythonExtractor()
        } else CommonExtractor(Lang.RENPY)
    },
    "rs" to { buf, _ ->
        if (RustRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.RUST)
        } else if (RenderscriptRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.RENDERSCRIPT)
        } else null
    },
    "rsh" to { _, _ ->
        CommonExtractor(Lang.RENDERSCRIPT)
    },
    "rsx" to { _, _ ->
        CommonExtractor(Lang.R)
    },
    "s" to { _, _ ->
        CommonExtractor(Lang.ASSEMBLY)
    },
    "sas" to { _, _ ->
        CommonExtractor(Lang.SAS)
    },
    "sass" to { _, _ ->
        CssExtractor()
    },
    "sbt" to { _, _ ->
        ScalaExtractor
    },
    "sc" to { buf, _ ->
        if (SupercolliderRegexs.any { re -> re.containsMatchIn(buf) }) {
            CommonExtractor(Lang.SUPERCOLLIDER)
        } else if (ScalaRegex.containsMatchIn(buf)) {
            ScalaExtractor
        } else null
    },
    "scala" to { _, _ ->
        ScalaExtractor
    },
    "scd" to { _, _ ->
        CommonExtractor(Lang.SUPERCOLLIDER)
    },
    "sch" to { _, _ ->
        CommonExtractor(Lang.SCHEME)
    },
    "scm" to { _, _ ->
        CommonExtractor(Lang.SCHEME)
    },
    "scss" to { _, _ ->
        CssExtractor()
    },
    "sexp" to { _, _ ->
        CommonExtractor(Lang.COMMONLISP)
    },
    "sh" to { _, _ ->
        CommonExtractor(Lang.SHELL)
    },
    "shader" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "sld" to { _, _ ->
        CommonExtractor(Lang.SCHEME)
    },
    "sls" to { _, _ ->
        CommonExtractor(Lang.SCHEME)
    },
    "sol" to { _, _ ->
        CommonExtractor(Lang.SOLIDITY)
    },
    "spc" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "sps" to { _, _ ->
        CommonExtractor(Lang.SCHEME)
    },
    "sql" to { buf, _ ->
        if (PlpgsqlRegexs.any { re -> re.containsMatchIn(buf)}) {
            PlpgsqlExtractor  // PostgreSQL.
        } else if (SqlplRegexs.any { re -> re.containsMatchIn(buf)}) {
            CommonExtractor(Lang.SQLPL)  // IBM DB2.
        } else if (PlsqlRegexs.any { re -> re.containsMatchIn(buf)}) {
            CommonExtractor(Lang.PLSQL)  // Oracle.
        } else {
            CommonExtractor(Lang.SQL)  // Generic SQL.
        }
    },
    "ss" to { _, _ ->
        CommonExtractor(Lang.SCHEME)
    },
    "st" to { _, _ ->
        CommonExtractor(Lang.SMALLTALK)
    },
    "swift" to { _, _ ->
        SwiftExtractor
    },
    "t" to { buf, _ ->
        if (Perl6Regex.containsMatchIn(buf)) {
            PerlExtractor(Lang.PERL6)
        } else {
            PerlExtractor(Lang.PERL)
        }
    },
    "tab" to { _, _ ->
        CommonExtractor(Lang.SQL)
    },
    "tcl" to { _, _ ->
        CommonExtractor(Lang.TCL)
    },
    "tesc" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "tese" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "tex" to { _, _ ->
        CommonExtractor(Lang.TEX)
    },
    "tmac" to { _, _ ->
        CommonExtractor(Lang.ROFF)
    },
    "toc" to { _, _ ->
        CommonExtractor(Lang.TEX)
    },
    "tpb" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "tps" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "trg" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "ts" to { buf, _ ->
        if (XmltsRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.XML)
        } else {
            TypescriptExtractor()
        }
    },
    "tsx" to { buf, _ ->
        if (TypescriptRegex.containsMatchIn(buf)) {
            TypescriptExtractor()
        } else if (XmlRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.XML)
        } else null
    },
    "udf" to { _, _ ->
        CommonExtractor(Lang.SQL)
    },
    "ux" to { _, _ ->
        CommonExtractor(Lang.XML)
    },
    "v" to { buf, _ ->
        if (CoqRegex.containsMatchIn(buf)) {
            CommonExtractor(Lang.COQ)
        } else {
            CommonExtractor(Lang.VERILOG)
        }
    },
    "vb" to { _, _ ->
        CommonExtractor(Lang.VISUALBASIC)
    },
    "vba" to { _, _ ->
        CommonExtractor(Lang.VBA)
    },
    "vhdl" to { _, _ ->
        CommonExtractor(Lang.VHDL)
    },
    "vbhtml" to { _, _ ->
        CommonExtractor(Lang.VISUALBASIC)
    },
    "vim" to { _, _ ->
        CommonExtractor(Lang.VIML)
    },
    "viw" to { _, _ ->
        CommonExtractor(Lang.SQL)
    },
    "vrx" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "vsh" to { _, _ ->
        CommonExtractor(Lang.GLSL)
    },
    "vue" to { _, _ ->
        JavascriptExtractor()
    },
    "svelte" to { _, _ ->
        JavascriptExtractor()
    },
    "vw" to { _, _ ->
        CommonExtractor(Lang.PLSQL)
    },
    "wl" to { _, _ ->
        CommonExtractor(Lang.MATHEMATICA)
    },
    "wlt" to { _, _ ->
        CommonExtractor(Lang.MATHEMATICA)
    },
    "xml" to { _, _ ->
        CommonExtractor(Lang.XML)
    },
    "xpm" to { _, _ ->
        CommonExtractor(Lang.XPM)
    },
    "xtend" to { _, _ ->
        CommonExtractor(Lang.XTEND)
    },
    "yap" to { _, _ ->
        CommonExtractor(Lang.PROLOG)
    },
    // DevOps.
    "yaml" to { buf, _ ->
        when {
            k8sExp(buf) -> {
                DevopsExtractor(DevopsExtractor.K8S)
            }
            else -> null
        }
    },
    "yml" to { buf, path ->
        when {
            path.endsWith("docker-compose.yml") -> {
                DevopsExtractor(DevopsExtractor.DOCKER)
            }
            path.endsWith(".gitlab-ci.yml") -> {
                DevopsExtractor(DevopsExtractor.GITLAB_CI)
            }
            path.endsWith(".travis.yml") -> {
                DevopsExtractor(DevopsExtractor.TRAVIS)
            }
            path.endsWith(".circleci/config.yml") -> {
                DevopsExtractor(DevopsExtractor.CIRCLECI)
            }
            path.endsWith(".drone.yml") -> {
                DevopsExtractor(DevopsExtractor.DRONE)
            }
            path.contains(".github/workflows/") -> {
                DevopsExtractor(DevopsExtractor.GITHUB_ACTIONS)
            }
            k8sExp(buf) -> {
                DevopsExtractor(DevopsExtractor.K8S)
            }
            else -> null
        }
    },
    "json" to { buf, _ ->
        when {
            k8sExp(buf) -> {
                DevopsExtractor(DevopsExtractor.K8S)
            }
            else -> null
        }
    },
    "dockerfile" to { _, _ ->
        DevopsExtractor(DevopsExtractor.DOCKER)
    },
    "jenkinsfile" to { _, _ ->
        DevopsExtractor(DevopsExtractor.JENKINS)
    },
    "" to { _, path ->
        when {
            path.endsWith("dockerfile") -> {
                DevopsExtractor(DevopsExtractor.DOCKER)
            }
            path.endsWith("jenkinsfile") -> {
                DevopsExtractor(DevopsExtractor.JENKINS)
            }
            else -> null
        }
    }
)


================================================
FILE: src/main/kotlin/app/extractors/IPythonExtractor.kt
================================================
// Copyright 2019 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffContent
import app.model.DiffFile
import app.model.DiffRange
import org.json.JSONObject

class IPythonExtractor : ExtractorInterface{
    companion object {
        const val LANGUAGE_NAME = Lang.PYTHON
        private val pythonExtractor = PythonExtractor()
    }

    private fun getCodeContent(diffContent: DiffContent): DiffContent {
        if (diffContent.content.isEmpty()) {
            return diffContent
        }

        val code = JSONObject(
            diffContent.content.joinToString("\n"))
        .optJSONArray("cells")?.let {
            0.until(it.length()).map { i -> it.optJSONObject(i) }
        }?.filter {
            it.optString("cell_type") == "code"
        }?.filter {
            it.optJSONArray("source") != null
        }?.map { it.optJSONArray("source").map {line -> line.toString()}}

        val content = code?.fold(mutableListOf()) {
                acc: MutableList<String>, x: List<String> ->
                acc.addAll(x)
                acc
            } ?: listOf<String>()

        return DiffContent(content = content,
                           ranges = listOf(DiffRange(0, content.size)),
                           imports = diffContent.imports)
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        files.forEach { file ->
            file.old = getCodeContent(file.old)
            file.new = getCodeContent(file.new)
            file.lang = LANGUAGE_NAME
        }
        return pythonExtractor.extract(files)
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        return pythonExtractor.extractImports(fileContent)
    }

    override fun tokenize(line: String): List<String> {
        return pythonExtractor.tokenize(line)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/JavaExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class JavaExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.JAVA
        val KEYWORDS = listOf("abstract", "continue", "for", "new", "switch",
            "assert", "default", "goto", "package", "synchronized", "boolean",
            "do", "if", "private", "this", "break", "double", "implements",
            "protected", "throw", "byte", "else", "import", "public", "throws",
            "case", "enum", "instanceof", "return", "transient", "catch",
            "extends", "int", "short", "try", "char", "final", "interface",
            "static", "void", "class", "finally", "long", "strictfp",
            "volatile", "const", "float", "native", "super", "while")
        val importRegex = Regex("""^(.*import)\s[^\n]*""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val packageRegex = Regex("""^(.*package)\s[^\n]*""")
        val extractImportRegex = Regex("""import\s+(\w+[.\w+]*)""")
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        val stats = super.extract(files).toMutableList()

        // Keywords stats.
        val added = files.fold(mutableListOf<String>(), { total, file ->
            total.addAll(file.getAllAdded())
            total
        })
        val deleted = files.fold(mutableListOf<String>(), { total, file ->
            total.addAll(file.getAllDeleted())
            total
        })

        KEYWORDS.forEach { keyword ->
            val totalAdded = added.count { line -> line.contains(keyword)}
            val totalDeleted = deleted.count { line -> line.contains(keyword)}
            if (totalAdded > 0 || totalDeleted > 0) {
                stats.add(CommitStats(
                    numLinesAdded = totalAdded,
                    numLinesDeleted = totalDeleted,
                    type = ExtractorInterface.TYPE_KEYWORD,
                    tech = LANGUAGE_NAME + ExtractorInterface.SEPARATOR +
                        keyword
                ))
            }
        }

        return stats
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val importedName = res.groupValues[1]
                imports.add(importedName)
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        newLine = packageRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/JavascriptExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class JavascriptExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.JAVASCRIPT
        val splitRegex = Regex("""\s+|,|;|:|\*|\n|\(|\)|\[|]|\{|}|\+|=|\.|>|<|#|@|\$""")
        val multilineCommentRegex = Regex("""/\*.+?\*/""")
        val twoOrMoreWordsRegex = Regex("""(".+?\s.+?"|'.+?\s.+?')""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val line = fileContent.map { line -> commentRegex.replace(line, "") }
                       .joinToString(separator = " ").toLowerCase()
        val fileTokens = multilineCommentRegex.replace(
            twoOrMoreWordsRegex.replace(line, ""), "").split(splitRegex)
        return fileTokens.distinct()
    }

    override fun extractLibStats(files: List<DiffFile>): List<CommitStats> {
        val vueExtension = ".vue"
        val svelteExtension = ".svelte"
        val quasarConf = "quasar.conf.js"

        val vueFiles = files.filter { it.path.endsWith(vueExtension) }
        val svelteFiles = files.filter { it.path.endsWith(svelteExtension) }
        val quasarFile = files.find { it.path.endsWith(quasarConf) }
        val otherFiles = files.filter {
            !it.path.endsWith(vueExtension) &&
            !it.path.endsWith(svelteExtension) &&
            !it.path.endsWith(quasarConf)
        }

        // Add stats from *.vue files.
        val vueStats = listOf(CommitStats(
            numLinesAdded = vueFiles.map { it.getAllAdded().size }.sum(),
            numLinesDeleted = vueFiles.map { it.getAllDeleted().size }.sum(),
            type = ExtractorInterface.TYPE_LIBRARY,
            tech = "js.vue"
        )).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }

        // Add stats from *.svelte files.
        val svelteStats = listOf(CommitStats(
            numLinesAdded = svelteFiles.map { it.getAllAdded().size }.sum(),
            numLinesDeleted = svelteFiles.map { it.getAllDeleted().size }.sum(),
            type = ExtractorInterface.TYPE_LIBRARY,
            tech = "js.svelte"
        )).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }

        var stats = vueStats + svelteStats + super.extractLibStats(otherFiles)
        if (quasarFile == null) {
            return stats;
        }

        val quasarStats = listOf(CommitStats(
            numLinesAdded = quasarFile.getAllAdded().size,
            numLinesDeleted = quasarFile.getAllDeleted().size,
            type = ExtractorInterface.TYPE_LIBRARY,
            tech = "js.quasar"
        )).filter { it.numLinesAdded > 0 || it.numLinesDeleted > 0 }

        return quasarStats + stats;
    }

    override fun tokenize(line: String): List<String> {
        return super.tokenize(commentRegex.replace(line, ""))
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/KotlinExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class KotlinExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.KOTLIN
        val importRegex = Regex("""^(.*import)\s[^\n]*""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val packageRegex = Regex("""^(.*package)\s[^\n]*""")
        val extractImportRegex = Regex("""import\s+(\w+[.\w+]*)""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val importedName = res.groupValues[1]
                imports.add(importedName)
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        newLine = packageRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/Languages.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

object Lang {
    const val ACTIONSCRIPT = "actionscript"  // ActionScript
    const val ANGELSCRIPT = "angelscript"  // AngelScript
    const val ASSEMBLY = "assembly"  // Assembly
    const val ARDUINO = "arduino"  // Arduino
    const val C = "c"  // C
    const val COQ = "coq"  // Coq
    const val CPP = "cpp"  // C++
    const val CRYSTAL = "crystal"  // Crystal
    const val CSHARP = "csharp"  // C#
    const val CSS = "css"  // CSS
    const val CLOJURE = "clojure"  // Clojure
    const val COBOL = "cobol"  // COBOL
    const val COFFEESCRIPT = "coffeescript"  // CoffeeScript
    const val COMMONLISP = "lisp"  // Common Lisp
    const val CUDA = "cuda"  // Cuda
    const val D = "d"  // D
    const val DART = "dart"  // Dart
    const val DM = "dm"  // DM Language
    const val DOSBATCH = "dosbatch"  // DOS Batch
    const val DTRACE = "dtrace"  // DTrace
    const val ELIXIR = "elixir"  // Elixir
    const val ELM = "elm"  // Elm
    const val EMACSLISP = "emacslisp"  // Emacs Lisp
    const val ERLANG = "erlang"  // Erlang
    const val FACTOR = "factor"  // Factor
    const val FILEBENCHWML = "filebench_wml"  // Filebench WML
    const val FILTERSCRIPT = "filterscript"  // Filterscript
    const val FORTH = "forth"  // Forth
    const val FORTRAN = "fortran"  // Fortran
    const val FSHARP = "fsharp"  // F#
    const val GLSL = "glsl"  // GLSL
    const val GO = "go"  // Go
    const val GRADLE = "gradle"  // Gradle
    const val GROOVY = "groovy"  // Groovy
    const val HACK = "hack"  // Hack
    const val HASKELL = "haskell"  // Haskell
    const val HAXE = "haxe"  // Haxe
    const val HTML = "html"  // HTML
    const val HY = "hy"  // Hy
    const val IDL = "idl"  // IDL
    const val INI = "ini"  // INI
    const val J = "j"  // J
    const val JAVA = "java"  // Java
    const val JAVASCRIPT = "javascript"  // JavaScript
    const val JULIA = "julia"  // Julia
    const val KOTLIN = "kotlin"  // Kotlin
    const val LIMBO = "limbo"  // Limbo
    const val LEX = "lex"  // Lex
    const val LUA = "lua"  // Lua
    const val M = "m"  // M
    const val MAKEFILE = "makefile"  // Makefile
    const val MATHEMATICA = "mathematica"  // Mathematica
    const val MATLAB = "matlab"  // Matlab
    const val MAVENPOM = "maven"  // Maven POM
    const val MUF = "muf"  // MUF
    const val MERCURY = "mercury"  // Mercury
    const val NEWLISP = "newlisp"  // NewLisp
    const val OBJECTIVEC = "objectivec"  // Objective-C
    const val OCAML = "ocaml"  // OCaml
    const val OXYGENE = "oxygene"  // Oxygene
    const val PASCAL = "pascal"  // Pascal
    const val PERL = "perl"  // Perl
    const val PERL6 = "perl6"  // Perl 6
    const val PHP = "php"  // PHP
    const val PICOLISP = "picolisp"  // PicoLisp
    const val PLPGSQL = "plpgsql"  // PLpgSQL
    const val PLSQL = "plsql"  // PLSQL
    const val POVRAYSDL = "pov-ray_sdl"  // POV-Ray SDL
    const val POWERSHELL = "powershell"  // PowerShell
    const val PUPPET = "puppet"  // Puppet
    const val PROCESSING = "processing"  // Processing
    const val PROLOG = "prolog"  // Prolog
    const val PYTHON = "python"  // Python
    const val QMAKE = "qmake"  // QMake
    const val QML = "qml"  // QML
    const val R = "r"  // R
    const val REBOL = "rebol"  // Rebol
    const val RENDERSCRIPT = "renderscript"  // RenderScript
    const val RENPY = "renpy"  // Ren'Py
    const val ROFF = "roff"  // Roff
    const val RUBY = "ruby"  // Ruby
    const val RUST = "rust"  // Rust
    const val SAS = "sas"  // SAS
    const val SCALA = "scala"  // Scala
    const val SCHEME = "scheme"  // Scheme
    const val SHELL = "shell"  // Shell
    const val SMALLTALK = "smalltalk"  // Smalltalk
    const val SOLIDITY = "solidity"  // Solidity
    const val SQL = "sql"  // SQL
    const val SQLPL = "sqlpl"  // SQLPL
    const val STANDARDML = "standard_ml"  // Standard ML
    const val SUPERCOLLIDER = "supercollider"  // SuperCollider
    const val SWIFT = "swift"  // Swift
    const val TCL = "tcl"  // Tcl
    const val TEX = "tex"  // TeX
    const val TYPESCRIPT = "typescript"  // TypeScript
    const val VERILOG = "verilog"  // Verilog
    const val VISUALBASIC = "visualbasic"  // Visual Basic
    const val VBA = "visualbasicforapps"  // Visual Basic for Applications
    const val VHDL = "vhdl"  // VHDL
    const val VIML = "viml"  // Vim L
    const val VUE = "vue"  // Vue
    const val SVELTE = "svelte" // Svelte
    const val WOLFRAM = "wolframlanguage"  // Wolfram Language
    const val XML = "xml"  // XML
    const val XPM = "xpm"  // XPM
    const val XTEND = "xtend"  // Xtend
}


================================================
FILE: src/main/kotlin/app/extractors/ObjectiveCExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class ObjectiveCExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.OBJECTIVEC
        val importRegex = Regex("""^([^\n]*[#@](import|include))\s[^\n]*""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val sharpImportIncludeRegex =
                Regex("""[#@](import|include)\s+["<](\w+)[/\w+]*\.\w+[">]""")
        val atImportRegex = Regex("""@import\s+(\w+)""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = sharpImportIncludeRegex.findAll(it) +
                atImportRegex.findAll(it)
            if (res.toList().isNotEmpty()) {
                val lineLib = res.toList().map { it.groupValues }.last().last()
                imports.add(lineLib)
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/PerlExtractor.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

class PerlExtractor(private val language: String) : ExtractorBase(
    language,
    importRegex = Regex("""^use (.+);"""),
    commentRegex = Regex("""([^\n]*#.*$)"""),
    importStartsWith = true) {

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        // Perl and Perl6 share libraries
        return super.mapImportToIndex(import, Lang.PERL, startsWith)
    }
}

================================================
FILE: src/main/kotlin/app/extractors/PhpExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class PhpExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.PHP
        val importRegex = Regex("""^(.*require|require_once|include|""" +
            """include_once|use)\s[^\n]*""")
        val commentRegex = Regex("""^([^\n]*//)[^\n]*""")
        val useRegex = Regex("""use\s+(\w+)[\\\w+]*""")
        val requireIncludeRegex = Regex("""(require|require_once|include|""" +
                """"include_once)\s*[(]?'(\w+)[.\w+]*'[)]?""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = useRegex.findAll(it) + requireIncludeRegex.findAll(it)
            if (res.toList().isNotEmpty()) {
                val lineLib = res.toList().map { it.groupValues }.last().last()
                imports.add(lineLib)
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/PlpgsqlExtractor.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

object PlpgsqlExtractor : ExtractorBase(
    language = Lang.PLPGSQL,
    importRegex = Regex(""".+CREATE (?:EXTENSION|LANGUAGE) ([a-zA-Z_][a-zA-Z0-9_]*)"""),
    commentRegex = Regex("""(--.*$)|(/[*].*?[*]/)"""))


================================================
FILE: src/main/kotlin/app/extractors/PythonExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class PythonExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.PYTHON
        const val COMPREHENSION_MAP = "map"
        const val COMPREHENSION_LIST = "list"
        val docImportRegex = Regex("""^([^\n]*#|\s*\"\"\"|\s*import|""" +
            """\s*from)[^\n]*""")
        val commentRegex = Regex("""^(.*#).*""")
        val extractImportRegex = Regex("""(from\s+(\w+)[.\w+]*\s+import|""" +
            """import\s+(\w+(,\s*\w+)*))(as\s+)*""")
        val mapRegex = Regex("""(map\([^,]+?,)""")
        val listRegex = Regex("""\[.+? for .+? in .+?]""")
        val lineEndRegex = Regex(""",\s*""")
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        val stats = super.extract(files).toMutableList()

        // List comprehension fun fact.
        val allAdded = files.map{ file -> file.getAllAdded() }.flatten()
        val allDeleted = files.map{ file -> file.getAllDeleted() }.flatten()

        val mapAllAdded = allAdded.fold(0) { total, line ->
            total + mapRegex.findAll(line).toList().size }
        val mapAllDeleted = allDeleted.fold(0) { total, line ->
            total + mapRegex.findAll(line).toList().size }

        val listAllAdded = allAdded.fold(0) { total, line ->
            total + listRegex.findAll(line).toList().size }
        val listAllDeleted = allDeleted.fold(0) { total, line ->
            total + listRegex.findAll(line).toList().size }

        if (mapAllAdded > 0 || mapAllDeleted > 0) {
            stats.add(CommitStats(
                mapAllAdded, mapAllDeleted, ExtractorInterface.TYPE_SYNTAX,
                tech = LANGUAGE_NAME + ExtractorInterface.SEPARATOR +
                    COMPREHENSION_MAP
            ))
        }

        if (listAllAdded > 0 || listAllDeleted > 0) {
            stats.add(CommitStats(
                listAllAdded, listAllDeleted, ExtractorInterface.TYPE_SYNTAX,
                tech = LANGUAGE_NAME + ExtractorInterface.SEPARATOR +
                    COMPREHENSION_LIST
            ))
        }

        return stats
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val lineLibs = res.groupValues.last {
                    it != "" && !it.startsWith(',')
                }.split(lineEndRegex)
                imports.addAll(lineLibs)
            }
        }

        val filteredImports = imports.filter { import ->
            !import.endsWith("_pb") && !import.endsWith("_pb2")
        }.toMutableList()
        if (filteredImports.size < imports.size) {
            filteredImports.add("pb")
        }
        return filteredImports

    }

    override fun tokenize(line: String): List<String> {
        var newLine = docImportRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/RubyExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

class RubyExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.RUBY
        val importRegex = Regex("""(require\s+'(\w+)'|load\s+'(\w+)\.\w+')""")
        val commentRegex = Regex("""^([^\n]*#)[^\n]*""")
        val extractImportRegex =
            Regex("""(require\s+'(.+)'|load\s+'(\w+)\.\w+')""")
        val includeRegex = Regex("""include\s+(\w+)::.+""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val lineLib = res.groupValues.last { it != "" }
                imports.add(lineLib)
            }
        }

        // Try to parse `include ` when imports are in external file.
        if (imports.isEmpty()) {
            fileContent.forEach {
                val res = includeRegex.find(it)
                if (res != null) {
                    imports.add(res.groupValues.last().toLowerCase())
                }
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }
    
    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, lang, startsWith = true)
    }

    override fun determineLibs(line: String,
                               importedLibs: List<String>): List<String> {
        // TODO(lyaronskaya): Case with no imports.
        val libraries = importedLibs + "rb.rails"

        return super.determineLibs(line, libraries)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/RustExtractor.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

class RustExtractor : ExtractorInterface {
    companion object {
        const val LANGUAGE_NAME = Lang.RUST
        val importRegex = Regex("""^extern crate \w+;$""")
        val commentRegex = Regex("(//.+$)|(/[*].*?[*]/)")
        val extractImportRegex = Regex("""^extern crate (\w+);$""")
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        val imports = mutableSetOf<String>()

        fileContent.forEach {
            val res = extractImportRegex.find(it)
            if (res != null) {
                val lineLib = res.groupValues[1]
                imports.add(lineLib)
            }
        }

        return imports.toList()
    }

    override fun tokenize(line: String): List<String> {
        var newLine = importRegex.replace(line, "")
        newLine = commentRegex.replace(newLine, "")
        return super.tokenize(newLine)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/extractors/ScalaExtractor.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)

package app.extractors

object ScalaExtractor : ExtractorBase(
    language = Lang.SCALA,
    importRegex = Regex("""^import (?:_root_\.)?((?:\.?[a-z]+)+\.)"""),
    commentRegex = Regex("(//.+$)|(/[*].*?[*]/)"),
    importStartsWith = true)


================================================
FILE: src/main/kotlin/app/extractors/SwiftExtractor.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.extractors

object SwiftExtractor : ExtractorBase(
    language = Lang.SWIFT,
    importRegex = Regex("""import\s+(\w+)"""),
    commentRegex = Regex("""^([^\n]*//)[^\n]*"""))


================================================
FILE: src/main/kotlin/app/extractors/TypescriptExtractor.kt
================================================
// Copyright 2019 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app.extractors

import app.model.CommitStats
import app.model.DiffFile

class TypescriptExtractor : ExtractorInterface{
    companion object {
        const val LANGUAGE_NAME = Lang.TYPESCRIPT
        private val javascriptExtractor = JavascriptExtractor()
    }

    override fun extract(files: List<DiffFile>): List<CommitStats> {
        files.forEach { file ->
            file.lang = Lang.JAVASCRIPT
        }
        val libStats = javascriptExtractor.extractLibStats(files)

        files.forEach { file ->
            file.lang = LANGUAGE_NAME
        }
        return super.extractLangStats(files) + libStats
    }

    override fun extractImports(fileContent: List<String>): List<String> {
        return javascriptExtractor.extractImports(fileContent)
    }

    override fun tokenize(line: String): List<String> {
        return javascriptExtractor.tokenize(line)
    }

    override fun mapImportToIndex(import: String, lang: String,
                                  startsWith: Boolean): String? {
        return super.mapImportToIndex(import, Lang.JAVASCRIPT, startsWith = true)
    }

    override fun getLanguageName(): String? {
        return LANGUAGE_NAME
    }
}


================================================
FILE: src/main/kotlin/app/hashers/AuthorDistanceHasher.kt
================================================
// Copyright 2018 Sourcerer Inc. All Rights Reserved.
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app.hashers

import app.api.Api
import app.model.AuthorDistance
import app.model.Repo
import io.reactivex.Observable
import java.util.concurrent.TimeUnit

class AuthorDistanceHasher(
        private val serverRepo: Repo,
        private val api: Api,
        private val emails: HashSet<String>,
        private val userEmails: HashSet<String>) {
    fun updateFromObservable(observable: Observable<JgitData>,
                             onError: (Throwable) -> Unit) {
        val authorScores = hashMapOf<String, Double>()
        emails.forEach { authorScores[it] = 0.0 }

        // Store the time of the earliest commit for a path by user.
        val authorPathLastContribution = hashMapOf<String, Long>()

        observable.subscribe({
            val email =  it.email!!
            val paths = it.paths!!
            val time = it.date!!
            if (email in userEmails) {
                paths.forEach { path ->
                    authorPathLastContribution[path] = time
                }
            }
            else {
                val score = paths
                     .filter { path -> path in authorPathLastContribution }
                     .filter { path ->
                        val authorTime = authorPathLastContribution[path]!!
                        val timeDelta = TimeUnit.DAYS.convert(
                                authorTime - time, TimeUnit.SECONDS)
                         timeDelta < 365
                     }.size
                authorScores[email] = authorScores[email]!! + score
            }
        }, onError, {
            val stats = mutableListOf<AuthorDistance>()
            authorScores.forEach { email, value ->
                if (email !in userEmails) {
                    stats.add(AuthorDistance(serverRepo, email, value))
                }
            }
            postDistancesToServer(stats)
        })
    }

    private fun postDistancesToServer(stats: List<AuthorDistance>) {
        if (stats.isNotEmpty()) {
            api.postAuthorDistances(stats).onErrorThrow()
        }
    }
}


================================================
FILE: src/main/kotlin/app/hashers/CodeLongevity.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Alexander Surkov (alex@sourcerer.io)
// Author: Anatoly Kislov (anatoly@sourcerer.io)

package app.hashers

import app.FactCodes
import app.Logger
import app.api.Api
import app.model.Author
import app.model.Repo
import app.model.Fact
import app.utils.FileHelper
import io.reactivex.Observable
import org.eclipse.jgit.diff.DiffEntry
import org.eclipse.jgit.diff.RawText
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.lib.AnyObjectId
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.revwalk.RevWalk
import org.eclipse.jgit.treewalk.TreeWalk

import java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.ObjectOutputStream
import java.io.ObjectInputStream
import java.io.Serializable
import java.lang.Exception
import java.text.SimpleDateFormat
import java.util.Date

/**
 * Represents a code line in a file revision.
 */
class RevCommitLine(val commit: RevCommit, val fileId: AnyObjectId,
                    val file: String, val line: Int,
                    val isDeleted: Boolean) {

    val id : String
        get() = "${fileId.name}:$line"
}

/**
 * Represents a code line in repo's history.
 *
 * TODO(Alex): the text arg is solely for testing proposes (remove it)
 */
class CodeLine(val repo: Repository,
               val from: RevCommitLine, val to: RevCommitLine) {

    // TODO(alex): oldId and newId may be computed as a hash built from commit,
    // file name and line number, if we are going to send the data outside a
    // local machine.

    /**
     * Id of the code line in a revision when the line was added. Used to
     * identify a line and update its lifetime computed at the previous
     * iteration.
     */
    val oldId : String
        get() = from.id

    /**
     * Id of the code line in a revision, where the line was deleted, or a head
     * revision, if the line is alive.
     */
    val newId : String
        get() = to.id

    /**
     * The code line's age in seconds.
     */
    var age : Long = 0
        get() {
            if (field == 0L) {
                field = (to.commit.commitTime - from.commit.commitTime).toLong()
            }
            return field
        }

    /**
     * The code line text.
     */
    val text : String
        get() = RawText(repo.open(from.fileId).bytes).getString(from.line)

    /**
     * Email address of the line's author.
     */
    val authorEmail : String
        get() = from.commit.authorIdent.emailAddress

    /**
     * Email address of the line's changer.
     */
    val editorEmail : String?
      get() = if (isDeleted) to.commit.authorIdent.emailAddress else null

    /**
     * A date when the line was changed.
     */
    val editDate : Date
        get() = Date(to.commit.commitTime.toLong() * 1000)

    /**
     * True if the line is deleted.
     */
    val isDeleted : Boolean
        get() = to.isDeleted

    /**
     * A pretty print of a code line; debugging.
     */
    override fun toString() : String {
        val df = SimpleDateFormat("yyyy-MM-dd HH:mm z")
        val fd = df.format(Date(from.commit.commitTime.toLong() * 1000))
        val td = df.format(Date(to.commit.commitTime.toLong() * 1000))
        val fc = "${from.commit.name} '${from.commit.shortMessage}'"
        val tc = "${to.commit.name} '${to.commit.shortMessage}'"
        val revState = if (isDeleted) "deleted in" else "last known as"
        val state = if (isDeleted) "deleted" else "alive"
        return "Line '$text' - '${from.file}:${from.line}' added in $fc $fd\n" +
            "  $revState '${to.file}:${to.line}' in $tc $td,\n" +
            "  age: $age s - $state"
    }
}

/**
 * Detects colleagues and their 'work vicinity' from commits.
 */
class Colleagues(private val serverRepo: Repo) {
    // A map of <colleague_email1, colleague_email2> pairs to pairs of
    // <month, time>, which indicates to a minimum time in ms between all line
    // changes for these two colleagues in a given month (yyyy-mm).
    private val map: HashMap<Pair<String, String>,
                             HashMap<String, Long>> = hashMapOf()

    fun collect(line: CodeLine) {
        // TODO(alex): ignore same user emails
        val authorEmail = line.authorEmail
        val editorEmail = line.editorEmail
        if (editorEmail == null || authorEmail == editorEmail) {
            return
        }
        val emails = Pair(authorEmail, editorEmail)

        val dates = map.getOrPut(emails, { hashMapOf() })
        val month = SimpleDateFormat("yyyy-MM").format(line.editDate)

        Logger.trace { "collected colleague, age: ${line.age}" }
        val vicinity = dates.getOrPut(month, { line.age })
        if (vicinity > line.age) {
            dates[month] = line.age
        }
    }

    fun calculateAndSendFacts(api: Api) {
        // Expose colleagues iff colleague1 edited colleague2 code and
        // colleague2 edited colleauge1 code.
        val auxHash = hashSetOf<Pair<String, String>>()
        for ((pair, dates) in map) {
            val email1 = pair.first
            val email2 = pair.second
            if (auxHash.contains(Pair(email2, email1))) {
                continue
            }

            val min1 = dates.minBy { (_, vicinity) -> vicinity }!!
            val dates2 = map[Pair(email2, email1)]
            if (dates2 != null) {
                auxHash.add(Pair(email1, email2))

                val min2 = dates2.minBy { (_, vicinity) -> vicinity }!!
                val min: Long =
                    if (min1.value < min2.value) { min1.value }
                    else { min2.value }

                val stats = mutableListOf<Fact>()
                stats.add(Fact(serverRepo,
                               FactCodes.COLLEAGUES,
                               value = email1,
                               value2 = email2,
                               value3 = min.toString()))

                api.postFacts(stats).onErrorThrow()
            }
        }
    }

    /**
     * Return colleagues in a form of <email, month, time> for the given
     * email, where time indicates a minimal time in ms between all line edits
     * by these colleagues in a given month (yyyy-mm).
     */
    fun get(email: String) : List<Triple<String, String, Long>> {
        return map
        .filter { (pair, _) -> pair.first == email || pair.second == email }
        .flatMap { (pair, dates) ->
            val colleagueEmail =
                if (email == pair.first) pair.second else pair.first

            val list = mutableListOf<Triple<String, String, Long>>()
            dates.forEach { month, vicinity ->
                list.add(Triple(colleagueEmail, month, vicinity))
            }
            return list
        }
    }
}

/**
 * A data class used to store line age information.
 */
class CodeLineAges : Serializable, Cloneable {
    /**
     * A pair of (line age sum, line count) representing an aggregated line
     * ages.
     */
    data class AggrAge(var sum: Long = 0L, var count: Int = 0) : Serializable

    /**
     * A code line info: an (age, email) pair.
     */
    data class LineInfo(var age: Long, var email: String) : Serializable

    /**
     * Aggregated code line ages for user emails, collected from all deleted
     * lines.
     */
    var aggrAges: HashMap<String, AggrAge> = hashMapOf()

    /**
     * A map of existing code lines ids to their ages at the revision.
     */
    var lastingLines: HashMap<String, LineInfo> = hashMapOf()

    public override fun clone(): CodeLineAges {
        val clone = CodeLineAges()
        aggrAges.forEach { (email, age) ->
            clone.aggrAges[email] = age.copy() }
        lastingLines.forEach { (email, line) ->
            clone.lastingLines[email] = line.copy() }
        return clone
    }
}

/**
 * Used to compute age of code lines in the repo.
 */
class CodeLongevity(
    private val serverRepo: Repo,
    private val emails: HashSet<String>,
    private val git: Git) {

    val repo: Repository = git.repository
    val revWalk = RevWalk(repo)
    val head: RevCommit =
        try { revWalk.parseCommit(CommitCrawler.getDefaultBranchHead(git)) }
        catch(e: Exception) { throw Exception("No branch") }

    val dataPath = FileHelper.getPath(serverRepo.rehash, "longevity")
    val colleagues = Colleagues(serverRepo)

    /**
     * Updates code line age statistics on the server.
     */
    private fun calculateAndSendFacts(ages: CodeLineAges, api: Api) {
        var repoTotal = 0
        var repoSum: Long = 0
        val aggrAges : HashMap<String, CodeLineAges.AggrAge> = hashMapOf()

        ages.aggrAges.forEach { (email, aggrAge) ->
            repoSum += aggrAge.sum
            repoTotal += aggrAge.count
            if (emails.contains(email)) {
                aggrAges[email] = aggrAge
            }
        }

        ages.lastingLines.forEach { (_, info) ->
            val aggrAge =
                aggrAges.getOrPut(info.email, { CodeLineAges.AggrAge() })
            aggrAge.sum += info.age
            aggrAge.count += 1

            repoSum += info.age
            repoTotal += 1
        }

        val secondsInDay = 86400
        val repoAvg = if (repoTotal > 0) { repoSum / repoTotal } else 0
        val stats = mutableListOf<Fact>()
        stats.add(Fact(repo = serverRepo,
                       code = FactCodes.LINE_LONGEVITY_REPO,
                       value = repoAvg.toString()))
        val repoAvgDays = repoAvg / secondsInDay
        Logger.info { "Repo average code line age is $repoAvgDays days, " +
            "lines total: $repoTotal" }

        for (email in emails) {
            val aggrAge = aggrAges[email] ?: CodeLineAges.AggrAge()
            val avg = if (aggrAge.count > 0) { aggrAge.sum / aggrAge.count }
                      else 0
            stats.add(Fact(repo = serverRepo,
                           code = FactCodes.LINE_LONGEVITY,
                           value = avg.toString(),
                           author = Author(email = email)))
        }

        if (stats.size > 0) {
            api.postFacts(stats).onErrorThrow()
            Logger.info { "Sent ${stats.size} facts to server" }
        }

        colleagues.calculateAndSendFacts(api)
    }

    /**
     * Scans the repo to extract code line ages.
     */
    fun updateFromObservable(diffObservable: Observable<JgitData> =
                                CommitCrawler.getJGitObservable(git),
                             onError: (Throwable) -> Unit = {},
                             api: Api,
                             onDataComplete: (CodeLineAges) -> Unit = {}) {
        var storedHead: RevCommit? = null
        var ageData = CodeLineAges()

        // Load existing age data if any. Expected format: commit id and
        // CodeLineAges structure following it.
        try {
            val file = dataPath.toFile()
            val iStream = ObjectInputStream(FileInputStream(file))
            val storedHeadId = iStream.readUTF()
            Logger.debug { "Stored repo head: $storedHeadId" }
            storedHead = revWalk.parseCommit(repo.resolve(storedHeadId))
            if (storedHead == head) {
                return  // TODO(anatoly): Send saved stats in such case.
            }
            ageData = (iStream.readObject() ?: CodeLineAges()) as CodeLineAges
        }
        catch(e: FileNotFoundException) { }
        catch(e: Exception) { Logger.error(e, "Failed to read longevity " +
            "data. CAUTION: data will be recomputed.") }

        // Update ages.
        getLinesObservable(storedHead, diffObservable, onError).subscribe({
            line ->
            Logger.trace { "Scanning: $line" }
            if (line.isDeleted) {
                if (ageData.lastingLines.contains(line.oldId)) {
                    line.age += ageData.lastingLines.remove(line.oldId)!!.age
                }
                val aggrAge = ageData.aggrAges.getOrPut(line.authorEmail,
                        { CodeLineAges.AggrAge() } )
                aggrAge.sum += line.age
                aggrAge.count += 1

                colleagues.collect(line)
            } else {
                var age = line.age
                if (ageData.lastingLines.contains(line.oldId)) {
                    age += ageData.lastingLines.remove(line.oldId)!!.age
                }
                ageData.lastingLines[line.newId] = CodeLineAges.LineInfo(age,
                        line.authorEmail)
            }
        }, onError, {
            // Store ages for subsequent runs.
            try {
                val file = dataPath.toFile()
                val oStream = ObjectOutputStream(FileOutputStream(file))
                oStream.writeUTF(head.name)
                oStream.writeObject(ageData)
            }
            catch(e: Exception) {
                Logger.error(e, "Failed to save longevity data. " +
                    "CAUTION: data will be recomputed on a next run.")
            }
            onDataComplete(ageData)
            calculateAndSendFacts(ageData, api)
        })
    }

    /**
     * Clears the stored age data if any.
     */
    fun dropSavedData() {
        dataPath.toFile().delete()
    }

    /**
     * Returns a list of code lines, both alive and deleted, between
     * the revisions of the repo.
     */
    fun getLinesList(tail : RevCommit? = null,
                     diffObservable: Observable<JgitData> =
                        CommitCrawler.getJGitObservable(git),
                     onError: (Throwable) -> Unit = {}) : List<CodeLine> {
        val codeLines: MutableList<CodeLine> = mutableListOf()
        getLinesObservable(tail, diffObservable, onError).blockingSubscribe {
            line -> codeLines.add(line)
        }
        return codeLines
    }

    /**
     * Returns an observable for for code lines, both alive and deleted, between
     * the revisions of the repo.
     */
    fun getLinesObservable(tail : RevCommit? = null,
                           diffObservable: Observable<JgitData>,
                           onError: (Throwable) -> Unit)
        : Observable<CodeLine> =
        Observable.create { subscriber ->

        val headWalk = TreeWalk(repo)
            headWalk.isRecursive = true
        headWalk.addTree(head.tree)

        val files: MutableMap<String, ArrayList<RevCommitLine>> = mutableMapOf()

        // Build a map of file names and their code lines.
        while (headWalk.next()) {
            try {
                val path = headWalk.pathString
                val fileId = headWalk.getObjectId(0)
                val fileLoader = repo.open(fileId)
                if (!RawText.isBinary(fileLoader.openStream())) {
                    val fileText = RawText(fileLoader.bytes)
                    val lines = ArrayList<RevCommitLine>(fileText.size())
                    for (idx in 0 until fileText.size()) {
                        lines.add(RevCommitLine(head, fileId, path, idx, false))
                    }
                    files[path] = lines
                }
            } catch (e: Exception) {
                // TODO(anatoly): better fix of exceptions.
            }
        }

        diffObservable
        .takeWhile { (commit, _) -> commit != tail }
        .subscribe( { (commit, diffs) ->
            // A step back in commits history. Update the files map according
            // to the diff. Traverse the diffs backwards to handle double
            // renames properly.
            // TODO(alex): cover file renames by tests (see APP-132 issue).
            for ((diff, editList) in diffs!!.asReversed()) {
                val oldPath = diff.oldPath
                val oldId = diff.oldId.toObjectId()
                val newPath = diff.newPath
                val newId = diff.newId.toObjectId()
                Logger.trace { "old: '$oldPath', new: '$newPath'" }

                // File was deleted, initialize the line array in the files map.
                if (diff.changeType == DiffEntry.ChangeType.DELETE) {
                    val fileLoader = repo.open(oldId)
                    val fileText = RawText(fileLoader.bytes)
                    files[oldPath] = ArrayList(fileText.size())
                }

                // If a file was deleted, then the new path is /dev/null.
                val path = if (newPath != DiffEntry.DEV_NULL) {
                    newPath
                } else {
                    oldPath
                }
                val lines = files[path]!!


                // Update the lines array according to diff insertions.
                // Traverse the edit list backwards to keep indices of
                // the edit list and the lines array in sync.
                for (edit in editList.asReversed()) {
                    // Insertion case: track the lines.
                    val insCount = edit.lengthB
                    if (insCount > 0) {
                        val insStart = edit.beginB
                        val insEnd = edit.endB
                        Logger.trace { "ins ($insStart, $insEnd)" }

                        for (idx in insStart until insEnd) {
                            val from = RevCommitLine(commit!!, newId,
                                                     newPath, idx, false)
                            try {
                                val to = lines[idx]
                                val cl = CodeLine(repo, from, to)
                                Logger.trace { "Collected: $cl" }
                                subscriber.onNext(cl)
                            }
                            catch(e: IndexOutOfBoundsException) {
                                Logger.error(e, "No line at $idx; commit: " +
                                    "${commit.name}; " +
                                    "'${commit.shortMessage}'")
                                throw e
                            }
                        }
                        lines.subList(insStart, insEnd).clear()
                    }
                }

                // Update the lines array according to diff deletions.
                for (edit in editList) {
                    // Deletion case. Chase down the deleted lines through the
                    // history.
                    val delCount = edit.lengthA
                    if (delCount > 0) {
                        val delStart = edit.beginA
                        val delEnd = edit.endA
                        Logger.trace { "del ($delStart, $delEnd)" }

                        val tmpLines = ArrayList<RevCommitLine>(delCount)
                        for (idx in delStart until delEnd) {
                            tmpLines.add(RevCommitLine(commit!!, oldId,
                                                       oldPath, idx, true))
                        }
                        lines.addAll(delStart, tmpLines)
                    }
                }

                // File was renamed, tweak the files map.
                if (diff.changeType == DiffEntry.ChangeType.RENAME) {
                    files[oldPath] = files.remove(newPath)!!
                }
            }
        }, onError, {
            // If a tail revision was given then the map has to contain
            // unclaimed code lines, i.e. the lines added before the tail
            // revision. Push them all into the result lines list, so the
            // caller can update their ages properly.
            if (tail != null) {
                val tailWalk = TreeWalk(repo)
                tailWalk.isRecursive = true
                tailWalk.addTree(tail.tree)

                while (tailWalk.next()) {
                    val filePath = tailWalk.pathString
                    val lines = files[filePath]
                    if (lines != null) {
                        val fileId = tailWalk.getObjectId(0)
                        for (idx in 0 until lines.size) {
                            val from = RevCommitLine(tail, fileId,
                                filePath, idx, false)
                            val cl = CodeLine(repo, from, lines[idx])
                            Logger.trace { "Collected (tail): $cl" }
                            subscriber.onNext(cl)
                        }
                    }
                }
            }
            subscriber.onComplete()
        })
    }
}


================================================
FILE: src/main/kotlin/app/hashers/CommitCrawler.kt
================================================
// Copyright 2017 Sourcerer Inc. All Rights Reserved.
// Author: Anatoly Kislov (anatoly@sourcerer.io)
// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)

package app.hashers

import app.Logger
import app.model.Author
import app.model.Commit
import app.model.DiffContent
import app.model.DiffFile
import app.model.DiffRange
import app.model.Repo
import app.utils.EmptyRepoException
import io.reactivex.Observable
import java.io.BufferedReader
import java.io.InputStreamReader
import org.apache.commons.codec.digest.DigestUtils
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.diff.DiffEntry
import org.eclipse.jgit.diff.DiffFormatter
import org.eclipse.jgit.diff.EditList
import org.eclipse.jgit.diff.RawText
import org.eclipse.jgit.lib.ObjectId
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.revwalk.RevCommit
import org.eclipse.jgit.revwalk.RevWalk
import org.eclipse.jgit.treewalk.filter.PathFilter
import org.eclipse.jgit.treewalk.TreeWalk
import org.eclipse.jgit.util.io.DisabledOutputStream
import java.util.LinkedList

data class JgitData(var commit: RevCommit? = null,
                    var list: List<JgitDiff>? = null,
                    var paths: List<String>? = null,
                    var date: Long? = null,
                    var email: String? = null,
                    var coauthors: List<Author>? = null)

data class JgitDiff(val diffEntry: DiffEntry, val editList: EditList)

/**
* Iterates over the diffs between commits in the repo's history.
*/
object CommitCrawler {
    private const val REMOTE_HEAD = "refs/remotes/origin/HEAD"
    private const val REMOTE_MASTER_BRANCH = "refs/remotes/origin/master"
    private const val LOCAL_MASTER_BRANCH = "refs/heads/master"
    private const val LOCAL_HEAD = "HEAD"
    private val REFS = listOf(REMOTE_HEAD, REMOTE_MASTER_BRANCH,
                              LOCAL_MASTER_BRANCH, LOCAL_HEAD)
    private val CONF_FILE_PATH = ".sourcerer-conf"
    private val MAX_DIFF_SIZE = 600000
    private val coauthoredRegex = Regex("""Co-authored-by: (.+) <(.+)>""")

    fun getDefaultBranchHead(git: Git): ObjectId {
        for (ref in REFS) {
            val branch = git.repository.resolve(ref) ?: continue

            Logger.debug { "Hashing from $ref" }
            return branch
        }
        throw EmptyRepoException("No remote default, master or HEAD found")
    }

    fun fetchRehashesAndAuthors(git: Git):
        Triple<LinkedList<String>, HashSet<Author>, HashMap<String, Int>> {
        val head: RevCommit = RevWalk(git.repository)
            .parseCommit(getDefaultBranchHead(git))

        val revWalk = RevWalk(git.repository)
        revWalk.markStart(head)

        val commitsRehashes = LinkedList<String>()
        val emails = hashSetOf<String>()
        val names = hashMapOf<String, String>()
        val commitsCount = hashMapOf<String, Int>()
        val coauthorsList = mutableListOf<Author>()

        var commit: RevCommit? = revWalk.next()
        while (commit != null) {
            commitsRehashes.add(DigestUtils.sha256Hex(commit.name))
            val email = commit.authorIdent.emailAddress.toLowerCase()
            val name = commit.authorIdent.name
            if (!emails.contains(email)) {
                emails.add(email)
                names[email] = name
            } else {
                if (name.length > names[email]!!.length) {
                    names[email] = name
                }
            }
            val coauthors = getCoauthors(commit.fullMessage)
            coauthorsList.addAll(coauthors)

            commitsCount[email] = commitsCount.getOrDefault(email, 0) + 1

            commit.disposeBody()
            commit = revWalk.next()
        }
        revWalk.dispose()

        val authors = emails.map { email -> Author(names[email]!!, email) }
            .toHashSet()
        authors.addAll(coauthorsList)

        return Triple(commitsRehashes, authors, commitsCount)
    }

    fun getJGitObservable(git: Git,
                          totalCommitCount: Int = 0,
                          extractCommit: Boolean = true,
                          extractDiffs: Boolean = true,
                          extractPaths: Boolean = false,
                          extractDate: Boolean = false,
                          extractEmail: Boolean = false,
                          extractCoauthors: Boolean = false,
                          filteredEmails: HashSet<String>? = null,
                          tail : RevCommit? = null) :
        Observable<JgitData> = Observable.create { subscriber ->
        val repo: Repository = git.repository
        val revWalk = RevWalk(repo)
        val head: RevCommit =
            try { revWalk.parseCommit(getDefaultBranchHead(git)) }
            catch(e: Exception) { throw Exception("No head was found!") }

        val df = DiffFormatter(DisabledOutputStream.INSTANCE)
        df.setRepository(repo)
        df.isDetectRenames = true

        val confTreeWalk = TreeWalk(repo)
        confTreeWalk.addTree(head.getTree())
        confTreeWalk.setFilter(PathFilter.create(CONF_FILE_PATH))

        var ignoredPaths =
            if (confTreeWalk.next()) {
                getIgnoredPaths(repo, confTreeWalk.getObjectId(0))
            }
            else {
                listOf()
            }

        var commitCount = 0
        revWalk.markStart(head)
        var commit: RevCommit? = revWalk.next()  // Move the walker to the head.
        while (commit != null && commit != tail) {
            commitCount++
            val parentCommit: RevCommit? = revWalk.next()

            // Smart casts are not yet supported for a mutable variable captured
            // in an inline lambda, see
            // https://youtrack.jetbrains.com/issue/KT-7186.
            if (Logger.isTrace) {
                val commitName = commit.name
                val commitMsg = commit.shortMessage
                Logger.trace { "commit: $commitName; '$commitMsg'" }
                if (parentCommit != null) {
                    val parentCommitName = parentCommit.name
                    val parentCommitMsg = parentCommit.shortMessage
                    Logger.trace { "parent commit: $parentCommitName; " +
                        "'$parentCommitMsg'" }
                }
                else {
                    Logger.trace { "parent commit: null" }
                }
            }

            val perc = if (totalCommitCount != 0) {
                (commitCount.toDouble() / totalCommitCount) * 100
            } else 0.0
            Logger.printCommit(commit.shortMessage, commit.name, perc)

            val email = commit.authorIdent.emailAddress.toLowerCase()
            if (filteredEmails != null && !filteredEmails.contains(email)) {
                commit = parentCommit
                continue
            }
            val paths = mutableListOf<String>()

            val diffEntries = df.scan(parentCommit, commit)
            .filter { diff ->
                diff.changeType != DiffEntry.ChangeType.COPY
            }
            .filter { diff ->
                val path = diff.newPath
                for (cnv in VendorConventions) {
                    if (cnv.containsMatchIn(path) ||
                        cnv.containsMatchIn(diff.oldPath)) {
          
Download .txt
gitextract_96evfk3n/

├── .gitattributes
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE.md
├── README.md
├── build.gradle
├── deploy/
│   ├── GradleDockerfile
│   ├── Jenkinsfile
│   ├── default.conf
│   ├── production_env.sh
│   ├── sandbox_env.sh
│   ├── sourcerer-app.yaml
│   └── staging_env.sh
├── do.sh
└── src/
    ├── install/
    │   └── install
    ├── main/
    │   ├── kotlin/
    │   │   └── app/
    │   │       ├── Analytics.kt
    │   │       ├── FactCodes.kt
    │   │       ├── Logger.kt
    │   │       ├── Main.kt
    │   │       ├── api/
    │   │       │   ├── Api.kt
    │   │       │   ├── ApiError.kt
    │   │       │   ├── MockApi.kt
    │   │       │   ├── Result.kt
    │   │       │   └── ServerApi.kt
    │   │       ├── config/
    │   │       │   ├── Config.kt
    │   │       │   ├── Configurator.kt
    │   │       │   ├── FileConfigurator.kt
    │   │       │   └── MockConfigurator.kt
    │   │       ├── extractors/
    │   │       │   ├── CExtractor.kt
    │   │       │   ├── CSharpExtractor.kt
    │   │       │   ├── ClassifierManager.kt
    │   │       │   ├── CommonExtractor.kt
    │   │       │   ├── CppExtractor.kt
    │   │       │   ├── CrystalExtractor.kt
    │   │       │   ├── CssExtractor.kt
    │   │       │   ├── DMExtractor.kt
    │   │       │   ├── DartExtractor.kt
    │   │       │   ├── DevopsExtractor.kt
    │   │       │   ├── ElixirExtractor.kt
    │   │       │   ├── Extractor.kt
    │   │       │   ├── ExtractorBase.kt
    │   │       │   ├── ExtractorInterface.kt
    │   │       │   ├── FSharpExtractor.kt
    │   │       │   ├── GoExtractor.kt
    │   │       │   ├── Heuristics.kt
    │   │       │   ├── IPythonExtractor.kt
    │   │       │   ├── JavaExtractor.kt
    │   │       │   ├── JavascriptExtractor.kt
    │   │       │   ├── KotlinExtractor.kt
    │   │       │   ├── Languages.kt
    │   │       │   ├── ObjectiveCExtractor.kt
    │   │       │   ├── PerlExtractor.kt
    │   │       │   ├── PhpExtractor.kt
    │   │       │   ├── PlpgsqlExtractor.kt
    │   │       │   ├── PythonExtractor.kt
    │   │       │   ├── RubyExtractor.kt
    │   │       │   ├── RustExtractor.kt
    │   │       │   ├── ScalaExtractor.kt
    │   │       │   ├── SwiftExtractor.kt
    │   │       │   └── TypescriptExtractor.kt
    │   │       ├── hashers/
    │   │       │   ├── AuthorDistanceHasher.kt
    │   │       │   ├── CodeLongevity.kt
    │   │       │   ├── CommitCrawler.kt
    │   │       │   ├── CommitHasher.kt
    │   │       │   ├── FactHasher.kt
    │   │       │   ├── MetaHasher.kt
    │   │       │   ├── RepoHasher.kt
    │   │       │   └── Vendors.kt
    │   │       ├── model/
    │   │       │   ├── Author.kt
    │   │       │   ├── AuthorDistance.kt
    │   │       │   ├── AuthorDistanceGroup.kt
    │   │       │   ├── AuthorGroup.kt
    │   │       │   ├── Classifier.kt
    │   │       │   ├── Commit.kt
    │   │       │   ├── CommitGroup.kt
    │   │       │   ├── CommitStats.kt
    │   │       │   ├── DiffContent.kt
    │   │       │   ├── DiffFile.kt
    │   │       │   ├── DiffRange.kt
    │   │       │   ├── Error.kt
    │   │       │   ├── Errors.kt
    │   │       │   ├── Fact.kt
    │   │       │   ├── FactGroup.kt
    │   │       │   ├── LibraryMeta.kt
    │   │       │   ├── LocalRepo.kt
    │   │       │   ├── Process.kt
    │   │       │   ├── ProcessEntry.kt
    │   │       │   ├── Repo.kt
    │   │       │   ├── RepoMeta.kt
    │   │       │   ├── User.kt
    │   │       │   └── UserEmail.kt
    │   │       ├── ui/
    │   │       │   ├── AddRepoState.kt
    │   │       │   ├── AuthState.kt
    │   │       │   ├── CloseState.kt
    │   │       │   ├── ConsoleState.kt
    │   │       │   ├── ConsoleUi.kt
    │   │       │   ├── Context.kt
    │   │       │   ├── EmailState.kt
    │   │       │   ├── ListRepoState.kt
    │   │       │   ├── OpenState.kt
    │   │       │   └── UpdateRepoState.kt
    │   │       └── utils/
    │   │           ├── CommandAdd.kt
    │   │           ├── CommandConfig.kt
    │   │           ├── CommandList.kt
    │   │           ├── CommandRemove.kt
    │   │           ├── FileHelper.kt
    │   │           ├── HashingException.kt
    │   │           ├── Metrics.kt
    │   │           ├── Misc.kt
    │   │           ├── Options.kt
    │   │           ├── PasswordHelper.kt
    │   │           ├── RepoHelper.kt
    │   │           ├── RequestException.kt
    │   │           └── UiHelper.kt
    │   ├── proto/
    │   │   ├── classifier.proto
    │   │   └── sourcerer.proto
    │   └── resources/
    │       └── data/
    │           ├── imports/
    │           │   ├── cpp.txt
    │           │   └── python.txt
    │           └── libraries/
    │               ├── cs_libraries.txt
    │               ├── java_libraries.txt
    │               ├── js_libraries.txt
    │               └── kotlin_libraries.txt
    └── test/
        ├── delete_repo.sh
        ├── kotlin/
        │   └── test/
        │       ├── tests/
        │       │   ├── extractors/
        │       │   │   ├── DirToLangMap.kt
        │       │   │   ├── ExtractorTest.kt
        │       │   │   ├── HeuristicsTest.kt
        │       │   │   └── IgnoredSamplesWildcards.kt
        │       │   ├── hashers/
        │       │   │   ├── AuthorDistanceHasherTest.kt
        │       │   │   ├── CodeLongevityTest.kt
        │       │   │   ├── ColleaguesTest.kt
        │       │   │   ├── CommitHasherTest.kt
        │       │   │   ├── FactHasherTest.kt
        │       │   │   ├── IgnorePathsTest.kt
        │       │   │   ├── IgnoreVendorsTest.kt
        │       │   │   └── MetaHasherTest.kt
        │       │   └── utils/
        │       │       └── FileHelperTest.kt
        │       └── utils/
        │           ├── FactHelper.kt
        │           └── TestRepo.kt
        └── resources/
            └── samples/
                ├── devops/
                │   ├── circleci/
                │   │   └── .circleci/
                │   │       └── config.yml
                │   ├── docker/
                │   │   ├── Dockerfile
                │   │   ├── alpine.Dockerfile
                │   │   └── docker-compose.yml
                │   ├── drone/
                │   │   └── .drone.yml
                │   ├── github-actions/
                │   │   └── .github/
                │   │       └── workflows/
                │   │           └── ci.yml
                │   ├── gitlab-ci/
                │   │   └── .gitlab-ci.yml
                │   ├── jenkins/
                │   │   └── Jenkinsfile
                │   ├── k8s/
                │   │   ├── postgres-manifest.yaml
                │   │   ├── rss-site.json
                │   │   └── rss-site.yml
                │   └── travis/
                │       └── .travis.yml
                └── langs/
                    ├── 1C Enterprise/
                    │   ├── Catalog.ИсходящиеПисьма.Form.ФормаЭлемента.Form.Module.bsl
                    │   ├── Catalog.Товары.Command.ПечатьПрайсЛиста.CommandModule.bsl
                    │   ├── CommonModule.ОбменМобильныеОбщее.Module.bsl
                    │   ├── Document.РасходТовара.ObjectModule.bsl
                    │   ├── ci_before_script.os
                    │   └── test_canCompile.os
                    ├── ABAP/
                    │   └── cl_csv_parser.abap
                    ├── AGS Script/
                    │   ├── GlobalScript.asc
                    │   ├── GlobalScript.ash
                    │   ├── KeyboardMovement_102.asc
                    │   └── KeyboardMovement_102.ash
                    ├── AMPL/
                    │   ├── CT2.mod
                    │   └── toy.ampl
                    ├── API Blueprint/
                    │   ├── actions.apib
                    │   ├── attributes.apib
                    │   └── simple.apib
                    ├── APL/
                    │   ├── DeepakChopra.apl
                    │   ├── UT.dyalog
                    │   └── hashbang
                    ├── ASN.1/
                    │   └── example.asn
                    ├── ATS/
                    │   ├── CoYonedaLemma.dats
                    │   ├── DiningPhil2.dats
                    │   ├── DiningPhil2.sats
                    │   ├── DiningPhil2_fork.dats
                    │   ├── DiningPhil2_thread.dats
                    │   ├── YonedaLemma.dats
                    │   ├── basis_ssntype.sats
                    │   ├── csv_parse.hats
                    │   └── intinf_vt.dats
                    ├── ActionScript/
                    │   ├── FooBar.as
                    │   └── HelloWorld.as
                    ├── Adobe Font Metrics/
                    │   ├── OpenSansCondensed-Bold.afm
                    │   ├── SpecialElite.afm
                    │   └── lambda.afm
                    ├── Agda/
                    │   └── NatCat.agda
                    ├── Alloy/
                    │   ├── file_system.als
                    │   ├── marksweepgc.als
                    │   └── views.als
                    ├── Alpine Abuild/
                    │   └── filenames/
                    │       └── APKBUILD
                    ├── AngelScript/
                    │   ├── botmanager.as
                    │   └── payload.as
                    ├── Ant Build System/
                    │   └── filenames/
                    │       ├── ant.xml
                    │       └── build.xml
                    ├── ApacheConf/
                    │   ├── apache.vhost
                    │   └── filenames/
                    │       ├── .htaccess
                    │       ├── apache2.conf
                    │       └── httpd.conf
                    ├── Apex/
                    │   ├── ArrayUtils.cls
                    │   ├── BooleanUtils.cls
                    │   ├── EmailUtils.cls
                    │   ├── GeoUtils.cls
                    │   ├── LanguageUtils.cls
                    │   └── TwilioAPI.cls
                    ├── Apollo Guidance Computer/
                    │   └── BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc
                    ├── AppleScript/
                    │   ├── Convert To PDF.applescript
                    │   ├── Convert To PostScript.applescript
                    │   ├── Count Messages in All Mailboxes.applescript
                    │   ├── Crazy Message Text.applescript
                    │   ├── Get User Name.applescript
                    │   ├── Time Of Day.applescript
                    │   └── center.applescript
                    ├── AsciiDoc/
                    │   ├── encoding.asciidoc
                    │   ├── list.asc
                    │   └── sample.adoc
                    ├── AspectJ/
                    │   ├── CacheAspect.aj
                    │   └── OptimizeRecursionCache.aj
                    ├── Assembly/
                    │   ├── External Interrupt.a51
                    │   ├── FASM.asm
                    │   ├── forth.nasm
                    │   ├── fp_sqr32_160_comba.inc
                    │   ├── lib.inc
                    │   └── macros.inc
                    ├── AutoHotkey/
                    │   └── hello.ahk
                    ├── Awk/
                    │   └── test.awk
                    ├── Ballerina/
                    │   ├── hello-world-service.bal
                    │   ├── hello-world.bal
                    │   ├── json.bal
                    │   ├── var.bal
                    │   └── xml.bal
                    ├── BitBake/
                    │   ├── gstreamer-libav.bb
                    │   └── qtbase-native.bb
                    ├── Blade/
                    │   ├── hello.blade
                    │   └── hello.blade.php
                    ├── BlitzBasic/
                    │   ├── HalfAndDouble.bb
                    │   ├── LList.bb
                    │   └── PObj.bb
                    ├── BlitzMax/
                    │   └── sample.bmx
                    ├── Bluespec/
                    │   ├── TL.bsv
                    │   └── TbTL.bsv
                    ├── Brainfuck/
                    │   ├── factor.b
                    │   ├── fib100.bf
                    │   ├── hello.bf
                    │   ├── helloworld.bf
                    │   └── rot13.bf
                    ├── Brightscript/
                    │   └── SimpleGrid.brs
                    ├── C/
                    │   ├── 2D.C
                    │   ├── 2D.H
                    │   ├── Arduino.cats
                    │   ├── ArrowLeft.h
                    │   ├── GLKMatrix4.h
                    │   ├── NWMan.h
                    │   ├── Nightmare.h
                    │   ├── array.c
                    │   ├── array.h
                    │   ├── asm.h
                    │   ├── bitmap.h
                    │   ├── blob.c
                    │   ├── blob.h
                    │   ├── bootstrap.h
                    │   ├── color.h
                    │   ├── commit.c
                    │   ├── commit.h
                    │   ├── cpuid.h
                    │   ├── custom_extensions.c
                    │   ├── driver.h
                    │   ├── elf.h
                    │   ├── exception.zep.c
                    │   ├── exception.zep.h
                    │   ├── filter.h
                    │   ├── fudge_node.c
                    │   ├── git.c
                    │   ├── hello.c
                    │   ├── hello.h
                    │   ├── http_parser.c
                    │   ├── http_parser.h
                    │   ├── info.h
                    │   ├── interface.h
                    │   ├── ip4.h
                    │   ├── jni_layer.h
                    │   ├── main.c
                    │   ├── markdown.c
                    │   ├── multiboot.h
                    │   ├── ntru_encrypt.h
                    │   ├── portio.h
                    │   ├── pqiv.h
                    │   ├── process.c
                    │   ├── rdiscount.c
                    │   ├── readline.cats
                    │   ├── redis.c
                    │   ├── rf_io.c
                    │   ├── rf_io.h
                    │   ├── rfc_string.c
                    │   ├── rfc_string.h
                    │   ├── scheduler.h
                    │   ├── script
                    │   ├── sgd_fast.c
                    │   ├── syscalldefs.h
                    │   ├── syscalls.h
                    │   ├── vfs.h
                    │   ├── vmem.h
                    │   ├── wglew.h
                    │   └── yajl.c
                    ├── C#/
                    │   ├── AssemblyInfo.cs
                    │   ├── BsonPropertyValue.cs
                    │   ├── Index.cshtml
                    │   ├── MongoExpressionVisitor.cs
                    │   ├── Program.cs
                    │   └── build.cake
                    ├── C++/
                    │   ├── 16F88.h
                    │   ├── ClasspathVMSystemProperties.inc
                    │   ├── CsvStreamer.h
                    │   ├── Entity.h
                    │   ├── Field.h
                    │   ├── Math.inl
                    │   ├── Memory16F88.h
                    │   ├── PackageInfoParser.cpp
                    │   ├── ThreadedQueue.h
                    │   ├── Types.h
                    │   ├── bar.h
                    │   ├── bar.hh
                    │   ├── bar.hpp
                    │   ├── bug1163046.--skeleton.re
                    │   ├── cnokw.re
                    │   ├── crypter.cpp
                    │   ├── cvsignore.re
                    │   ├── env.cpp
                    │   ├── env.h
                    │   ├── epoll_reactor.ipp
                    │   ├── gdsdbreader.h
                    │   ├── graphics.cpp
                    │   ├── grpc.pb.cc
                    │   ├── hello.cpp
                    │   ├── hello.grpc.pb.h
                    │   ├── hello.ino
                    │   ├── initClasses.inc
                    │   ├── instances.inc
                    │   ├── json_reader.cpp
                    │   ├── json_writer.cpp
                    │   ├── key.cpp
                    │   ├── key.h
                    │   ├── libcanister.h
                    │   ├── main.cpp
                    │   ├── metrics.h
                    │   ├── octave_changer.ino
                    │   ├── program.cp
                    │   ├── protocol-buffer.pb.cc
                    │   ├── protocol-buffer.pb.h
                    │   ├── render_adapter.cpp
                    │   ├── rpc.h
                    │   ├── scanner.cc
                    │   ├── scanner.h
                    │   ├── simple.re
                    │   ├── srs_app_ingest.cpp
                    │   ├── utils.h
                    │   ├── v8.cc
                    │   ├── v8.h
                    │   └── wrapper_inner.cpp
                    ├── CLIPS/
                    │   ├── demo.clp
                    │   └── sudoku.clp
                    ├── CMake/
                    │   ├── filenames/
                    │   │   └── CMakeLists.txt
                    │   ├── sample1.cmake
                    │   ├── sample2.cmake
                    │   ├── sample3.cmake
                    │   ├── sample4.cmake
                    │   ├── sample5.cmake
                    │   └── uninstall.cmake.in
                    ├── COBOL/
                    │   ├── hello_world.cbl
                    │   ├── hello_world.ccp
                    │   ├── hello_world.cob
                    │   └── simple.cpy
                    ├── CSON/
                    │   ├── base.cson
                    │   ├── config.cson
                    │   ├── ff-sfd.cson
                    │   └── wercker-status.cson
                    ├── CSS/
                    │   └── bootstrap.css
                    ├── CSV/
                    │   └── cars.csv
                    ├── CWeb/
                    │   └── sat-life.w
                    ├── CartoCSS/
                    │   └── amenity-points.mss
                    ├── Ceylon/
                    │   └── Foo.ceylon
                    ├── Chapel/
                    │   ├── distributions.chpl
                    │   ├── hello.chpl
                    │   ├── lulesh.chpl
                    │   ├── nbody.chpl
                    │   └── quicksort.chpl
                    ├── Charity/
                    │   └── example.ch
                    ├── Cirru/
                    │   ├── array.cirru
                    │   ├── block.cirru
                    │   ├── bool.cirru
                    │   ├── map.cirru
                    │   ├── number.cirru
                    │   ├── require.cirru
                    │   ├── scope.cirru
                    │   ├── stdio.cirru
                    │   └── string.cirru
                    ├── Clarion/
                    │   ├── CStringClass.clw
                    │   ├── ConsoleSupport.clw
                    │   ├── HelloWorld.clw
                    │   └── hello.clw
                    ├── Clean/
                    │   ├── GenHylo.dcl
                    │   ├── GenMap.dcl
                    │   ├── GenMap.icl
                    │   ├── fsieve.icl
                    │   ├── sem.icl
                    │   ├── stack.dcl
                    │   ├── stack.icl
                    │   ├── streams.dcl
                    │   └── streams.icl
                    ├── Click/
                    │   ├── sr2.click
                    │   └── thomer-nat.click
                    ├── Clojure/
                    │   ├── build.boot
                    │   ├── for.clj
                    │   ├── hiccup.hic
                    │   ├── index.cljs.hl
                    │   ├── into-array.cljc
                    │   ├── protocol.cljs
                    │   ├── rand.cljscm
                    │   ├── svg.cljx
                    │   └── unit-test.cl2
                    ├── Closure Templates/
                    │   └── example.soy
                    ├── CoNLL-U/
                    │   ├── CF1.conllu
                    │   ├── en-ud-test-abridged.conllu
                    │   └── ug-ud-test-abridged.conllu
                    ├── CoffeeScript/
                    │   ├── browser.coffee
                    │   ├── build.cake
                    │   ├── classes.coffee
                    │   ├── coffee-script.coffee
                    │   ├── example.cjsx
                    │   ├── hello.coffee
                    │   ├── intro.coffee
                    │   ├── lexer.coffee
                    │   ├── rack_application.coffee
                    │   └── xipd.coffee
                    ├── ColdFusion/
                    │   └── example.cfm
                    ├── ColdFusion CFC/
                    │   ├── exampleScript.cfc
                    │   └── exampleTag.cfc
                    ├── Common Lisp/
                    │   ├── array.l
                    │   ├── common.l
                    │   ├── config.sexp
                    │   ├── hello.lisp
                    │   ├── macros-advanced.cl
                    │   ├── motor-inferencia.cl
                    │   ├── rss.sexp
                    │   ├── sample.lisp
                    │   └── sample.lsp
                    ├── Common Workflow Language/
                    │   └── trunk-peak-score.cwl
                    ├── Component Pascal/
                    │   ├── Example.cp
                    │   └── Example2.cps
                    ├── Cool/
                    │   ├── list.cl
                    │   └── sample.cl
                    ├── Coq/
                    │   ├── Computation.v
                    │   ├── Imp.v
                    │   ├── JsCorrectness.v
                    │   ├── JsInterpreterExtraction.v
                    │   ├── JsNumber.v
                    │   ├── JsPrettyInterm.v
                    │   ├── Lists.v
                    │   ├── Main.v
                    │   ├── Poly.v
                    │   ├── Rel.v
                    │   ├── Smallstep.v
                    │   ├── Spec.v
                    │   └── Stlc.v
                    ├── Creole/
                    │   └── creole.creole
                    ├── Crystal/
                    │   ├── const_spec.cr
                    │   ├── declare_var_spec.cr
                    │   └── transformer.cr
                    ├── Csound/
                    │   ├── allglass.orc
                    │   ├── interp.orc
                    │   └── test.orc
                    ├── Csound Document/
                    │   ├── allglass.csd
                    │   ├── interp.csd
                    │   └── test.csd
                    ├── Csound Score/
                    │   ├── allglass.sco
                    │   ├── interp.sco
                    │   └── test.sco
                    ├── Cuda/
                    │   ├── scalarProd_kernel.cuh
                    │   └── vectorAdd.cu
                    ├── Cycript/
                    │   └── utils.cy
                    ├── D/
                    │   ├── aa.d
                    │   ├── arrayops.d
                    │   ├── function.d
                    │   ├── hello_world.d
                    │   ├── mpq.d
                    │   ├── template.d
                    │   ├── template_function.d
                    │   ├── unittest1.d
                    │   └── unittest2.d
                    ├── DIGITAL Command Language/
                    │   ├── fis_gtm_kitinstal.com
                    │   ├── ghostpdl_zlib_make_vms.com
                    │   ├── libxslt_build.com
                    │   └── vmsbackup_build.com
                    ├── DM/
                    │   └── example.dm
                    ├── DNS Zone/
                    │   ├── sample.arpa
                    │   └── sneaky.net.zone
                    ├── DOS Batch/
                    │   └── BatchInstall.bat
                    ├── DTrace/
                    │   ├── counts.d
                    │   ├── probes.d
                    │   └── trace_futexes.d
                    ├── Dart/
                    │   └── point.dart
                    ├── DataWeave/
                    │   ├── customInterpolator.dwl
                    │   ├── directives.dwl
                    │   ├── functions.dwl
                    │   ├── literals.dwl
                    │   └── match.dwl
                    ├── Diff/
                    │   └── dude-thing-okay--001.patch
                    ├── Dockerfile/
                    │   └── filenames/
                    │       └── Dockerfile
                    ├── Dogescript/
                    │   └── example.djs
                    ├── E/
                    │   ├── Extends.E
                    │   ├── Functions.E
                    │   ├── Guards.E
                    │   ├── IO.E
                    │   ├── Promises.E
                    │   ├── atomic-updates.E
                    │   └── minChat.E
                    ├── EBNF/
                    │   ├── grammar.ebnf
                    │   ├── material.ebnf
                    │   ├── object.ebnf
                    │   └── types.ebnf
                    ├── ECL/
                    │   └── sample.ecl
                    ├── ECLiPSe/
                    │   └── or-constraint.ecl
                    ├── EJS/
                    │   ├── dash.ejs
                    │   └── page.ejs
                    ├── EQ/
                    │   ├── HTTPServerVirtualHostListener.eq
                    │   ├── SEButtonEntity.eq
                    │   └── String.eq
                    ├── Eagle/
                    │   ├── Eagle.brd
                    │   └── Eagle.sch
                    ├── Easybuild/
                    │   └── bzip2-1.0.6-GCC-4.9.2.eb
                    ├── Edje Data Collection/
                    │   └── mild.edc
                    ├── Eiffel/
                    │   ├── application.e
                    │   ├── book_collection.e
                    │   └── git_checkout_command.e
                    ├── Elixir/
                    │   ├── hello_world.exs
                    │   └── hello_world_test.exs
                    ├── Elm/
                    │   ├── Basic.elm
                    │   ├── QuickSort.elm
                    │   └── Tree.elm
                    ├── Emacs Lisp/
                    │   ├── .emacs.desktop
                    │   ├── dude.el
                    │   ├── ess-julia.el
                    │   └── filenames/
                    │       ├── .abbrev_defs
                    │       ├── .gnus
                    │       ├── .spacemacs
                    │       ├── .viper
                    │       ├── Cask
                    │       ├── Project.ede
                    │       ├── _emacs
                    │       └── abbrev_defs
                    ├── EmberScript/
                    │   └── momentComponent.em
                    ├── Erlang/
                    │   ├── 170-os-daemons.es
                    │   ├── elixir_parser.yrl
                    │   ├── factorial
                    │   ├── filenames/
                    │   │   ├── Emakefile
                    │   │   └── rebar.config
                    │   ├── hello.escript
                    │   ├── lfe_scan.xrl
                    │   ├── record_helper.erl
                    │   ├── record_utils.erl
                    │   ├── release
                    │   ├── sample.app.src
                    │   └── single-context.es
                    ├── F#/
                    │   ├── Combinators.fs
                    │   ├── JsonFormat.fs
                    │   ├── JsonReader.fs
                    │   ├── JsonSerializer.fs
                    │   ├── JsonWriter.fs
                    │   ├── PerformanceTesters.fs
                    │   ├── PerformanceTests.fs
                    │   └── sample.fs
                    ├── FLUX/
                    │   ├── gameserver.fx
                    │   ├── imageserver.fx
                    │   ├── mbittorrent.fx
                    │   └── test.fx
                    ├── Factor/
                    │   └── hello-world.factor
                    ├── Fantom/
                    │   ├── sample1.fan
                    │   └── sample2.fan
                    ├── Filebench WML/
                    │   └── copyfiles.f
                    ├── Filterscript/
                    │   ├── colormatrix.fs
                    │   └── fs_kernel.fs
                    ├── Formatted/
                    │   ├── NiAlH_jea.eam.fs
                    │   ├── long_seq.for
                    │   └── wksst8110.for
                    ├── Forth/
                    │   ├── KataDiversion.fth
                    │   ├── asm.fr
                    │   ├── bitmap.frt
                    │   ├── block.fth
                    │   ├── core-ext.fth
                    │   ├── core.f
                    │   ├── core.for
                    │   ├── core.fs
                    │   ├── core.fth
                    │   ├── core1.F
                    │   ├── enum.frt
                    │   ├── hello-forth.forth
                    │   ├── hello-forth.fth
                    │   ├── macros.frt
                    │   ├── tools.4TH
                    │   └── tools.fth
                    ├── Fortran/
                    │   ├── bug-185631.f
                    │   ├── m_filt2d.F90
                    │   ├── sample1.f
                    │   ├── sample1.for
                    │   ├── sample2.f
                    │   ├── sample3.F
                    │   ├── tst.f03
                    │   ├── tst.f08
                    │   ├── tst.f15
                    │   └── tst.f95
                    ├── FreeMarker/
                    │   ├── example.ftl
                    │   └── layout.ftl
                    ├── Frege/
                    │   ├── CommandLineClock.fr
                    │   ├── Concurrent.fr
                    │   ├── Sudoku.fr
                    │   └── SwingExamples.fr
                    ├── G-code/
                    │   ├── duettest.g
                    │   └── square.g
                    ├── GAMS/
                    │   └── transport.gms
                    ├── GAP/
                    │   ├── Magic.gd
                    │   ├── Magic.gi
                    │   ├── PackageInfo.g
                    │   ├── bugfix.tst
                    │   ├── example.gd
                    │   ├── example.gi
                    │   ├── factor.tst
                    │   ├── vspc.gd
                    │   └── vspc.gi
                    ├── GCC Machine Description/
                    │   └── pdp10.md
                    ├── GDB/
                    │   ├── as3.gdbinit
                    │   └── gdb_lpc17xx_program.gdb
                    ├── GDScript/
                    │   ├── example.gd
                    │   ├── grid.gd
                    │   ├── player.gd
                    │   └── pong.gd
                    ├── GLSL/
                    │   ├── SimpleLighting.gl2.frag
                    │   ├── SyLens.glsl
                    │   ├── SyLens.shader
                    │   ├── gbuffers_textured_lit.fsh
                    │   ├── gbuffers_textured_lit.vsh
                    │   ├── islandScene.glsl
                    │   ├── islandScene.shader
                    │   ├── myfragment.frg
                    │   ├── myvertex.vrx
                    │   ├── pntriangles.tesc
                    │   ├── pntriangles.tese
                    │   ├── recurse1.frag
                    │   ├── recurse1.fs
                    │   └── shader.fp
                    ├── GN/
                    │   ├── BUILD.2.gn
                    │   ├── BUILD.3.gn
                    │   ├── BUILD.gn
                    │   ├── android-rules.gni
                    │   ├── clang.gni
                    │   ├── filenames/
                    │   │   └── .gn
                    │   ├── gcc_toolchain.gni
                    │   ├── icu.gn
                    │   ├── internal_rules.gni
                    │   ├── ios-rules.gni
                    │   └── isolate.gni
                    ├── Game Maker Language/
                    │   ├── GMLmenus.gml
                    │   ├── _piwikCacheRequest.gml
                    │   ├── _piwikSendBasicReq.gml
                    │   ├── _piwikSendReq.gml
                    │   ├── characterDrawEvent.gml
                    │   ├── characterStepEvent.gml
                    │   ├── draw_menu.gml
                    │   ├── faucet-http.gml
                    │   ├── jsonion.gml
                    │   ├── jsonion_test.gml
                    │   └── scrInitLevel.gml
                    ├── Genie/
                    │   ├── Class.gs
                    │   └── Hello.gs
                    ├── Gerber Image/
                    │   ├── FelinaePurr-B.Cu.gbl
                    │   ├── FelinaePurr-B.Mask.gbs
                    │   ├── FelinaePurr-B.SilkS.gbo
                    │   ├── FelinaePurr-F.Cu.gtl
                    │   ├── FelinaePurr-F.Mask.gts
                    │   ├── FelinaePurr-F.Paste.gtp
                    │   ├── FelinaePurr-F.SilkS.gto
                    │   ├── GOLMain_RevA-B.Paste.gbp
                    │   ├── nonaprs_contour.gko
                    │   ├── simonShield-B.Cu.gbr
                    │   ├── simonShield-B.Mask.gbr
                    │   ├── simonShield-Edge.Cuts.gbr
                    │   ├── simonShield-F.Cu.gbr
                    │   ├── simonShield-F.Mask.gbr
                    │   ├── simonShield-F.SilkS.gbr
                    │   └── simonShield-drl_map.gbr
                    ├── Gnuplot/
                    │   ├── dashcolor.1.gnu
                    │   ├── histograms.2.gnu
                    │   ├── rates.gp
                    │   ├── surface1.16.gnu
                    │   ├── surface1.17.gnu
                    │   └── world2.1.gnu
                    ├── Go/
                    │   ├── api.pb.go
                    │   ├── embedded.go
                    │   └── gen-go-linguist-thrift.go
                    ├── Golo/
                    │   ├── adapters.golo
                    │   ├── async.golo
                    │   ├── augmentations.golo
                    │   ├── closures.golo
                    │   ├── coin-change.golo
                    │   ├── collection-literals.golo
                    │   ├── context-decorator.golo
                    │   ├── decorators.golo
                    │   ├── dynamic-evaluation.golo
                    │   ├── dynamic-object-person.golo
                    │   ├── echo-args.golo
                    │   ├── enums-thread-state.golo
                    │   ├── fibonacci.golo
                    │   ├── helloworld.golo
                    │   ├── http-server.golo
                    │   ├── logdeco.golo
                    │   ├── matching-operator.golo
                    │   ├── max-int.golo
                    │   ├── memoize.golo
                    │   ├── null-safety.golo
                    │   ├── prepost-decorators.golo
                    │   ├── structs.golo
                    │   ├── swing-actionlistener.golo
                    │   ├── swing-helloworld.golo
                    │   ├── templates-chat-webapp.golo
                    │   ├── util-containers.golo
                    │   └── workers.golo
                    ├── Gosu/
                    │   ├── Hello.gst
                    │   ├── Hello.gsx
                    │   ├── Person.gs
                    │   ├── Ronin.gs
                    │   └── hello.vark
                    ├── Grace/
                    │   ├── ackerman_function.grace
                    │   └── grace_IDE.grace
                    ├── Gradle/
                    │   ├── build.gradle
                    │   └── builder.gradle
                    ├── Grammatical Framework/
                    │   ├── Foods.gf
                    │   ├── FoodsAfr.gf
                    │   ├── FoodsAmh.gf
                    │   ├── FoodsBul.gf
                    │   ├── FoodsCat.gf
                    │   ├── FoodsChi.gf
                    │   ├── FoodsCze.gf
                    │   ├── FoodsDut.gf
                    │   ├── FoodsEng.gf
                    │   ├── FoodsEpo.gf
                    │   ├── FoodsFin.gf
                    │   ├── FoodsFre.gf
                    │   ├── FoodsGer.gf
                    │   ├── FoodsHeb.gf
                    │   ├── FoodsHin.gf
                    │   ├── FoodsI.gf
                    │   ├── FoodsIce.gf
                    │   ├── FoodsIta.gf
                    │   ├── FoodsJpn.gf
                    │   ├── FoodsLav.gf
                    │   ├── FoodsMlt.gf
                    │   ├── FoodsMon.gf
                    │   ├── FoodsNep.gf
                    │   ├── FoodsOri.gf
                    │   ├── FoodsPes.gf
                    │   ├── FoodsPor.gf
                    │   ├── FoodsRon.gf
                    │   ├── FoodsSpa.gf
                    │   ├── FoodsSwe.gf
                    │   ├── FoodsTha.gf
                    │   ├── FoodsTsn.gf
                    │   ├── FoodsTur.gf
                    │   ├── FoodsUrd.gf
                    │   ├── LexFoods.gf
                    │   ├── LexFoodsCat.gf
                    │   ├── LexFoodsFin.gf
                    │   ├── LexFoodsGer.gf
                    │   ├── LexFoodsIta.gf
                    │   ├── LexFoodsSwe.gf
                    │   ├── ResCze.gf
                    │   └── transFoodsHin.gf
                    ├── Graph Modeling Language/
                    │   └── sample.gml
                    ├── GraphQL/
                    │   ├── kitchen-sink.graphql
                    │   └── schema-kitchen-sink.graphql
                    ├── Graphviz (DOT)/
                    │   ├── annoying.DOT
                    │   └── sample.dot
                    ├── Groovy/
                    │   ├── build.gvy
                    │   ├── filenames/
                    │   │   └── Jenkinsfile
                    │   ├── groovy
                    │   ├── script.gvy
                    │   ├── template.grt
                    │   └── template.gtpl
                    ├── Groovy Server Pages/
                    │   ├── bar.gsp
                    │   ├── hello-pagedirective.gsp
                    │   ├── hello-resources.gsp
                    │   └── hello-var.gsp
                    ├── HCL/
                    │   ├── example.hcl
                    │   ├── example.tf
                    │   ├── main.tf
                    │   └── terraform.tfvars
                    ├── HLSL/
                    │   ├── accelerated_surface_win.hlsl
                    │   ├── bloom.cginc
                    │   ├── corridor.fx
                    │   ├── jellyfish.fx
                    │   └── noise.fx
                    ├── HTML/
                    │   ├── ApiOverviewPage.st
                    │   ├── example.xht
                    │   ├── index.html.hl
                    │   ├── pages.html
                    │   ├── rpanel.inc
                    │   └── tailDel.inc
                    ├── HTML+Django/
                    │   ├── _worker.jinja2
                    │   └── nunjucks.njk
                    ├── HTML+ECR/
                    │   └── greeting.ecr
                    ├── HTML+EEX/
                    │   └── index.html.eex
                    ├── HTML+ERB/
                    │   ├── fishbowl.html.erb.deface
                    │   └── index.html.erb
                    ├── HXML/
                    │   ├── checkstyle.hxml
                    │   └── vshaxe.hxml
                    ├── Hack/
                    │   ├── Assert.hh
                    │   ├── AssertRecipe.hh
                    │   ├── Controller.hh
                    │   ├── DBResultRecipe.hh
                    │   ├── Documentation.hh
                    │   ├── FakeDB.hh
                    │   ├── GetAndPostRecipe.hh
                    │   ├── GetController.hh
                    │   ├── HomeController.hh
                    │   ├── MySecureRequest.hh
                    │   ├── Nav.hh
                    │   ├── NonStrictFile.hh
                    │   ├── Recipe.hh
                    │   ├── RecipeWithDemo.hh
                    │   ├── Request.hh
                    │   ├── StandardPage.hh
                    │   ├── StrictFile.hh
                    │   ├── UnescapedString.hh
                    │   ├── UnescapedStringRecipe.hh
                    │   ├── UserID.hh
                    │   ├── UserIDRecipe.hh
                    │   ├── UsingUserID.hh
                    │   ├── error.hh
                    │   ├── funs.hh
                    │   ├── funs.php
                    │   ├── index.hh
                    │   ├── phpfile.hh
                    │   └── startup.hh
                    ├── Haml/
                    │   ├── buttons.html.haml.deface
                    │   └── hello.haml
                    ├── Handlebars/
                    │   ├── basic.handlebars
                    │   └── each.hbs
                    ├── Haskell/
                    │   ├── Hello.hs
                    │   ├── HsColour.hs
                    │   ├── Main.hs
                    │   ├── Sudoku.hs
                    │   └── maze-solving.hs
                    ├── Haxe/
                    │   └── HaxeExamples.hx
                    ├── Hy/
                    │   ├── fibonacci.hy
                    │   └── hello-world.hy
                    ├── HyPhy/
                    │   ├── AAModelComparison.bf
                    │   ├── CodonModelCompare.bf
                    │   ├── MFPositiveSelection.bf
                    │   ├── MatrixIndexing.bf
                    │   ├── MolecularClock.bf
                    │   ├── dNdSDistributionComparison.bf
                    │   ├── hyphy_cmds.bf
                    │   └── profile_test.bf
                    ├── IDL/
                    │   ├── mg_acosh.pro
                    │   ├── mg_analysis.dlm
                    │   ├── mg_gcd.pro
                    │   └── mg_trunc.pro
                    ├── IGOR Pro/
                    │   ├── functions.ipf
                    │   └── generic.ipf
                    ├── INI/
                    │   ├── MouseKeyboard.pro
                    │   ├── filenames/
                    │   │   ├── .editorconfig
                    │   │   ├── .gitconfig
                    │   │   └── buildozer.spec
                    │   └── ultimate-temp-controller.pro
                    ├── Idris/
                    │   └── Chars.idr
                    ├── Inform 7/
                    │   ├── Trivial Extension.i7x
                    │   └── story.ni
                    ├── Inno Setup/
                    │   └── expat.iss
                    ├── Ioke/
                    │   └── hello.ik
                    ├── Isabelle/
                    │   └── HelloWorld.thy
                    ├── Isabelle ROOT/
                    │   └── filenames/
                    │       └── ROOT
                    ├── J/
                    │   ├── hashbang
                    │   └── stwij.ijs
                    ├── JFlex/
                    │   ├── LexScan.flex
                    │   └── java.jflex
                    ├── JSON/
                    │   ├── Git Commit.JSON-tmLanguage
                    │   ├── Material_Alpha_01.gltf
                    │   ├── filenames/
                    │   │   ├── .arcconfig
                    │   │   ├── .htmlhintrc
                    │   │   ├── .jscsrc
                    │   │   ├── .tern-config
                    │   │   ├── .tern-project
                    │   │   └── mcmod.info
                    │   ├── geo.geojson
                    │   ├── http_response.avsc
                    │   ├── manifest.webapp
                    │   ├── manifest.webmanifest
                    │   ├── person.json
                    │   ├── product.json
                    │   ├── schema.json
                    │   ├── small.tfstate
                    │   ├── switzerland.topojson
                    │   └── terraform.tfstate.backup
                    ├── JSON5/
                    │   ├── example.json5
                    │   ├── filenames/
                    │   │   ├── .babelrc
                    │   │   └── .jslintrc
                    │   └── package.json5
                    ├── JSONLD/
                    │   └── sample.jsonld
                    ├── JSONiq/
                    │   ├── detail.jq
                    │   └── query.jq
                    ├── JSX/
                    │   └── sample.jsx
                    ├── Jasmin/
                    │   ├── if1.j
                    │   ├── if2.j
                    │   ├── if3.j
                    │   ├── if4.j
                    │   ├── op1.j
                    │   ├── op2.j
                    │   ├── op3.j
                    │   └── op4.j
                    ├── Java/
                    │   ├── GrammarKit.java
                    │   ├── HtmlDomParserContext.java
                    │   ├── Hudson.java
                    │   ├── JFlexLexer.java
                    │   ├── NokogiriService.java
                    │   ├── ProtocolBuffer.java
                    │   ├── clojure-type.java
                    │   ├── clojure-util.java
                    │   └── gen-java-linguist-thrift.java
                    ├── JavaScript/
                    │   ├── axios.es
                    │   ├── basic.svelte
                    │   ├── basic.vue
                    │   ├── bootstrap-modal.js
                    │   ├── ccalc-lex.js
                    │   ├── ccalc-parse.js
                    │   ├── chart_composers.gs
                    │   ├── classes-old.js
                    │   ├── classes.js
                    │   ├── constant_fold.mjs
                    │   ├── dude.js
                    │   ├── entry.mjs
                    │   ├── gen-js-linguist-thrift.js
                    │   ├── hello.js
                    │   ├── helloHanaEndpoint.xsjs
                    │   ├── helloHanaMath.xsjslib
                    │   ├── http.js
                    │   ├── index.es
                    │   ├── intro-old.js
                    │   ├── intro.js
                    │   ├── intro.js.frag
                    │   ├── itau.gs
                    │   ├── jquery-1.6.1.js
                    │   ├── jquery-1.7.2.js
                    │   ├── js
                    │   ├── js2
                    │   ├── jsbuild.jsb
                    │   ├── json2_backbone.js
                    │   ├── logo.jscad
                    │   ├── modernizr.js
                    │   ├── module.mjs
                    │   ├── namespace.js
                    │   ├── outro.js.frag
                    │   ├── parser.js
                    │   ├── pre-processors.vue
                    │   ├── proto.js
                    │   ├── steelseries-min.js
                    │   └── uglify.js
                    ├── Jison/
                    │   ├── ansic.jison
                    │   ├── classy.jison
                    │   └── lex.jison
                    ├── Jison Lex/
                    │   ├── classy.jisonlex
                    │   └── lex_grammar.jisonlex
                    ├── Jolie/
                    │   ├── common.iol
                    │   ├── exam.ol
                    │   ├── examiner.ol
                    │   ├── hanoi.ol
                    │   └── student.ol
                    ├── Julia/
                    │   ├── julia
                    │   └── stockcorr.jl
                    ├── KRL/
                    │   └── helloworld.krl
                    ├── KiCad Layout/
                    │   ├── C_Disc_D3_P2.5.kicad_mod
                    │   ├── Conn_Poncho_SinBorde.kicad_mod
                    │   ├── Fiducial_1mm.kicad_mod
                    │   ├── LED-5MM.kicad_mod
                    │   ├── Logo_OSHWA.kicad_mod
                    │   ├── Logo_Poncho.kicad_mod
                    │   ├── MagneticBuzzer_ProSignal_ABT-410-RC.kicad_mod
                    │   ├── Pin_Header_Straight_2x02.kicad_mod
                    │   ├── Pin_Header_Straight_2x20.kicad_mod
                    │   ├── Resistor_Horizontal_RM7mm.kicad_mod
                    │   ├── SW_PUSH_SMALL.kicad_mod
                    │   ├── TO-92_Molded_Narrow.kicad_mod
                    │   ├── filenames/
                    │   │   └── fp-lib-table
                    │   ├── kivicad.kicad_wks
                    │   ├── nrf-bga.kicad_pcb
                    │   └── simonShield.kicad_pcb
                    ├── KiCad Legacy Layout/
                    │   └── tc14badge.brd
                    ├── KiCad Schematic/
                    │   ├── Volume.sch
                    │   ├── buttons.sch
                    │   ├── buzzer.sch
                    │   ├── ciaaConector.sch
                    │   ├── gedda-junk.sch
                    │   └── ultimate-temp-controller.sch
                    ├── Kit/
                    │   └── demo.kit
                    ├── Kotlin/
                    │   └── Foo.kt
                    ├── LFE/
                    │   ├── church.lfe
                    │   ├── gps1.lfe
                    │   ├── mnesia_demo.lfe
                    │   └── object.lfe
                    ├── LOLCODE/
                    │   └── LOLTracer.lol
                    ├── LSL/
                    │   ├── LSL.lsl
                    │   └── LSL.lslp
                    ├── Lasso/
                    │   ├── json.lasso
                    │   ├── json.lasso9
                    │   ├── knop.las
                    │   └── knop.ldml
                    ├── Latte/
                    │   ├── layout.latte
                    │   └── template.latte
                    ├── Lean/
                    │   ├── binary.lean
                    │   └── set.hlean
                    ├── Less/
                    │   └── screen.less
                    ├── Lex/
                    │   └── zend_ini_scanner.l
                    ├── Limbo/
                    │   ├── cat.b
                    │   ├── lock.b
                    │   └── lock.m
                    ├── Linker Script/
                    │   ├── filenames/
                    │   │   └── ld.script
                    │   ├── inject.x
                    │   ├── link.ld
                    │   └── vmlinux.lds
                    ├── Linux Kernel Module/
                    │   ├── bcm4334x.mod
                    │   ├── mbcache.mod
                    │   └── md5.mod
                    ├── Liquid/
                    │   ├── layout.liquid
                    │   └── template.liquid
                    ├── Literate Agda/
                    │   └── NatCat.lagda
                    ├── Literate CoffeeScript/
                    │   └── scope.litcoffee
                    ├── LiveScript/
                    │   └── hello.ls
                    ├── Logos/
                    │   ├── NCHax.x
                    │   ├── NoCarrier.x
                    │   ├── Tweak.x
                    │   ├── example.xm
                    │   └── string1.x
                    ├── Logtalk/
                    │   └── foo.lgt
                    ├── LookML/
                    │   ├── comments.view.lookml
                    │   ├── example.model.lkml
                    │   └── example.view.lkml
                    ├── LoomScript/
                    │   ├── HelloWorld.ls
                    │   └── SyntaxExercise.ls
                    ├── Lua/
                    │   ├── h-counter.pd_lua
                    │   ├── treegen.p8
                    │   ├── vidya-file-list-parser.pd_lua
                    │   ├── vidya-file-modder.pd_lua
                    │   └── wsapi.fcgi
                    ├── M/
                    │   ├── Comment.m
                    │   ├── GMRGPNB0.m
                    │   ├── MDB.m
                    │   ├── PRCAAPR.m
                    │   ├── PXAI.m
                    │   ├── WVBRNOT.m
                    │   ├── ZDIOUT1.m
                    │   ├── _zewdAPI.m
                    │   ├── _zewdDemo.m
                    │   ├── arrays.m
                    │   ├── base64.m
                    │   ├── digest.m
                    │   ├── dynamicscoping.m
                    │   ├── fibonacci.m
                    │   ├── forloop.m
                    │   ├── functions.m
                    │   ├── helloworld.m
                    │   ├── ifelse.m
                    │   ├── indirectfunctions.m
                    │   ├── md5.m
                    │   ├── mileage.m
                    │   ├── mumtris.m
                    │   ├── nesting.m
                    │   ├── pcre.m
                    │   ├── pcreexamples.m
                    │   ├── postconditional.m
                    │   ├── primes.m
                    │   ├── url.m
                    │   └── zmwire.m
                    ├── M4/
                    │   └── htmlgen.m4
                    ├── M4Sugar/
                    │   ├── ax_ruby_devel.m4
                    │   ├── filenames/
                    │   │   └── configure.ac
                    │   └── list.m4
                    ├── MAXScript/
                    │   ├── macro-1.mcr
                    │   ├── macro-2.mcr
                    │   ├── rolloutCreator.ms
                    │   ├── svg-renderer.ms
                    │   └── volume-calc.ms
                    ├── MQL4/
                    │   ├── header-sample.mqh
                    │   ├── indicator-sample.mq4
                    │   └── script-sample.mq4
                    ├── MQL5/
                    │   ├── Regex.mqh
                    │   ├── indicator-sample.mq5
                    │   └── script-sample.mq5
                    ├── MTML/
                    │   └── categories_to_columns.mtml
                    ├── MUF/
                    │   ├── 39.m
                    │   └── cmd-say.muf
                    ├── Makefile/
                    │   ├── file-icons.make
                    │   ├── filenames/
                    │   │   ├── BSDmakefile
                    │   │   ├── Kbuild
                    │   │   ├── Makefile
                    │   │   ├── Makefile.boot
                    │   │   ├── Makefile.frag
                    │   │   ├── Makefile.inc
                    │   │   ├── Makefile.wat
                    │   │   ├── makefile.sco
                    │   │   └── mkfile
                    │   ├── foo.o.d
                    │   └── makefile
                    ├── Markdown/
                    │   ├── README.mdown
                    │   ├── csharp6.workbook
                    │   ├── minimal.md
                    │   ├── symlink.md
                    │   └── tender.md
                    ├── Marko/
                    │   ├── counter.marko
                    │   ├── hello.marko
                    │   └── rgb-sliders.marko
                    ├── Mask/
                    │   └── view.mask
                    ├── Mathematica/
                    │   ├── HeyexImport.m
                    │   ├── Init.m
                    │   ├── MiscCalculations.nb
                    │   ├── MiscCalculations2.nb
                    │   ├── PacletInfo.m
                    │   ├── Predicates.m
                    │   ├── Predicates.wl
                    │   ├── Problem12.m
                    │   ├── TestArithmetic.mt
                    │   ├── TestString.mt
                    │   ├── TestSuite.mt
                    │   └── UnitTest.wlt
                    ├── Matlab/
                    │   ├── CVX/
                    │   │   ├── Contents.m
                    │   │   ├── builtins/
                    │   │   │   ├── @cvx/
                    │   │   │   │   ├── abs.m
                    │   │   │   │   ├── blkdiag.m
                    │   │   │   │   ├── builtins.m
                    │   │   │   │   ├── cat.m
                    │   │   │   │   ├── conj.m
                    │   │   │   │   ├── conv.m
                    │   │   │   │   ├── ctranspose.m
                    │   │   │   │   ├── cumprod.m
                    │   │   │   │   ├── cumsum.m
                    │   │   │   │   ├── diag.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── end.m
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── exp.m
                    │   │   │   │   ├── find.m
                    │   │   │   │   ├── full.m
                    │   │   │   │   ├── ge.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   ├── hankel.m
                    │   │   │   │   ├── horzcat.m
                    │   │   │   │   ├── imag.m
                    │   │   │   │   ├── ipermute.m
                    │   │   │   │   ├── isreal.m
                    │   │   │   │   ├── kron.m
                    │   │   │   │   ├── ldivide.m
                    │   │   │   │   ├── le.m
                    │   │   │   │   ├── log.m
                    │   │   │   │   ├── lt.m
                    │   │   │   │   ├── max.m
                    │   │   │   │   ├── min.m
                    │   │   │   │   ├── minus.m
                    │   │   │   │   ├── mldivide.m
                    │   │   │   │   ├── mpower.m
                    │   │   │   │   ├── mrdivide.m
                    │   │   │   │   ├── mtimes.m
                    │   │   │   │   ├── ne.m
                    │   │   │   │   ├── nnz.m
                    │   │   │   │   ├── norm.m
                    │   │   │   │   ├── permute.m
                    │   │   │   │   ├── plus.m
                    │   │   │   │   ├── polyval.m
                    │   │   │   │   ├── power.m
                    │   │   │   │   ├── prod.m
                    │   │   │   │   ├── rdivide.m
                    │   │   │   │   ├── real.m
                    │   │   │   │   ├── reshape.m
                    │   │   │   │   ├── size.m
                    │   │   │   │   ├── sparse.m
                    │   │   │   │   ├── spy.m
                    │   │   │   │   ├── sqrt.m
                    │   │   │   │   ├── std.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   ├── sum.m
                    │   │   │   │   ├── times.m
                    │   │   │   │   ├── toeplitz.m
                    │   │   │   │   ├── transpose.m
                    │   │   │   │   ├── tril.m
                    │   │   │   │   ├── triu.m
                    │   │   │   │   ├── uminus.m
                    │   │   │   │   ├── uplus.m
                    │   │   │   │   ├── var.m
                    │   │   │   │   └── vertcat.m
                    │   │   │   ├── @cvxcnst/
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── ge.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   ├── le.m
                    │   │   │   │   ├── lt.m
                    │   │   │   │   └── ne.m
                    │   │   │   └── Contents.m
                    │   │   ├── commands/
                    │   │   │   ├── @cvx/
                    │   │   │   │   └── commands.m
                    │   │   │   ├── Contents.m
                    │   │   │   ├── cvx_begin.m
                    │   │   │   ├── cvx_clear.m
                    │   │   │   ├── cvx_end.m
                    │   │   │   ├── cvx_expert.m
                    │   │   │   ├── cvx_pause.m
                    │   │   │   ├── cvx_power_warning.m
                    │   │   │   ├── cvx_precision.m
                    │   │   │   ├── cvx_profile.m
                    │   │   │   ├── cvx_quiet.m
                    │   │   │   ├── cvx_save_prefs.m
                    │   │   │   ├── cvx_solver.m
                    │   │   │   ├── cvx_solver_settings.m
                    │   │   │   ├── cvx_tic.m
                    │   │   │   ├── cvx_toc.m
                    │   │   │   └── cvx_where.m
                    │   │   ├── cvx_error.m
                    │   │   ├── cvx_setup.m
                    │   │   ├── cvx_startup.m
                    │   │   ├── cvx_version.m
                    │   │   ├── examples/
                    │   │   │   ├── Contents.m
                    │   │   │   ├── antenna_array_design/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── ant_array_min_beamwidth.m
                    │   │   │   │   ├── ant_array_min_sidelobe.m
                    │   │   │   │   ├── ant_array_min_therm_noise.m
                    │   │   │   │   ├── broadband_array_min_sidelobe.m
                    │   │   │   │   ├── line_array_spec_fact.m
                    │   │   │   │   ├── polar_plot_ant.m
                    │   │   │   │   └── spectral_fact.m
                    │   │   │   ├── circuit_design/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── LC_osc_design.m
                    │   │   │   │   ├── clock_mesh.m
                    │   │   │   │   ├── dig_ckt_sizing.m
                    │   │   │   │   ├── elmore_straight_wire.m
                    │   │   │   │   ├── inverter_chain_sizing.m
                    │   │   │   │   ├── plot_four_tapers.m
                    │   │   │   │   ├── simple_NAND2_gate_design.m
                    │   │   │   │   ├── simple_step.m
                    │   │   │   │   ├── tristate_bus_sizing.m
                    │   │   │   │   ├── wire_driver_sizing.m
                    │   │   │   │   ├── wire_sizing.m
                    │   │   │   │   ├── wire_sizing_spacing.m
                    │   │   │   │   └── wire_sizing_topology.m
                    │   │   │   ├── closest_toeplitz_psd.m
                    │   │   │   ├── cvxbook/
                    │   │   │   │   ├── Ch04_cvx_opt_probs/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── cantilever_beam.m
                    │   │   │   │   │   ├── cantilever_beam_plot.m
                    │   │   │   │   │   ├── cantilever_beam_rec.m
                    │   │   │   │   │   ├── channel_capacity.m
                    │   │   │   │   │   ├── chebyshev_center.m
                    │   │   │   │   │   ├── chebyshev_center_2D.m
                    │   │   │   │   │   ├── ex_4_27.m
                    │   │   │   │   │   ├── ex_4_3.m
                    │   │   │   │   │   ├── ex_4_38.m
                    │   │   │   │   │   ├── ex_4_5.m
                    │   │   │   │   │   ├── fastest_mixing_MC.m
                    │   │   │   │   │   ├── frob_norm_diag_scaling.m
                    │   │   │   │   │   ├── logopt_investment.m
                    │   │   │   │   │   ├── max_det_psd_completion.m
                    │   │   │   │   │   └── min_spec_rad_ppl_dynamics.m
                    │   │   │   │   ├── Ch05_duality/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── ex_5_1.m
                    │   │   │   │   │   ├── ex_5_19.m
                    │   │   │   │   │   ├── ex_5_33.m
                    │   │   │   │   │   ├── ex_5_39.m
                    │   │   │   │   │   ├── matrix_games.m
                    │   │   │   │   │   ├── matrix_games_LP.m
                    │   │   │   │   │   ├── norm_approx.m
                    │   │   │   │   │   └── qcqp.m
                    │   │   │   │   ├── Ch06_approx_fitting/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── basispursuit.m
                    │   │   │   │   │   ├── convex_interpolation.m
                    │   │   │   │   │   ├── deadzone.m
                    │   │   │   │   │   ├── fig6_15.m
                    │   │   │   │   │   ├── fig6_19.m
                    │   │   │   │   │   ├── fig6_20.m
                    │   │   │   │   │   ├── fig6_5.m
                    │   │   │   │   │   ├── fig6_6.m
                    │   │   │   │   │   ├── fig6_9.m
                    │   │   │   │   │   ├── penalty_comp_cvx.m
                    │   │   │   │   │   ├── preference_regions.m
                    │   │   │   │   │   ├── regressor_cvx.m
                    │   │   │   │   │   ├── smoothrec_cvx.m
                    │   │   │   │   │   ├── tv_cvx.m
                    │   │   │   │   │   └── wcrobls.m
                    │   │   │   │   ├── Ch07_statistical_estim/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── ML_covariance_est.m
                    │   │   │   │   │   ├── cheb.m
                    │   │   │   │   │   ├── cher.m
                    │   │   │   │   │   ├── counting_problem_poisson.m
                    │   │   │   │   │   ├── detector2.m
                    │   │   │   │   │   ├── expdesign.m
                    │   │   │   │   │   ├── logistics.m
                    │   │   │   │   │   ├── logistics_gp.m
                    │   │   │   │   │   ├── maxent.m
                    │   │   │   │   │   ├── montecarlo.m
                    │   │   │   │   │   └── probbounds.m
                    │   │   │   │   ├── Ch08_geometric_probs/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   ├── analytic_center.m
                    │   │   │   │   │   ├── data_floorplan_32.mat
                    │   │   │   │   │   ├── data_floorplan_60.mat
                    │   │   │   │   │   ├── eucl_dist_poly.m
                    │   │   │   │   │   ├── eucl_dist_poly_2D.m
                    │   │   │   │   │   ├── eucl_proj_cone1.m
                    │   │   │   │   │   ├── eucl_proj_cone2.m
                    │   │   │   │   │   ├── eucl_proj_hlf.m
                    │   │   │   │   │   ├── eucl_proj_hyp.m
                    │   │   │   │   │   ├── eucl_proj_rect.m
                    │   │   │   │   │   ├── ex_8_3.m
                    │   │   │   │   │   ├── ex_8_4.m
                    │   │   │   │   │   ├── ex_8_5.m
                    │   │   │   │   │   ├── floor_plan.m
                    │   │   │   │   │   ├── floor_plan_graphs.m
                    │   │   │   │   │   ├── floorplan.m
                    │   │   │   │   │   ├── linear_discr.m
                    │   │   │   │   │   ├── max_vol_ellip_in_polyhedra.m
                    │   │   │   │   │   ├── min_vol_elp_finite_set.m
                    │   │   │   │   │   ├── min_vol_union_ellip.m
                    │   │   │   │   │   ├── placement_lin.m
                    │   │   │   │   │   ├── placement_quad.m
                    │   │   │   │   │   ├── placement_quar.m
                    │   │   │   │   │   ├── poly3_discr.m
                    │   │   │   │   │   ├── poly4_discr.m
                    │   │   │   │   │   ├── quad_discr.m
                    │   │   │   │   │   ├── robust_lin_discr.m
                    │   │   │   │   │   ├── separate_ell_2D.m
                    │   │   │   │   │   ├── separate_poly_2D.m
                    │   │   │   │   │   ├── separate_pt_poly.m
                    │   │   │   │   │   ├── svm_1.m
                    │   │   │   │   │   ├── svm_2.m
                    │   │   │   │   │   └── test_floorplan.m
                    │   │   │   │   ├── Ch11_intpt_methods/
                    │   │   │   │   │   ├── Contents.m
                    │   │   │   │   │   └── log_utility_flow.m
                    │   │   │   │   └── Contents.m
                    │   │   │   ├── equality_constr_norm_min.m
                    │   │   │   ├── filter_design/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── equalizer_design.m
                    │   │   │   │   ├── fir_chebychev_design.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_max_atten.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_min_order.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_min_ripple.m
                    │   │   │   │   ├── fir_lin_phase_lowpass_min_trans.m
                    │   │   │   │   ├── fir_mag_design_lowpass_max_atten.m
                    │   │   │   │   ├── fir_mag_design_lowpass_min_order.m
                    │   │   │   │   ├── iir_mag_design_bandpass_max_atten.m
                    │   │   │   │   ├── iir_mag_design_lowpass_max_atten.m
                    │   │   │   │   ├── one_over_f_filter.m
                    │   │   │   │   └── spectral_fact.m
                    │   │   │   ├── gp_tutorial/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── basic_odp.m
                    │   │   │   │   ├── beta_min_odp.m
                    │   │   │   │   ├── elmore_interconnect.m
                    │   │   │   │   ├── floor_planning.m
                    │   │   │   │   ├── max_volume_box.m
                    │   │   │   │   ├── power_control.m
                    │   │   │   │   ├── simple_dig_ckt_sizing.m
                    │   │   │   │   └── simple_dig_ckt_sizing_vect.m
                    │   │   │   ├── graph_laplacian/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── best_const.m
                    │   │   │   │   ├── cut_grid_data.m
                    │   │   │   │   ├── cut_grid_example.m
                    │   │   │   │   ├── fdla.m
                    │   │   │   │   ├── fmmc.m
                    │   │   │   │   ├── larger_example.m
                    │   │   │   │   ├── max_deg.m
                    │   │   │   │   ├── mh.m
                    │   │   │   │   ├── plotgraph.m
                    │   │   │   │   └── small_example.m
                    │   │   │   ├── log_exp/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── max_entropy.m
                    │   │   │   │   ├── sparse_covariance_est.m
                    │   │   │   │   ├── sparse_covariance_est_tradeoff.m
                    │   │   │   │   └── weighted_analytic_center.m
                    │   │   │   ├── make.m
                    │   │   │   ├── min_phase_spectral_fact.m
                    │   │   │   ├── nonneg_matrix_fact.m
                    │   │   │   ├── quickstart.m
                    │   │   │   ├── regularized_norm_tradeoff.m
                    │   │   │   ├── simple_LP.m
                    │   │   │   ├── simple_LP2.m
                    │   │   │   ├── simple_LS.m
                    │   │   │   ├── sparse_heuristics/
                    │   │   │   │   ├── Contents.m
                    │   │   │   │   ├── sparse_infeas.m
                    │   │   │   │   ├── sparse_infeas_dual.m
                    │   │   │   │   └── sparse_solution.m
                    │   │   │   └── time_series_analysis/
                    │   │   │       ├── Contents.m
                    │   │   │       └── l1_trend_filter_snp500.m
                    │   │   ├── functions/
                    │   │   │   ├── @cvx/
                    │   │   │   │   ├── avg_abs_dev.m
                    │   │   │   │   ├── avg_abs_dev_med.m
                    │   │   │   │   ├── berhu.m
                    │   │   │   │   ├── cvx_recip.m
                    │   │   │   │   ├── det_inv.m
                    │   │   │   │   ├── det_rootn.m
                    │   │   │   │   ├── functions.m
                    │   │   │   │   ├── geo_mean.m
                    │   │   │   │   ├── huber_pos.m
                    │   │   │   │   ├── inv_pos.m
                    │   │   │   │   ├── lambda_max.m
                    │   │   │   │   ├── lambda_sum_largest.m
                    │   │   │   │   ├── log_normcdf.m
                    │   │   │   │   ├── log_sum_exp.m
                    │   │   │   │   ├── matrix_frac.m
                    │   │   │   │   ├── norm_nuc.m
                    │   │   │   │   ├── norms.m
                    │   │   │   │   ├── pow_abs.m
                    │   │   │   │   ├── pow_cvx.m
                    │   │   │   │   ├── pow_p.m
                    │   │   │   │   ├── pow_pos.m
                    │   │   │   │   ├── prod_inv.m
                    │   │   │   │   ├── quad_form.m
                    │   │   │   │   ├── quad_over_lin.m
                    │   │   │   │   ├── quad_pos_over_lin.m
                    │   │   │   │   ├── rel_entr.m
                    │   │   │   │   ├── sigma_max.m
                    │   │   │   │   ├── square.m
                    │   │   │   │   ├── square_abs.m
                    │   │   │   │   ├── square_pos.m
                    │   │   │   │   ├── sum_largest.m
                    │   │   │   │   ├── sum_log.m
                    │   │   │   │   ├── sum_square.m
                    │   │   │   │   ├── sum_square_abs.m
                    │   │   │   │   ├── sum_square_pos.m
                    │   │   │   │   ├── trace_inv.m
                    │   │   │   │   ├── trace_sqrtm.m
                    │   │   │   │   └── vec.m
                    │   │   │   ├── Contents.m
                    │   │   │   ├── avg_abs_dev.m
                    │   │   │   ├── avg_abs_dev_med.m
                    │   │   │   ├── berhu.m
                    │   │   │   ├── det_inv.m
                    │   │   │   ├── det_root2n.m
                    │   │   │   ├── det_rootn.m
                    │   │   │   ├── entr.m
                    │   │   │   ├── geo_mean.m
                    │   │   │   ├── geomean.m
                    │   │   │   ├── huber.m
                    │   │   │   ├── huber_circ.m
                    │   │   │   ├── huber_pos.m
                    │   │   │   ├── inv_pos.m
                    │   │   │   ├── kl_div.m
                    │   │   │   ├── lambda_max.m
                    │   │   │   ├── lambda_min.m
                    │   │   │   ├── lambda_sum_largest.m
                    │   │   │   ├── lambda_sum_smallest.m
                    │   │   │   ├── log_det.m
                    │   │   │   ├── log_normcdf.m
                    │   │   │   ├── log_prod.m
                    │   │   │   ├── log_sum_exp.m
                    │   │   │   ├── logsumexp.m
                    │   │   │   ├── logsumexp_sdp.m
                    │   │   │   ├── matrix_frac.m
                    │   │   │   ├── norm_largest.m
                    │   │   │   ├── norm_nuc.m
                    │   │   │   ├── norms.m
                    │   │   │   ├── norms_largest.m
                    │   │   │   ├── poly_env.m
                    │   │   │   ├── polyenv.m
                    │   │   │   ├── polyval_trig.m
                    │   │   │   ├── pos.m
                    │   │   │   ├── pow_abs.m
                    │   │   │   ├── pow_p.m
                    │   │   │   ├── pow_pos.m
                    │   │   │   ├── prod_inv.m
                    │   │   │   ├── quad_form.m
                    │   │   │   ├── quad_over_lin.m
                    │   │   │   ├── quad_pos_over_lin.m
                    │   │   │   ├── rel_entr.m
                    │   │   │   ├── sigma_max.m
                    │   │   │   ├── square_/
                    │   │   │   │   └── square.m
                    │   │   │   ├── square_abs.m
                    │   │   │   ├── square_pos.m
                    │   │   │   ├── sum_largest.m
                    │   │   │   ├── sum_log.m
                    │   │   │   ├── sum_smallest.m
                    │   │   │   ├── sum_square.m
                    │   │   │   ├── sum_square_abs.m
                    │   │   │   ├── sum_square_pos.m
                    │   │   │   ├── sym.m
                    │   │   │   ├── trace_inv.m
                    │   │   │   ├── trace_sqrtm.m
                    │   │   │   └── vec_/
                    │   │   │       └── vec.m
                    │   │   ├── keywords/
                    │   │   │   ├── Contents.m
                    │   │   │   ├── In.m
                    │   │   │   ├── binary.m
                    │   │   │   ├── dual.m
                    │   │   │   ├── epigraph.m
                    │   │   │   ├── expression.m
                    │   │   │   ├── expressions.m
                    │   │   │   ├── hypograph.m
                    │   │   │   ├── integer.m
                    │   │   │   ├── maximise.m
                    │   │   │   ├── maximize.m
                    │   │   │   ├── minimise.m
                    │   │   │   ├── minimize.m
                    │   │   │   ├── subject.m
                    │   │   │   ├── variable.m
                    │   │   │   └── variables.m
                    │   │   ├── lib/
                    │   │   │   ├── @cell/
                    │   │   │   │   ├── cvx_id.m
                    │   │   │   │   ├── cvx_setdual.m
                    │   │   │   │   └── cvx_value.m
                    │   │   │   ├── @cvx/
                    │   │   │   │   ├── bcompress.m
                    │   │   │   │   ├── buncompress.m
                    │   │   │   │   ├── cvx.m
                    │   │   │   │   ├── cvx_basis.m
                    │   │   │   │   ├── cvx_classify.m
                    │   │   │   │   ├── cvx_constant.m
                    │   │   │   │   ├── cvx_getdual.m
                    │   │   │   │   ├── cvx_isaffine.m
                    │   │   │   │   ├── cvx_isconcave.m
                    │   │   │   │   ├── cvx_isconstant.m
                    │   │   │   │   ├── cvx_isconvex.m
                    │   │   │   │   ├── cvx_isnonzero.m
                    │   │   │   │   ├── cvx_readlevel.m
                    │   │   │   │   ├── cvx_setdual.m
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvx_vexity.m
                    │   │   │   │   ├── in.m
                    │   │   │   │   ├── keywords.m
                    │   │   │   │   ├── matlab6.m
                    │   │   │   │   ├── sets.m
                    │   │   │   │   ├── sparsify.m
                    │   │   │   │   ├── svec.m
                    │   │   │   │   ├── type.m
                    │   │   │   │   └── value.m
                    │   │   │   ├── @cvxcnst/
                    │   │   │   │   ├── cvxcnst.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── display.m
                    │   │   │   │   ├── double.m
                    │   │   │   │   ├── logical.m
                    │   │   │   │   └── rhs.m
                    │   │   │   ├── @cvxdual/
                    │   │   │   │   ├── colon.m
                    │   │   │   │   ├── cvx_basis.m
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvxaff.m
                    │   │   │   │   ├── cvxdual.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── display.m
                    │   │   │   │   ├── dof.m
                    │   │   │   │   ├── inuse.m
                    │   │   │   │   ├── isreal.m
                    │   │   │   │   ├── name.m
                    │   │   │   │   ├── problem.m
                    │   │   │   │   ├── size.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   ├── type.m
                    │   │   │   │   └── value.m
                    │   │   │   ├── @cvxin/
                    │   │   │   │   ├── cvxin.m
                    │   │   │   │   ├── cvxtuple.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   └── lt.m
                    │   │   │   ├── @cvxobj/
                    │   │   │   │   ├── cvx_id.m
                    │   │   │   │   ├── cvxobj.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── display.m
                    │   │   │   │   ├── isempty.m
                    │   │   │   │   ├── isequal.m
                    │   │   │   │   ├── length.m
                    │   │   │   │   ├── ndims.m
                    │   │   │   │   ├── numel.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   └── subsref.m
                    │   │   │   ├── @cvxprob/
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvxprob.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── eliminate.m
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── extract.m
                    │   │   │   │   ├── index.m
                    │   │   │   │   ├── ne.m
                    │   │   │   │   ├── newcnstr.m
                    │   │   │   │   ├── newdual.m
                    │   │   │   │   ├── newnonl.m
                    │   │   │   │   ├── newobj.m
                    │   │   │   │   ├── newtemp.m
                    │   │   │   │   ├── newvar.m
                    │   │   │   │   ├── pop.m
                    │   │   │   │   ├── solve.m
                    │   │   │   │   ├── spy.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   └── touch.m
                    │   │   │   ├── @cvxtuple/
                    │   │   │   │   ├── apply.m
                    │   │   │   │   ├── cvx_collapse.m
                    │   │   │   │   ├── cvx_constant.m
                    │   │   │   │   ├── cvx_getdual.m
                    │   │   │   │   ├── cvx_id.m
                    │   │   │   │   ├── cvx_isaffine.m
                    │   │   │   │   ├── cvx_isconcave.m
                    │   │   │   │   ├── cvx_isconstant.m
                    │   │   │   │   ├── cvx_isconvex.m
                    │   │   │   │   ├── cvx_setdual.m
                    │   │   │   │   ├── cvx_value.m
                    │   │   │   │   ├── cvxtuple.m
                    │   │   │   │   ├── disp.m
                    │   │   │   │   ├── eq.m
                    │   │   │   │   ├── ge.m
                    │   │   │   │   ├── gt.m
                    │   │   │   │   ├── in.m
                    │   │   │   │   ├── le.m
                    │   │   │   │   ├── lt.m
                    │   │   │   │   ├── ne.m
                    │   │   │   │   ├── numel.m
                    │   │   │   │   ├── subsasgn.m
                    │   │   │   │   ├── subsref.m
                    │   │   │   │   └── testall.m
                    │   │   │   ├── Contents.m
                    │   │   │   ├── cvx_accept_concave.m
                    │   │   │   ├── cvx_accept_convex.m
                    │   │   │   ├── cvx_basis.m
                    │   │   │   ├── cvx_bcompress.m
                    │   │   │   ├── cvx_blkdiag.m
                    │   │   │   ├── cvx_c2r.m
                    │   │   │   ├── cvx_check_dimension.m
                    │   │   │   ├── cvx_check_dimlist.m
                    │   │   │   ├── cvx_class.m
                    │   │   │   ├── cvx_classify.m
                    │   │   │   ├── cvx_clearpath.m
                    │   │   │   ├── cvx_clearspath.m
                    │   │   │   ├── cvx_collapse.m
                    │   │   │   ├── cvx_constant.m
                    │   │   │   ├── cvx_default_dimension.m
                    │   │   │   ├── cvx_expand_dim.m
                    │   │   │   ├── cvx_expert_check.m
                    │   │   │   ├── cvx_getdual.m
                    │   │   │   ├── cvx_global.m
                    │   │   │   ├── cvx_id.m
                    │   │   │   ├── cvx_ids.m
                    │   │   │   ├── cvx_isaffine.m
                    │   │   │   ├── cvx_isconcave.m
                    │   │   │   ├── cvx_isconstant.m
                    │   │   │   ├── cvx_isconvex.m
                    │   │   │   ├── cvx_isnonzero.m
                    │   │   │   ├── cvx_r2c.m
                    │   │   │   ├── cvx_readlevel.m
                    │   │   │   ├── cvx_reduce_size.m
                    │   │   │   ├── cvx_remap.m
                    │   │   │   ├── cvx_reshape.m
                    │   │   │   ├── cvx_run_solver.m
                    │   │   │   ├── cvx_setdual.m
                    │   │   │   ├── cvx_setpath.m
                    │   │   │   ├── cvx_setspath.m
                    │   │   │   ├── cvx_size_check.m
                    │   │   │   ├── cvx_subs2str.m
                    │   │   │   ├── cvx_subsasgn.m
                    │   │   │   ├── cvx_subsref.m
                    │   │   │   ├── cvx_subsref_check.m
                    │   │   │   ├── cvx_use_sparse.m
                    │   │   │   ├── cvx_value.m
                    │   │   │   ├── cvx_values.m
                    │   │   │   ├── cvx_vexity.m
                    │   │   │   ├── cvx_zeros.m
                    │   │   │   └── narginchk_/
                    │   │   │       └── narginchk.m
                    │   │   ├── sets/
                    │   │   │   ├── Contents.m
                    │   │   │   ├── complex_lorentz.m
                    │   │   │   ├── convex_poly_coeffs.m
                    │   │   │   ├── exponential.m
                    │   │   │   ├── geo_mean_cone.m
                    │   │   │   ├── hermitian_semidefinite.m
                    │   │   │   ├── lorentz.m
                    │   │   │   ├── nonneg_poly_coeffs.m
                    │   │   │   ├── nonnegative.m
                    │   │   │   ├── norm_ball.m
                    │   │   │   ├── rotated_complex_lorentz.m
                    │   │   │   ├── rotated_lorentz.m
                    │   │   │   ├── semidefinite.m
                    │   │   │   └── simplex.m
                    │   │   ├── shims/
                    │   │   │   ├── cvx_glpk.m
                    │   │   │   ├── cvx_sdpt3.m
                    │   │   │   └── cvx_sedumi.m
                    │   │   └── structures/
                    │   │       ├── @cvx/
                    │   │       │   └── structures.m
                    │   │       ├── Contents.m
                    │   │       ├── cvx_create_structure.m
                    │   │       ├── cvx_invert_structure.m
                    │   │       ├── cvx_orthog_structure.m
                    │   │       ├── cvx_replicate_structure.m
                    │   │       ├── cvx_s_banded.m
                    │   │       ├── cvx_s_hankel.m
                    │   │       ├── cvx_s_hermitian.m
                    │   │       ├── cvx_s_sparse.m
                    │   │       ├── cvx_s_symmetric.m
                    │   │       ├── cvx_s_symmetric_ut.m
                    │   │       └── cvx_s_upper_hankel.m
                    │   ├── Check_plot.m
                    │   ├── FTLEH.m
                    │   ├── FTLE_reg.m
                    │   ├── Integrate1.m
                    │   ├── Integrate2.m
                    │   ├── Lagr.m
                    │   ├── Lagrangian_points.m
                    │   ├── Poincare.m
                    │   ├── RK4.m
                    │   ├── TFOCS/
                    │   │   ├── @double/
                    │   │   │   ├── tfocs_dot.m
                    │   │   │   ├── tfocs_size.m
                    │   │   │   └── vec.m
                    │   │   ├── @single/
                    │   │   │   ├── tfocs_dot.m
                    │   │   │   ├── tfocs_size.m
                    │   │   │   └── vec.m
                    │   │   ├── @tfocs_tuple/
                    │   │   │   ├── abs.m
                    │   │   │   ├── cell.m
                    │   │   │   ├── disp.m
                    │   │   │   ├── display.m
                    │   │   │   ├── get.m
                    │   │   │   ├── max.m
                    │   │   │   ├── min.m
                    │   │   │   ├── minus.m
                    │   │   │   ├── mtimes.m
                    │   │   │   ├── nnz.m
                    │   │   │   ├── numel.m
                    │   │   │   ├── plus.m
                    │   │   │   ├── power.m
                    │   │   │   ├── size.m
                    │   │   │   ├── subsref.m
                    │   │   │   ├── tfocs_dot.m
                    │   │   │   ├── tfocs_normsq.m
                    │   │   │   ├── tfocs_size.m
                    │   │   │   ├── tfocs_tuple.m
                    │   │   │   ├── tfocs_zeros.m
                    │   │   │   ├── times.m
                    │   │   │   └── uminus.m
                    │   │   ├── Contents.m
                    │   │   ├── continuation.m
                    │   │   ├── examples/
                    │   │   │   ├── demos/
                    │   │   │   │   ├── SIAM_demo.m
                    │   │   │   │   ├── callandmap.m
                    │   │   │   │   ├── demo_MatrixCompletion.m
                    │   │   │   │   ├── demo_SVM.m
                    │   │   │   │   ├── demo_alternatingProjections.m
                    │   │   │   │   ├── project2DCone.m
                    │   │   │   │   └── recordPoints.m
                    │   │   │   ├── largescale/
                    │   │   │   │   ├── BugsBunny.mat
                    │   │   │   │   ├── PsiTransposeWFF.m
                    │   │   │   │   ├── PsiWFF.m
                    │   │   │   │   ├── example_quantumTomography.m
                    │   │   │   │   ├── explicitPauliTensor.m
                    │   │   │   │   ├── findWeights.m
                    │   │   │   │   ├── image_denoising_withSPOT.m
                    │   │   │   │   ├── plotNow.m
                    │   │   │   │   ├── test_SVM.m
                    │   │   │   │   ├── test_sBPDN_W_largescale.m
                    │   │   │   │   ├── test_sTV_Analysis_largescale.m
                    │   │   │   │   └── test_sTV_largescale.m
                    │   │   │   ├── private/
                    │   │   │   │   ├── eig_backup.m
                    │   │   │   │   ├── linop_identity.m
                    │   │   │   │   ├── linop_stack.m
                    │   │   │   │   ├── print_cell_size.m
                    │   │   │   │   ├── prox_stack.m
                    │   │   │   │   ├── safe_eig.m
                    │   │   │   │   ├── size_ambig.m
                    │   │   │   │   ├── size_compat.m
                    │   │   │   │   ├── smooth_stack.m
                    │   │   │   │   ├── solver_apply.m
                    │   │   │   │   ├── tfocs_backtrack.m
                    │   │   │   │   ├── tfocs_cleanup.m
                    │   │   │   │   ├── tfocs_initialize.m
                    │   │   │   │   ├── tfocs_iterate.m
                    │   │   │   │   ├── tfocs_prox.m
                    │   │   │   │   ├── tfocs_round.m
                    │   │   │   │   ├── tfocs_smooth.m
                    │   │   │   │   └── tfocs_zeros.m
                    │   │   │   └── smallscale/
                    │   │   │       ├── project_WeightedNorm.m
                    │   │   │       ├── reference_solutions/
                    │   │   │       │   ├── LMI.mat
                    │   │   │       │   ├── LMI_complex.mat
                    │   │   │       │   ├── LP.mat
                    │   │   │       │   ├── LP_box.mat
                    │   │   │       │   ├── SDP.mat
                    │   │   │       │   ├── SDP_complex.mat
                    │   │   │       │   ├── basispursuit_WW_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── basispursuit_W_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── basispursuit_problem1_noisy.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noiseless.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noiseless_nonnegative.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy_complex.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy_complex_2.mat
                    │   │   │       │   ├── basispursuit_problem1_smoothed_noisy_nonnegative.mat
                    │   │   │       │   ├── blocknorm_smoothed_noisy.mat
                    │   │   │       │   ├── complicatedProblem1.mat
                    │   │   │       │   ├── dantzig_problem1_smoothed_noisy.mat
                    │   │   │       │   ├── lasso_problem1_noisy.mat
                    │   │   │       │   ├── nuclearNorm_problem1_noiseless.mat
                    │   │   │       │   ├── ordered_lasso_problem1_noisy.mat
                    │   │   │       │   ├── traceLS_problem1_noisy.mat
                    │   │   │       │   ├── traceLS_problem2_noisy.mat
                    │   │   │       │   └── tv_problem1_smoothed_noisy.mat
                    │   │   │       ├── test_LASSO.m
                    │   │   │       ├── test_LMI.m
                    │   │   │       ├── test_LinearProgram.m
                    │   │   │       ├── test_SDP.m
                    │   │   │       ├── test_SLOPE.m
                    │   │   │       ├── test_TraceLS.m
                    │   │   │       ├── test_all.m
                    │   │   │       ├── test_blockNorm.m
                    │   │   │       ├── test_complicatedUsage.m
                    │   │   │       ├── test_nuclearNorm.m
                    │   │   │       ├── test_psdCompletion.m
                    │   │   │       ├── test_quadratic.m
                    │   │   │       ├── test_quadratic_constrained.m
                    │   │   │       ├── test_sBP.m
                    │   │   │       ├── test_sBPDN.m
                    │   │   │       ├── test_sBPDN_W.m
                    │   │   │       ├── test_sBPDN_WW.m
                    │   │   │       ├── test_sBPDN_complex.m
                    │   │   │       ├── test_sBPDN_complex_2.m
                    │   │   │       ├── test_sBPDN_nonnegative.m
                    │   │   │       ├── test_sBPDN_withContinuation.m
                    │   │   │       ├── test_sBP_nonnegative.m
                    │   │   │       ├── test_sDantzig.m
                    │   │   │       ├── test_sDantzig_3methods.m
                    │   │   │       ├── test_sTV.m
                    │   │   │       └── test_variousSolvers.m
                    │   │   ├── linop_TV.m
                    │   │   ├── linop_TV3D.m
                    │   │   ├── linop_adjoint.m
                    │   │   ├── linop_compose.m
                    │   │   ├── linop_dot.m
                    │   │   ├── linop_explicit.m
                    │   │   ├── linop_fft.m
                    │   │   ├── linop_handles.m
                    │   │   ├── linop_horzcat.m
                    │   │   ├── linop_matrix.m
                    │   │   ├── linop_normest.m
                    │   │   ├── linop_reshape.m
                    │   │   ├── linop_scale.m
                    │   │   ├── linop_spot.m
                    │   │   ├── linop_subsample.m
                    │   │   ├── linop_test.m
                    │   │   ├── linop_vec.m
                    │   │   ├── linop_vertcat.m
                    │   │   ├── proj_0.m
                    │   │   ├── proj_Rn.m
                    │   │   ├── proj_Rplus.m
                    │   │   ├── proj_affine.m
                    │   │   ├── proj_box.m
                    │   │   ├── proj_boxAffine.m
                    │   │   ├── proj_conic.m
                    │   │   ├── proj_l1.m
                    │   │   ├── proj_l1l2.m
                    │   │   ├── proj_l2.m
                    │   │   ├── proj_l2group.m
                    │   │   ├── proj_linf.m
                    │   │   ├── proj_linfl2.m
                    │   │   ├── proj_max.m
                    │   │   ├── proj_maxEig.m
                    │   │   ├── proj_nuclear.m
                    │   │   ├── proj_psd.m
                    │   │   ├── proj_psdUTrace.m
                    │   │   ├── proj_simplex.m
                    │   │   ├── proj_singleAffine.m
                    │   │   ├── proj_spectral.m
                    │   │   ├── prox_0.m
                    │   │   ├── prox_Sl1.m
                    │   │   ├── prox_boxDual.m
                    │   │   ├── prox_diag.m
                    │   │   ├── prox_dualize.m
                    │   │   ├── prox_hinge.m
                    │   │   ├── prox_hingeDual.m
                    │   │   ├── prox_l1.m
                    │   │   ├── prox_l1_and_sum.m
                    │   │   ├── prox_l1_deadzone.m
                    │   │   ├── prox_l1_mat.m
                    │   │   ├── prox_l1l2.m
                    │   │   ├── prox_l1linf.m
                    │   │   ├── prox_l1pos.m
                    │   │   ├── prox_l2.m
                    │   │   ├── prox_linf.m
                    │   │   ├── prox_max.m
                    │   │   ├── prox_maxEig.m
                    │   │   ├── prox_nuclear.m
                    │   │   ├── prox_scale.m
                    │   │   ├── prox_shift.m
                    │   │   ├── prox_spectral.m
                    │   │   ├── prox_trace.m
                    │   │   ├── randomizedSVD.m
                    │   │   ├── smooth_constant.m
                    │   │   ├── smooth_entropy.m
                    │   │   ├── smooth_handles.m
                    │   │   ├── smooth_huber.m
                    │   │   ├── smooth_linear.m
                    │   │   ├── smooth_logLLogistic.m
                    │   │   ├── smooth_logLPoisson.m
                    │   │   ├── smooth_logdet.m
                    │   │   ├── smooth_logsumexp.m
                    │   │   ├── smooth_quad.m
                    │   │   ├── solver_L1RLS.m
                    │   │   ├── solver_LASSO.m
                    │   │   ├── solver_SLOPE.m
                    │   │   ├── solver_TraceLS.m
                    │   │   ├── solver_psdComp.m
                    │   │   ├── solver_psdCompConstrainedTrace.m
                    │   │   ├── solver_sBP.m
                    │   │   ├── solver_sBPDN.m
                    │   │   ├── solver_sBPDN_W.m
                    │   │   ├── solver_sBPDN_WW.m
                    │   │   ├── solver_sDantzig.m
                    │   │   ├── solver_sDantzig_W.m
                    │   │   ├── solver_sLMI.m
                    │   │   ├── solver_sLP.m
                    │   │   ├── solver_sLP_box.m
                    │   │   ├── solver_sNuclearBP.m
                    │   │   ├── solver_sNuclearBPDN.m
                    │   │   ├── solver_sSDP.m
                    │   │   ├── test_Lipschitz.m
                    │   │   ├── test_nonsmooth.m
                    │   │   ├── test_proxPair.m
                    │   │   ├── test_smooth.m
                    │   │   ├── tfocs.m
                    │   │   ├── tfocs_AT.m
                    │   │   ├── tfocs_GRA.m
                    │   │   ├── tfocs_LLM.m
                    │   │   ├── tfocs_N07.m
                    │   │   ├── tfocs_N83.m
                    │   │   ├── tfocs_SCD.m
                    │   │   ├── tfocs_TS.m
                    │   │   ├── tfocs_normsq.m
                    │   │   ├── tfocs_version.m
                    │   │   ├── tfocs_where.m
                    │   │   ├── tfunc_scale.m
                    │   │   └── tfunc_sum.m
                    │   ├── Traj.m
                    │   ├── adapting_structural_model.m
                    │   ├── average.m
                    │   ├── bicycle_state_space.m
                    │   ├── convert_variable.m
                    │   ├── create_ieee_paper_plots.m
                    │   ├── cross_validation.m
                    │   ├── distance.m
                    │   ├── double_gyre.m
                    │   ├── example.m
                    │   ├── fit_adapt.m
                    │   ├── fit_adapt_linear.m
                    │   ├── gpu_RKF45_FILE.m
                    │   ├── ieee.m
                    │   ├── lane_change.m
                    │   ├── load_bikes.m
                    │   ├── load_data.m
                    │   ├── make_filter.m
                    │   ├── matlab_class.m
                    │   ├── matlab_function.m
                    │   ├── matlab_script.m
                    │   ├── matlab_script2.m
                    │   ├── normalize.m
                    │   ├── overwrite_settings.m
                    │   ├── par_text_to_struct.m
                    │   ├── plant.m
                    │   ├── test_rk_par.m
                    │   ├── test_system_state_space.m
                    │   ├── varargin_to_structure.m
                    │   └── write_gains.m
                    ├── Maven POM/
                    │   └── filenames/
                    │       └── pom.xml
                    ├── Max/
                    │   ├── Hello.maxhelp
                    │   ├── Hello.maxpat
                    │   └── Hello.mxt
                    ├── MediaWiki/
                    │   ├── README.wiki
                    │   └── mediawiki.mediawiki
                    ├── Mercury/
                    │   ├── code_info.m
                    │   ├── expr.moo
                    │   ├── hello.m
                    │   ├── options.m
                    │   ├── polymorphism.m
                    │   ├── rot13_concise.m
                    │   ├── rot13_ralph.m
                    │   ├── rot13_verbose.m
                    │   ├── store.m
                    │   └── switch_detection_bug.m
                    ├── Meson/
                    │   └── filenames/
                    │       ├── meson.build
                    │       └── meson_options.txt
                    ├── Metal/
                    │   └── ITMVisualisationEngine.metal
                    ├── Modelica/
                    │   ├── NestedPackages.mo
                    │   ├── NewtonCooling.mo
                    │   ├── Pendulum.mo
                    │   ├── RLC.mo
                    │   ├── SecondOrderSystem.mo
                    │   ├── System.mo
                    │   ├── Translational.mo
                    │   ├── modelica.mo
                    │   ├── package.mo
                    │   ├── package2.mo
                    │   ├── package3.mo
                    │   └── package4.mo
                    ├── Modula-2/
                    │   └── HuffChan.mod
                    ├── Module Management System/
                    │   ├── descrip.mms
                    │   ├── openvms.mmk
                    │   ├── simh_descrip.mms
                    │   ├── spline_descrip.mms
                    │   └── xv_makefile.mms
                    ├── Monkey/
                    │   ├── encodeToPng.monkey2
                    │   ├── example.monkey
                    │   ├── example.monkey2
                    │   ├── gui.monkey2
                    │   └── sorting.monkey2
                    ├── Moocode/
                    │   ├── hello.moo
                    │   ├── moocode_toolkit.moo
                    │   └── toy.moo
                    ├── MoonScript/
                    │   └── transform.moon
                    ├── NCL/
                    │   ├── PrnOscPat_driver.ncl
                    │   ├── WRF_static_2.ncl
                    │   ├── WRF_track_1.ncl
                    │   ├── cru_8.ncl
                    │   ├── gsn_csm_xy2_time_series_inputs.ncl
                    │   ├── hdf4sds_7.ncl
                    │   ├── mask_12.ncl
                    │   ├── mcsst_1.ncl
                    │   ├── primero.ncl
                    │   ├── topo_9.ncl
                    │   ├── traj_3.ncl
                    │   ├── tsdiagram_1.ncl
                    │   ├── unique_9.ncl
                    │   ├── viewport_4.ncl
                    │   ├── weather_sym_6.ncl
                    │   └── xy_29.ncl
                    ├── NL/
                    │   ├── assign0.nl
                    │   └── balassign0.nl
                    ├── NSIS/
                    │   ├── bigtest.nsi
                    │   └── x64.nsh
                    ├── Nearley/
                    │   └── nearley-language-bootstrapped.ne
                    ├── Nemerle/
                    │   └── hello.n
                    ├── NetLinx/
                    │   ├── projector.axi
                    │   └── volume-array.axs
                    ├── NetLinx+ERB/
                    │   ├── sample.axi.erb
                    │   └── sample.axs.erb
                    ├── NetLogo/
                    │   └── Life.nlogo
                    ├── NewLisp/
                    │   ├── irc.lsp
                    │   ├── log-to-database.lisp
                    │   └── queens.nl
                    ├── Nextflow/
                    │   ├── blast.nf
                    │   ├── callings.nf
                    │   ├── filenames/
                    │   │   └── nextflow.config
                    │   └── rnaseq.nf
                    ├── Nginx/
                    │   ├── example.com.vhost
                    │   └── filenames/
                    │       └── nginx.conf
                    ├── Nim/
                    │   └── foo.nim
                    ├── Nit/
                    │   ├── calculator.nit
                    │   ├── callback_chimpanze.nit
                    │   ├── callback_monkey.nit
                    │   ├── circular_list.nit
                    │   ├── clock.nit
                    │   ├── clock_more.nit
                    │   ├── curl_http.nit
                    │   ├── curl_mail.nit
                    │   ├── draw_operation.nit
                    │   ├── drop_privileges.nit
                    │   ├── extern_methods.nit
                    │   ├── fibonacci.nit
                    │   ├── file.nit
                    │   ├── hello_world.nit
                    │   ├── html_page.nit
                    │   ├── int_stack.nit
                    │   ├── meetup.nit
                    │   ├── opengles2_hello_triangle.nit
                    │   ├── print_arguments.nit
                    │   ├── procedural_array.nit
                    │   ├── socket_client.nit
                    │   ├── socket_server.nit
                    │   ├── tmpl_composer.nit
                    │   └── websocket_server.nit
                    ├── Nix/
                    │   └── nginx.nix
                    ├── Nu/
                    │   ├── RandomApp.nu
                    │   └── nu
                    ├── OCaml/
                    │   ├── Foo.ml
                    │   ├── cmdliner.ml
                    │   ├── common.ml
                    │   ├── date.ml
                    │   ├── example.eliom
                    │   ├── map.ml
                    │   ├── mirage.ml
                    │   ├── reload.ml
                    │   ├── sigset.ml
                    │   └── uutf.ml
                    ├── Objective-C/
                    │   ├── ASIHTTPRequest.h
                    │   ├── ASIHTTPRequest.m
                    │   ├── Foo.h
                    │   ├── Foo.m
                    │   ├── FooAppDelegate.h
                    │   ├── FooAppDelegate.m
                    │   ├── JSONKit.h
                    │   ├── JSONKit.m
                    │   ├── MainMenuViewController.h
                    │   ├── MainMenuViewController.m
                    │   ├── PlaygroundViewController.h
                    │   ├── PlaygroundViewController.m
                    │   ├── SBJsonParser.h
                    │   ├── SBJsonParser.m
                    │   ├── Siesta.h
                    │   ├── StyleViewController.h
                    │   ├── StyleViewController.m
                    │   ├── TUITableView.h
                    │   ├── TUITableView.m
                    │   ├── cocoa_monitor.m
                    │   ├── gen-cocoa-linguist-thrift.m
                    │   └── hello.m
                    ├── Objective-C++/
                    │   ├── EventHandlerMac.mm
                    │   └── objsql.mm
                    ├── Objective-J/
                    │   ├── AppController.j
                    │   ├── LightsOff.j
                    │   └── iTunesLayout.j
                    ├── Omgrofl/
                    │   └── hello.omgrofl
                    ├── Opa/
                    │   ├── hello_syntax1.opa
                    │   └── hello_syntax2.opa
                    ├── Opal/
                    │   └── DeepakChopra.opal
                    ├── OpenCL/
                    │   ├── fft.cl
                    │   └── sample.cl
                    ├── OpenEdge ABL/
                    │   ├── Email.cls
                    │   ├── SendEmailAlgorithm.cls
                    │   ├── SocketReader.p
                    │   ├── Util.cls
                    │   ├── openedge.p
                    │   └── test-win.w
                    ├── OpenRC runscript/
                    │   └── acpid
                    ├── OpenSCAD/
                    │   ├── not_simple.scad
                    │   └── simple.scad
                    ├── Org/
                    │   └── org.org
                    ├── Ox/
                    │   ├── IJCEmet2009.oxh
                    │   ├── ParallelObjective.ox
                    │   └── particle.oxo
                    ├── Oxygene/
                    │   └── Loops.oxygene
                    ├── Oz/
                    │   └── example.oz
                    ├── P4/
                    │   ├── l2.p4
                    │   └── mirror_acl.p4
                    ├── PAWN/
                    │   ├── fixes.inc
                    │   └── timertest.pwn
                    ├── PHP/
                    │   ├── Application.php
                    │   ├── Client.php
                    │   ├── Controller.php
                    │   ├── Form.php
                    │   ├── Model.php
                    │   ├── ThriftGenerated.php
                    │   ├── drupal.php
                    │   ├── exception.zep.php
                    │   ├── file_display.inc
                    │   ├── filenames/
                    │   │   ├── .php
                    │   │   ├── .php_cs
                    │   │   └── .php_cs.dist
                    │   ├── mail.phps
                    │   ├── php
                    │   ├── php-script
                    │   ├── php2
                    │   ├── prefix.fcgi
                    │   └── root.php
                    ├── PLSQL/
                    │   ├── myobject.sql
                    │   ├── packagebody.pkb
                    │   ├── packageheader.pks
                    │   ├── plsqlguide.pck
                    │   ├── prime#.plsql
                    │   ├── print_bool.prc
                    │   ├── videodb.ddl
                    │   └── who_called_me.sql
                    ├── PLpgSQL/
                    │   ├── plpgsql_lint-8.4.sql
                    │   ├── plpgsql_lint-9.0.sql
                    │   ├── plpgsql_lint-9.1.sql
                    │   ├── plpgsql_lint-9.2.sql
                    │   ├── plpgsql_lint-9.3.sql
                    │   └── procedures.sql
                    ├── POV-Ray SDL/
                    │   ├── balcony.pov
                    │   ├── bglass.inc
                    │   ├── building.inc
                    │   ├── chair.inc
                    │   ├── cloth.inc
                    │   ├── gamma_showcase.pov
                    │   ├── sky.inc
                    │   ├── table.inc
                    │   ├── table_cloth.inc
                    │   ├── table_stuff.inc
                    │   ├── terrain.inc
                    │   └── water.inc
                    ├── Pan/
                    │   ├── ceph-raid.pan
                    │   ├── cluster-A.pan
                    │   ├── databases.pan
                    │   ├── functions.pan
                    │   ├── infernalis.pan
                    │   ├── libvirt.pan
                    │   ├── link.pan
                    │   ├── mysql.pan
                    │   ├── nodes_properties.pan
                    │   ├── onevm.pan
                    │   ├── osd-fetch.pan
                    │   ├── pakiti.pan
                    │   ├── purge_fqan_accounts.pan
                    │   ├── resources.pan
                    │   ├── simple.pan
                    │   ├── test.pan
                    │   ├── types.pan
                    │   └── unit.pan
                    ├── Papyrus/
                    │   ├── CAMTEST_OverShoulderME.psc
                    │   ├── vMFX_FXPlugin.psc
                    │   └── vSCM_MetaQuestScript.psc
                    ├── Parrot Assembly/
                    │   └── hello.pasm
                    ├── Parrot Internal Representation/
                    │   └── hello.pir
                    ├── Pascal/
                    │   ├── bulls-and-cows.pascal
                    │   ├── custforms.pp
                    │   ├── cwindirs.pp
                    │   ├── image_url.inc
                    │   ├── large.pp
                    │   ├── libc.inc
                    │   ├── program.dpr
                    │   ├── read-a-configuration-file.pascal
                    │   ├── tw27294.pp
                    │   └── vmops_impl.inc
                    ├── Pep8/
                    │   ├── div.pep
                    │   ├── flag.pep
                    │   ├── linked.pep
                    │   ├── msq.pep
                    │   ├── qsort.pep
                    │   ├── stri_buf.pep
                    │   └── stristack.pep
                    ├── Perl/
                    │   ├── Ack.pm
                    │   ├── Any.pm
                    │   ├── Request.pm
                    │   ├── Response.pm
                    │   ├── example.cgi
                    │   ├── exception_handler.pl
                    │   ├── feedgnuplot
                    │   ├── fib.pl
                    │   ├── filenames/
                    │   │   ├── Makefile.PL
                    │   │   ├── Rexfile
                    │   │   ├── ack
                    │   │   └── cpanfile
                    │   ├── getchar.al
                    │   ├── index.fcgi
                    │   ├── oo1.pl
                    │   ├── oo2.pl
                    │   ├── oo3.pl
                    │   ├── perl
                    │   ├── perl-test.t
                    │   ├── script.pl
                    │   ├── strict.t
                    │   ├── test-perl.pl
                    │   ├── test-perl2.pl
                    │   └── use5.pl
                    ├── Perl 6/
                    │   ├── 01-dash-uppercase-i.t
                    │   ├── 01-parse.t
                    │   ├── A.pm
                    │   ├── ANSIColor.pm
                    │   ├── Bailador.pm
                    │   ├── ContainsUnicode.pm
                    │   ├── Exception.pm
                    │   ├── List.pm
                    │   ├── Model.pm
                    │   ├── RoleQ.pm6
                    │   ├── Simple.pm
                    │   ├── Win32.pm
                    │   ├── advent2009-day16.t
                    │   ├── basic-open.t
                    │   ├── calendar.t
                    │   ├── for.t
                    │   ├── grammar-test.p6
                    │   ├── hash.t
                    │   ├── htmlify.pl
                    │   ├── listquote-whitespace.t
                    │   ├── man-or-boy.t
                    │   └── test.p6
                    ├── Pic/
                    │   ├── dextroamphetamine.chem
                    │   ├── graph.pic
                    │   └── ritalin.chem
                    ├── Pickle/
                    │   ├── data.pkl
                    │   ├── neural-network-ce-l2reg-784-10-30.pkl
                    │   ├── random.pkl
                    │   └── save.pkl
                    ├── PicoLisp/
                    │   └── simul.l
                    ├── PigLatin/
                    │   └── example.pig
                    ├── Pike/
                    │   ├── Error.pmod
                    │   ├── FakeFile.pike
                    │   └── shebang.pike
                    ├── Pod/
                    │   ├── PSGI.pod
                    │   ├── Sample.pod
                    │   └── contents.pod
                    ├── PogoScript/
                    │   └── squashy.pogo
                    ├── Pony/
                    │   ├── circle.pony
                    │   ├── counter.pony
                    │   ├── gups-opt.pony
                    │   ├── hello-world.pony
                    │   ├── mandelbrot.pony
                    │   └── mixed.pony
                    ├── PostCSS/
                    │   └── sample.pcss
                    ├── PostScript/
                    │   ├── lambda.pfa
                    │   └── sierpinski.ps
                    ├── PowerBuilder/
                    │   ├── TestPBT.pbt
                    │   ├── ginpix7.sra
                    │   ├── myproject.pbt
                    │   ├── n_cst_buttonlistbar_gradient.sru
                    │   ├── part1.srw
                    │   └── w_export.srw
                    ├── PowerShell/
                    │   ├── ZLocation.psd1
                    │   ├── ZLocation.psm1
                    │   ├── history.ps1
                    │   └── pwsh-shebang.ps1
                    ├── Processing/
                    │   └── hello.pde
                    ├── Prolog/
                    │   ├── admin.pl
                    │   ├── dleak-report
                    │   ├── ex6.pl
                    │   ├── format_spec.pl
                    │   ├── func.pl
                    │   ├── logic-problem.pro
                    │   ├── queues.yap
                    │   ├── test-prolog.prolog
                    │   └── turing.pl
                    ├── Propeller Spin/
                    │   ├── 4x4 Keypad Reader.spin
                    │   ├── Debug_Lcd.spin
                    │   ├── Graphics.spin
                    │   ├── Inductor.spin
                    │   ├── Keyboard.spin
                    │   ├── TV.spin
                    │   ├── TV_Terminal.spin
                    │   ├── TV_Text.spin
                    │   ├── VGA.spin
                    │   └── VocalTract.spin
                    ├── Protocol Buffer/
                    │   └── addressbook.proto
                    ├── Public Key/
                    │   ├── gpg_key.asc
                    │   ├── id.pub
                    │   ├── id_dsa.asc
                    │   ├── id_rsa.asc
                    │   ├── id_rsa.pub
                    │   ├── sshkey1.asc
                    │   └── sunCert.asc
                    ├── Pug/
                    │   ├── hello.jade
                    │   └── hello.pug
                    ├── Puppet/
                    │   ├── apacheinit.pp
                    │   ├── expiringhost.pp
                    │   ├── hiera_include.pp
                    │   ├── stages-example.pp
                    │   └── unmanaged-notify-puppet25.pp
                    ├── PureBasic/
                    │   ├── Example_Sine.pb
                    │   └── Memory.pbi
                    ├── PureScript/
                    │   ├── Control.Arrow.purs
                    │   ├── Data.Foreign.purs
                    │   ├── Data.Map.purs
                    │   └── ReactiveJQueryTest.purs
                    ├── Python/
                    │   ├── AdditiveWave.pyde
                    │   ├── Cinema4DPythonPlugin.pyp
                    │   ├── JupyterNotebook.ipynb
                    │   ├── MoveEye.pyde
                    │   ├── action.cgi
                    │   ├── argparse.pyi
                    │   ├── backstage.fcgi
                    │   ├── closure_js_binary.bzl
                    │   ├── django-models-base.py
                    │   ├── filenames/
                    │   │   ├── .gclient
                    │   │   ├── BUCK
                    │   │   ├── BUILD
                    │   │   └── WORKSPACE
                    │   ├── flask-view.py
                    │   ├── gen-py-linguist-thrift.py
                    │   ├── protocol_buffer_pb2.py
                    │   ├── py3.py3
                    │   ├── python
                    │   ├── python2
                    │   ├── python3
                    │   ├── simpleclient.rpy
                    │   ├── spec.linux.spec
                    │   ├── standalone.gypi
                    │   ├── toolchain.gypi
                    │   └── tornado-httpserver.py
                    ├── QML/
                    │   └── common.qbs
                    ├── QMake/
                    │   ├── complex.pro
                    │   ├── functions.pri
                    │   ├── qmake
                    │   └── simple.pro
                    ├── R/
                    │   ├── R-qgis-extension.rsx
                    │   ├── df.residual.r
                    │   ├── filenames/
                    │   │   └── expr-dist
                    │   ├── git-punchcard
                    │   ├── hello-r.R
                    │   ├── import.Rd
                    │   ├── import.r
                    │   └── scholar.Rd
                    ├── RAML/
                    │   └── api.raml
                    ├── RDoc/
                    │   └── rdoc.rdoc
                    ├── REXX/
                    │   ├── BatchRemapBrushes.pprx
                    │   ├── ShapesInfo.rexx
                    │   ├── SkrivShape.rexx
                    │   └── ag2xml.rexx
                    ├── RMarkdown/
                    │   └── example.rmd
                    ├── RPC/
                    │   ├── rpc.x
                    │   ├── rusers.x
                    │   └── yp.x
                    ├── RPM Spec/
                    │   ├── apache.spec
                    │   ├── erlang-erlydtl.spec
                    │   └── manos.spec
                    ├── RUNOFF/
                    │   ├── VMS_ZIP.RNH
                    │   ├── contributing.rnh
                    │   ├── longlib.rno
                    │   └── mcp_help.rnh
                    ├── Racket/
                    │   ├── 99-bottles-of-beer.scrbl
                    │   └── scribble.scrbl
                    ├── Ragel/
                    │   ├── ephemeris_parser.rl
                    │   ├── simple_scanner.rl
                    │   └── simple_tokenizer.rl
                    ├── Rascal/
                    │   ├── Analyze.rsc
                    │   ├── Compile.rsc
                    │   ├── Rascal.rsc
                    │   └── Syntax.rsc
                    ├── Reason/
                    │   ├── JSX.re
                    │   ├── Layout.re
                    │   ├── Machine.re
                    │   ├── SuperMerlin.re
                    │   └── Syntax.re
                    ├── Rebol/
                    │   ├── GCP-datatypes.r
                    │   ├── booters.r
                    │   ├── hello-world.r2
                    │   ├── hello-world.r3
                    │   ├── hello-world.reb
                    │   └── hello-world.rebol
                    ├── Red/
                    │   ├── example.red
                    │   └── example.reds
                    ├── Regular Expression/
                    │   ├── modeline-emacs.regexp
                    │   ├── modeline-vim.regexp
                    │   ├── ordinal.regex
                    │   └── url.regex
                    ├── Ren'Py/
                    │   └── example.rpy
                    ├── RenderScript/
                    │   ├── convolve3x3.rs
                    │   └── scenegraph_objects.rsh
                    ├── Ring/
                    │   ├── hello.ring
                    │   ├── natural.ring
                    │   ├── weblib.ring
                    │   └── weighthistory.ring
                    ├── RobotFramework/
                    │   ├── data_driven.robot
                    │   ├── gherkin.robot
                    │   └── keyword_driven.robot
                    ├── Roff/
                    │   ├── Tcl.n
                    │   ├── an-ext.tmac
                    │   ├── create_view.l
                    │   ├── fsinterface.ms
                    │   ├── refs.rno
                    │   ├── sample.4
                    │   └── trekmanual.nr
                    ├── Ruby/
                    │   ├── any.spec
                    │   ├── filenames/
                    │   │   ├── .irbrc
                    │   │   ├── .pryrc
                    │   │   ├── Appraisals
                    │   │   ├── Brewfile
                    │   │   ├── Capfile
                    │   │   ├── Dangerfile
                    │   │   ├── Deliverfile
                    │   │   ├── Fastfile
                    │   │   ├── Podfile
                    │   │   ├── Rakefile
                    │   │   └── Snapfile
                    │   ├── foo.rb
                    │   ├── formula.rb
                    │   ├── gen-rb-linguist-thrift.rb
                    │   ├── grit.rb
                    │   ├── index.json.jbuilder
                    │   ├── inflector.rb
                    │   ├── jekyll.rb
                    │   ├── jenkinsci.pluginspec
                    │   ├── macruby
                    │   ├── mdata_server.fcgi
                    │   ├── rabl.rabl
                    │   ├── racc.rb
                    │   ├── resque.rb
                    │   ├── rexpl
                    │   ├── ruby
                    │   ├── ruby2
                    │   ├── script.rake
                    │   ├── shoes-swt
                    │   └── sinatra.rb
                    ├── Rust/
                    │   ├── hashmap.rs
                    │   ├── main.rs
                    │   └── task.rs
                    ├── SAS/
                    │   ├── data.sas
                    │   ├── detect_phi.sas
                    │   └── proc.sas
                    ├── SCSS/
                    │   └── screen.scss
                    ├── SMT/
                    │   ├── bignum_lia1.smt2
                    │   ├── list4.smt2
                    │   ├── queen10-1.smt2
                    │   └── shufflevector.smt
                    ├── SPARQL/
                    │   ├── foaf.sparql
                    │   └── string-matching.sparql
                    ├── SQF/
                    │   ├── fn_remoteExecFnc.sqf
                    │   └── macros.hqf
                    ├── SQL/
                    │   ├── AvailableInSearchSel.prc
                    │   ├── create_stuff.sql
                    │   ├── db.sql
                    │   ├── drop_stuff.sql
                    │   ├── dual.sql
                    │   ├── filial.tab
                    │   ├── hostcache_set_state.inc
                    │   ├── object-update.udf
                    │   ├── suspendedtoday.viw
                    │   ├── videodb.cql
                    │   ├── videodb.ddl
                    │   └── zipcodes.uk.mysql
                    ├── SQLPL/
                    │   ├── check_reorg.sql
                    │   ├── comm_amount.db2
                    │   ├── drop_table.db2
                    │   ├── runstats.sql
                    │   ├── sleep.sql
                    │   └── trigger.sql
                    ├── SRecode Template/
                    │   └── linguist.srt
                    ├── STON/
                    │   ├── Array.ston
                    │   ├── Dictionary.ston
                    │   ├── Rectangle.ston
                    │   ├── TestDomainObject.ston
                    │   ├── ZNResponse.ston
                    │   ├── methodProperties.ston
                    │   └── properties.ston
                    ├── Sage/
                    │   └── polinomios.sagews
                    ├── SaltStack/
                    │   ├── eval.sls
                    │   ├── gimp.sls
                    │   ├── gpg4win-light.sls
                    │   ├── openoffice.sls
                    │   ├── top.sls
                    │   └── truecrypt.sls
                    ├── Sass/
                    │   └── screen.sass
                    ├── Scala/
                    │   ├── 99-bottles-of-beer
                    │   ├── build.sbt
                    │   ├── car-ride.kojo
                    │   ├── fib-tree.kojo
                    │   ├── node11.sc
                    │   ├── scala
                    │   └── turtle-controller.kojo
                    ├── Scaml/
                    │   └── hello.scaml
                    ├── Scheme/
                    │   ├── asteroids.sps
                    │   ├── basic.sld
                    │   ├── lambdastar.sls
                    │   └── sboyer.sch
                    ├── Scilab/
                    │   ├── scilab_function.sci
                    │   ├── scilab_script.sce
                    │   └── scilab_test.tst
                    ├── ShaderLab/
                    │   ├── DepthOfField.shader
                    │   ├── Fog.shader
                    │   └── Uber.shader
                    ├── Shell/
                    │   ├── 99-bottles-of-beer
                    │   ├── bash
                    │   ├── build.command
                    │   ├── filenames/
                    │   │   ├── .bash_logout
                    │   │   ├── .bash_profile
                    │   │   ├── .bashrc
                    │   │   ├── .cshrc
                    │   │   ├── .login
                    │   │   ├── .profile
                    │   │   ├── .zlogin
                    │   │   ├── .zlogout
                    │   │   ├── .zprofile
                    │   │   ├── .zshenv
                    │   │   ├── .zshrc
                    │   │   ├── 9fs
                    │   │   ├── PKGBUILD
                    │   │   ├── bash_logout
                    │   │   ├── bash_profile
                    │   │   ├── bashrc
                    │   │   ├── cshrc
                    │   │   ├── gradlew
                    │   │   ├── login
                    │   │   ├── man
                    │   │   ├── profile
                    │   │   ├── zlogin
                    │   │   ├── zlogout
                    │   │   ├── zprofile
                    │   │   ├── zshenv
                    │   │   └── zshrc
                    │   ├── invalid-shebang.sh
                    │   ├── php.fcgi
                    │   ├── plugin
                    │   ├── rbenv-sh-shell.sh
                    │   ├── rvm.bash
                    │   ├── sbt
                    │   ├── script.bash
                    │   ├── script.sh
                    │   ├── script.zsh
                    │   ├── settime.cgi
                    │   ├── sh
                    │   ├── string-chopping
                    │   ├── valid-shebang.tool
                    │   └── zsh
                    ├── ShellSession/
                    │   ├── dollar.sh-session
                    │   ├── gem-install.sh-session
                    │   └── simple.sh-session
                    ├── Shen/
                    │   ├── graph.shen
                    │   ├── html.shen
                    │   └── json.shen
                    ├── Slash/
                    │   └── brainfuck.sl
                    ├── Slim/
                    │   └── sample.slim
                    ├── Smali/
                    │   ├── ActionBarDrawerToggle.smali
                    │   ├── DoodleMobileAnaylise.smali
                    │   ├── ModernAsyncTask.smali
                    │   ├── PenguinSprite.smali
                    │   ├── Subject.smali
                    │   ├── ViewDragHelper.smali
                    │   └── WbxmlSerializer.smali
                    ├── Smalltalk/
                    │   ├── Booleans.cs
                    │   ├── Collections.cs
                    │   ├── Dinner.st
                    │   ├── TestBasic.st
                    │   ├── baselineDependency.st
                    │   ├── categories.st
                    │   ├── renderSeasideExampleOn..st
                    │   ├── scriptWithPragma.st
                    │   ├── smallMethod.st
                    │   └── testSimpleChainMatches.st
                    ├── Solidity/
                    │   └── VotingContract.sol
                    ├── SourcePawn/
                    │   ├── Check.inc
                    │   ├── fixed.inc
                    │   ├── foo.sma
                    │   ├── foo.sp
                    │   ├── mfile.inc
                    │   └── y_testing.inc
                    ├── Squirrel/
                    │   └── Squirrel.nut
                    ├── Stan/
                    │   ├── congress.stan
                    │   ├── dogs.stan
                    │   └── schools.stan
                    ├── Standard ML/
                    │   ├── Foo.ML
                    │   ├── Foo.sig
                    │   ├── Foo.sml
                    │   ├── RedBlackTree.fun
                    │   └── main.fun
                    ├── Stata/
                    │   ├── common.doh
                    │   ├── hello.ado
                    │   ├── include.ihlp
                    │   ├── limits.matah
                    │   ├── odkmeta.sthlp
                    │   ├── regress_example.do
                    │   └── tanh.mata
                    ├── Stylus/
                    │   └── demo.styl
                    ├── SubRip Text/
                    │   └── Adding.NCL.Language.S01E01.1080p.BluRay.x264.srt
                    ├── Sublime Text Config/
                    │   ├── AMPL.sublime-build
                    │   ├── CLIPS.sublime-settings
                    │   ├── Context.sublime-menu
                    │   ├── Dart.sublime-commands
                    │   ├── Dart.sublime-project
                    │   ├── Default (Linux).sublime-mousemap
                    │   ├── Default.sublime-keymap
                    │   ├── JavaDoc Add Line.sublime-macro
                    │   ├── RunBuild.sublime-macro
                    │   ├── SourcePawn.sublime-build
                    │   ├── Tubnil.sublime-theme
                    │   └── jade.sublime-completions
                    ├── SugarSS/
                    │   └── sample.sss
                    ├── SuperCollider/
                    │   ├── WarpPreset.sc
                    │   ├── WarpTate.sc
                    │   ├── WarpTrack.sc
                    │   ├── WarpUtil.sc
                    │   └── example.scd
                    ├── Swift/
                    │   ├── section-11.swift
                    │   ├── section-13.swift
                    │   ├── section-15.swift
                    │   ├── section-17.swift
                    │   ├── section-19.swift
                    │   ├── section-21.swift
                    │   ├── section-23.swift
                    │   ├── section-25.swift
                    │   ├── section-27.swift
                    │   ├── section-29.swift
                    │   ├── section-3.swift
                    │   ├── section-31.swift
                    │   ├── section-33.swift
                    │   ├── section-35.swift
                    │   ├── section-37.swift
                    │   ├── section-39.swift
                    │   ├── section-41.swift
                    │   ├── section-43.swift
                    │   ├── section-45.swift
                    │   ├── section-47.swift
                    │   ├── section-49.swift
                    │   ├── section-5.swift
                    │   ├── section-51.swift
                    │   ├── section-53.swift
                    │   ├── section-55.swift
                    │   ├── section-57.swift
                    │   ├── section-59.swift
                    │   ├── section-61.swift
                    │   ├── section-63.swift
                    │   ├── section-65.swift
                    │   ├── section-67.swift
                    │   ├── section-69.swift
                    │   ├── section-7.swift
                    │   ├── section-71.swift
                    │   ├── section-73.swift
                    │   ├── section-75.swift
                    │   ├── section-77.swift
                    │   ├── section-79.swift
                    │   ├── section-81.swift
                    │   ├── section-83.swift
                    │   ├── section-85.swift
                    │   ├── section-87.swift
                    │   └── section-9.swift
                    ├── SystemVerilog/
                    │   ├── endpoint_phy_wrapper.svh
                    │   ├── fifo.sv
                    │   ├── priority_encoder.sv
                    │   └── util.vh
                    ├── TI Program/
                    │   ├── srcalpha.8xp.txt
                    │   ├── srcfunc.8xp.txt
                    │   ├── srcgui.8xp.txt
                    │   └── srcsort.8xp.txt
                    ├── TLA/
                    │   ├── AsyncInterface.tla
                    │   └── fifo.tla
                    ├── TXL/
                    │   └── Cal.txl
                    ├── Tcl/
                    │   ├── filenames/
                    │   │   ├── owh
                    │   │   └── starfield
                    │   ├── stream-0.1.tm
                    │   └── xdgbasedir-0.3.tm
                    ├── TeX/
                    │   ├── authortitle.cbx
                    │   ├── beispiel.toc
                    │   ├── english.lbx
                    │   ├── perl.toc
                    │   ├── problemset.cls
                    │   ├── reedthesis.cls
                    │   └── verbose.bbx
                    ├── Tea/
                    │   └── foo.tea
                    ├── Terra/
                    │   ├── arith.t
                    │   ├── arrayt.t
                    │   └── benchmark_nbody.t
                    ├── Text/
                    │   ├── 01_top.ncl
                    │   ├── ISO-2022-KR.txt
                    │   ├── LIDARLite.ncl
                    │   ├── Site.local.ncl
                    │   ├── aptitude-defaults.nb
                    │   ├── filenames/
                    │   │   ├── COPYING.regex
                    │   │   ├── LICENSE.mysql
                    │   │   ├── README.me
                    │   │   ├── README.mysql
                    │   │   ├── click.me
                    │   │   ├── delete.me
                    │   │   ├── keep.me
                    │   │   ├── read.me
                    │   │   ├── readme.1st
                    │   │   └── test.me
                    │   ├── foo.txt
                    │   ├── mac.txt
                    │   ├── main.ncl
                    │   ├── messages.fr
                    │   ├── min-help.ncl
                    │   ├── readme.txt
                    │   ├── receiver.ncl
                    │   ├── rmMonAnnCycLLT-help.ncl
                    │   ├── tutor.nb
                    │   ├── tutor.no
                    │   └── zonalAve-help.ncl
                    ├── Thrift/
                    │   └── linguist.thrift
                    ├── Turing/
                    │   ├── simplegame.t
                    │   └── turing.t
                    ├── Turtle/
                    │   ├── gnd-record.ttl
                    │   └── rdf-syntax-grammar.ttl
                    ├── Type Language/
                    │   ├── builtin.tl
                    │   └── scheme.tl
                    ├── TypeScript/
                    │   ├── cache.ts
                    │   ├── classes.ts
                    │   ├── hello.ts
                    │   ├── import.tsx
                    │   ├── react-native.tsx
                    │   ├── require.tsx
                    │   └── triple-slash-reference.tsx
                    ├── Unity3D Asset/
                    │   ├── GapTile.mat
                    │   ├── Hover.anim
                    │   ├── Tiles.meta
                    │   ├── TimeManager.asset
                    │   └── canvas_Fullscreen_Fader.prefab
                    ├── Unix Assembly/
                    │   ├── hello.ms
                    │   └── hello.s
                    ├── Uno/
                    │   ├── PlayerPads.uno
                    │   ├── Pong.uno
                    │   └── TowerBlock.uno
                    ├── UnrealScript/
                    │   ├── MutU2Weapons.uc
                    │   └── US3HelloWorld.uc
                    ├── UrWeb/
                    │   ├── iso8601.ur
                    │   └── parse.urs
                    ├── VCL/
                    │   ├── varnish2_default.vcl
                    │   └── varnish3_default.vcl
                    ├── VHDL/
                    │   └── foo.vhd
                    ├── Verilog/
                    │   ├── button_debounce.v
                    │   ├── control.v
                    │   ├── hex_display.v
                    │   ├── mux.v
                    │   ├── pipeline_registers.v
                    │   ├── ps2_mouse.v
                    │   ├── sha-256-functions.v
                    │   ├── sign_extender.v
                    │   ├── sqrt_pipelined.v
                    │   ├── t_button_debounce.v
                    │   ├── t_div_pipelined.v
                    │   ├── t_sqrt_pipelined.v
                    │   └── vga.v
                    ├── Vim script/
                    │   ├── filenames/
                    │   │   ├── .gvimrc
                    │   │   ├── .nvimrc
                    │   │   ├── .vimrc
                    │   │   └── _vimrc
                    │   └── solarized.vim
                    ├── Visual Basic/
                    │   ├── Index.vbhtml
                    │   ├── Module1.vb
                    │   ├── VBAllInOne.vb
                    │   ├── cApplication.cls
                    │   └── vpptype.bas
                    ├── Volt/
                    │   └── tesla.volt
                    ├── Wavefront Material/
                    │   ├── dice.mtl
                    │   ├── ripple.mtl
                    │   ├── shapes.mtl
                    │   └── spline.mtl
                    ├── Wavefront Object/
                    │   ├── dice.obj
                    │   ├── random.obj
                    │   ├── ripple.obj
                    │   ├── shapes.obj
                    │   └── spline.obj
                    ├── Web Ontology Language/
                    │   └── sample.owl
                    ├── WebAssembly/
                    │   ├── add.wat
                    │   ├── fibonacci.wat
                    │   ├── imported-min.wast
                    │   ├── local-cse.wast
                    │   ├── print.wat
                    │   └── remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast
                    ├── WebIDL/
                    │   ├── AnimationEvent.webidl
                    │   └── Fetch.webidl
                    ├── Wolfram Language/
                    │   └── mendeley-wolfram.m
                    ├── World of Warcraft Addon Data/
                    │   ├── addon.toc
                    │   ├── lingua.toc
                    │   └── linguist.toc
                    ├── X10/
                    │   ├── ArraySum.x10
                    │   ├── Cancellation.x10
                    │   ├── Fibonacci.x10
                    │   ├── HeatTransfer_v0.x10
                    │   ├── HeatTransfer_v1.x10
                    │   ├── HelloWholeWorld.x10
                    │   ├── HelloWorld.x10
                    │   ├── Histogram.x10
                    │   ├── Integrate.x10
                    │   ├── KMeans.x10
                    │   ├── KMeansDist.x10
                    │   ├── KMeansDistPlh.x10
                    │   ├── KMeansSPMD.x10
                    │   ├── MontyPi.x10
                    │   ├── NQueensDist.x10
                    │   ├── NQueensPar.x10
                    │   ├── QSort.x10
                    │   └── StructSpheres.x10
                    ├── XC/
                    │   └── main.xc
                    ├── XCompose/
                    │   └── filenames/
                    │       └── XCompose
                    ├── XML/
                    │   ├── Application.xib
                    │   ├── CSharpVSPackage.vstemplate
                    │   ├── Default.props
                    │   ├── Demo.sfproj
                    │   ├── Example.mdpolicy
                    │   ├── FXMLSample.fxml
                    │   ├── HITSP_C32.sch
                    │   ├── JSBrowser.jsproj
                    │   ├── MDM.adml
                    │   ├── MDM.admx
                    │   ├── MainView.ux
                    │   ├── MyApp.ux
                    │   ├── NDepends_Example.ndproj
                    │   ├── Storyboard.storyboard
                    │   ├── Strings.resx
                    │   ├── System.Buffers.pkgproj
                    │   ├── XmlIO.pluginspec
                    │   ├── chrome.natvis
                    │   ├── cloudconfig.cscfg
                    │   ├── clouddef.csdef
                    │   ├── configdef.cscfg
                    │   ├── csproj-sample.csproj
                    │   ├── dependency-example.depproj
                    │   ├── example-sharedproj.shproj
                    │   ├── example.ccproj
                    │   ├── filenames/
                    │   │   └── .cproject
                    │   ├── fsproj-sample.fsproj
                    │   ├── intellij.iml
                    │   ├── libsomething.dll.config
                    │   ├── module.ant
                    │   ├── module.ivy
                    │   ├── msbuild-example.proj
                    │   ├── namespace-strict.sch
                    │   ├── net_docfile.xml
                    │   ├── nproj-sample.nproj
                    │   ├── oasis-table.sch
                    │   ├── phpunit.xml.dist
                    │   ├── point-3.1.gml
                    │   ├── point-3.2.gml
                    │   ├── pt_BR.ts
                    │   ├── pt_BR.xml
                    │   ├── racoon.mjml
                    │   ├── real-estate.mjml
                    │   ├── sample.csl
                    │   ├── sample.nuspec
                    │   ├── sample.targets
                    │   ├── some-ideas.mm
                    │   ├── source.extension.vsixmanifest
                    │   ├── src.builds
                    │   ├── tei-odd-sample.odd
                    │   ├── translation_en3.ts
                    │   ├── vbproj-sample.vbproj
                    │   ├── vcxproj-sample.vcxproj
                    │   ├── vcxproj-sample.vcxproj.filters
                    │   ├── water.tsx
                    │   ├── wixdemo.wixproj
                    │   ├── xhtml-struct-1.mod
                    │   └── xquery-tutorial.xspec
                    ├── XPM/
                    │   ├── cc-public_domain_mark_white.pm
                    │   └── stick-unfocus.xpm
                    ├── XPages/
                    │   ├── navbar.xsp-config
                    │   └── navbar.xsp.metadata
                    ├── XProc/
                    │   └── xproc.xpl
                    ├── XQuery/
                    │   └── xproc.xqm
                    ├── XS/
                    │   └── CommonMark.xs
                    ├── XSLT/
                    │   └── test.xslt
                    ├── Xojo/
                    │   ├── App.xojo_code
                    │   ├── BillingReport.xojo_report
                    │   ├── MainMenuBar.xojo_menu
                    │   ├── MyToolbar.xojo_toolbar
                    │   ├── Window1.xojo_window
                    │   └── database.xojo_script
                    ├── Xtend/
                    │   ├── BasicExpressions.xtend
                    │   └── Movies.xtend
                    ├── YAML/
                    │   ├── Ansible.YAML-tmLanguage
                    │   ├── HexInspect.sublime-syntax
                    │   ├── database.yml.mysql
                    │   ├── filenames/
                    │   │   ├── .clang-format
                    │   │   ├── .clang-tidy
                    │   │   └── .gemrc
                    │   ├── source.r-console.syntax
                    │   └── vcr_cassette.yml
                    ├── YANG/
                    │   └── sfc-lisp-impl.yang
                    ├── YARA/
                    │   ├── OfExample.yar
                    │   ├── example.yara
                    │   └── true.yar
                    ├── Zephir/
                    │   ├── Cblock.zep
                    │   └── Router.zep
                    ├── Zimpl/
                    │   └── sample.zmpl
                    ├── desktop/
                    │   └── example.desktop
                    ├── eC/
                    │   └── Designer.ec
                    ├── edn/
                    │   └── bigger-than-pluto.edn
                    ├── fish/
                    │   ├── config.fish
                    │   ├── eval.fish
                    │   └── funced.fish
                    ├── reStructuredText/
                    │   └── HACKING.rst.txt
                    ├── sed/
                    │   └── hanoi.sed
                    ├── wdl/
                    │   ├── hello.wdl
                    │   ├── ifs_in_scatters.wdl
                    │   └── passingfiles.wdl
                    ├── wisp/
                    │   └── intro.wisp
                    └── xBase/
                        ├── sample.ch
                        ├── sample.prg
                        └── sample.prw
Download .txt
Showing preview only (283K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3335 symbols across 187 files)

FILE: src/test/resources/samples/langs/C#/BsonPropertyValue.cs
  class BsonPropertyValue (line 5) | internal class BsonPropertyValue
    method BsonPropertyValue (line 13) | public BsonPropertyValue(Type type, object value, bool isDictionary)

FILE: src/test/resources/samples/langs/C#/MongoExpressionVisitor.cs
  class MongoExpressionVisitor (line 8) | internal class MongoExpressionVisitor : ExpressionVisitor
    method Visit (line 10) | protected override Expression Visit(Expression exp)
    method VisitAggregate (line 35) | protected virtual Expression VisitAggregate(AggregateExpression aggreg...
    method VisitAggregateSubquery (line 44) | protected virtual Expression VisitAggregateSubquery(AggregateSubqueryE...
    method VisitCollection (line 53) | protected virtual Expression VisitCollection(CollectionExpression coll...
    method VisitField (line 58) | protected virtual Expression VisitField(FieldExpression field)
    method VisitProjection (line 67) | protected virtual Expression VisitProjection(ProjectionExpression proj...
    method VisitOrderBy (line 76) | protected ReadOnlyCollection<OrderExpression> VisitOrderBy(ReadOnlyCol...
    method VisitScalar (line 96) | protected virtual Expression VisitScalar(ScalarExpression scalar)
    method VisitSelect (line 104) | protected virtual Expression VisitSelect(SelectExpression select)
    method VisitSource (line 118) | protected virtual Expression VisitSource(Expression source)
    method VisitSubquery (line 123) | protected virtual Expression VisitSubquery(SubqueryExpression subquery)
    method VisitFieldDeclarationList (line 133) | protected virtual ReadOnlyCollection<FieldDeclaration> VisitFieldDecla...

FILE: src/test/resources/samples/langs/C#/Program.cs
  class Program (line 13) | class Program
    method Main (line 15) | static void Main(string[] args)

FILE: src/test/resources/samples/langs/C++/16F88.h
  type PIC16F88Instruction (line 19) | enum PIC16F88Instruction
  function class (line 58) | class PIC16F88

FILE: src/test/resources/samples/langs/C++/CsvStreamer.h
  function class (line 13) | class CsvStreamer

FILE: src/test/resources/samples/langs/C++/Entity.h
  function namespace (line 16) | namespace Whitedrop {

FILE: src/test/resources/samples/langs/C++/Field.h
  type Field (line 30) | enum Field { Free, Black, White, Illegal }
  type Field (line 32) | typedef Field Player;

FILE: src/test/resources/samples/langs/C++/Memory16F88.h
  function class (line 21) | class Memory16F88 : public Memory

FILE: src/test/resources/samples/langs/C++/PackageInfoParser.cpp
  type BPackageKit (line 21) | namespace BPackageKit {
    function status_t (line 37) | status_t
    function status_t (line 86) | status_t
    function status_t (line 111) | status_t
    type StringParser (line 518) | struct StringParser : public ListElementParser {
      method StringParser (line 524) | StringParser(BStringList* value, bool requireResolvableName,
    function uint32 (line 563) | uint32
    type ResolvableParser (line 602) | struct ResolvableParser : public ListElementParser {
      method ResolvableParser (line 606) | ResolvableParser(Parser& parser_,
    type ResolvableExpressionParser (line 665) | struct ResolvableExpressionParser : public ListElementParser {
      method ResolvableExpressionParser (line 670) | ResolvableExpressionParser(Parser& parser,
    type GlobalWritableFileInfoParser (line 696) | struct GlobalWritableFileInfoParser : public ListElementParser {
      method GlobalWritableFileInfoParser (line 700) | GlobalWritableFileInfoParser(Parser& parser,
    type UserSettingsFileInfoParser (line 761) | struct UserSettingsFileInfoParser : public ListElementParser {
      method UserSettingsFileInfoParser (line 765) | UserSettingsFileInfoParser(Parser& parser,
    type UserParser (line 821) | struct UserParser : public ListElementParser {
      method UserParser (line 825) | UserParser(Parser& parser, UserList* users)

FILE: src/test/resources/samples/langs/C++/ThreadedQueue.h
  function waitItems (line 55) | void waitItems()
  function signalItems (line 62) | void signalItems()
  function push (line 69) | void push(T item)

FILE: src/test/resources/samples/langs/C++/Types.h
  type smallPrime_t (line 32) | typedef uint32_t smallPrime_t;

FILE: src/test/resources/samples/langs/C++/bar.h
  function class (line 1) | class Bar

FILE: src/test/resources/samples/langs/C++/bar.hh
  class Bar (line 1) | class Bar

FILE: src/test/resources/samples/langs/C++/bar.hpp
  class Bar (line 1) | class Bar

FILE: src/test/resources/samples/langs/C++/crypter.cpp
  function EncryptSecret (line 105) | bool EncryptSecret(const CKeyingMaterial& vMasterKey, const CKeyingMater...
  function DecryptSecret (line 115) | bool DecryptSecret(const CKeyingMaterial& vMasterKey, const std::vector<...

FILE: src/test/resources/samples/langs/C++/env.cpp
  function Env (line 38) | Env *Env::instance()
  function QVariantMap (line 78) | QVariantMap Env::asVariantMap() const

FILE: src/test/resources/samples/langs/C++/env.h
  function class (line 36) | class Env : public QObject

FILE: src/test/resources/samples/langs/C++/gdsdbreader.h
  type level (line 12) | enum level {LEVEL_ONE, LEVEL_TWO, LEVEL_THREE}
  function class (line 16) | class dbDataStructure

FILE: src/test/resources/samples/langs/C++/graphics.cpp
  function u32 (line 16) | u32 getCurrentColor()
  function setColor (line 21) | void setColor(int r, int g, int b)
  function setColor (line 29) | void setColor(int r, int g, int b, int a)
  function setScreen (line 37) | void setScreen(int screen)
  function getCurrentScreen (line 42) | int getCurrentScreen()
  function screenShot (line 47) | void screenShot() //for showing stuff being done
  function translateCoords (line 62) | void translateCoords(float * x, float * y) {
  function translate (line 70) | void translate(float dx, float dy)
  function push (line 79) | void push()
  function pop (line 87) | void pop()
  function setScissor (line 97) | void setScissor(u32 x, u32 y, u32 width, u32 height)

FILE: src/test/resources/samples/langs/C++/hello.cpp
  function main (line 5) | int main()

FILE: src/test/resources/samples/langs/C++/hello.grpc.pb.h
  function namespace (line 19) | namespace grpc {
  function class (line 27) | class HelloService final {
  function RequestSayHello (line 76) | void RequestSayHello(::grpc::ServerContext* context, ::HelloRequest* req...
  type WithAsyncMethod_SayHello (line 80) | typedef WithAsyncMethod_SayHello<Service > AsyncService;
  type WithStreamedUnaryMethod_SayHello (line 118) | typedef WithStreamedUnaryMethod_SayHello<Service > StreamedUnaryService;
  type Service (line 119) | typedef Service SplitStreamedService;
  type WithStreamedUnaryMethod_SayHello (line 120) | typedef WithStreamedUnaryMethod_SayHello<Service > StreamedService;

FILE: src/test/resources/samples/langs/C++/json_reader.cpp
  type Json (line 42) | namespace Json {
    function Features (line 61) | Features
    function Features (line 68) | Features
    function in (line 81) | static inline bool
    function in (line 87) | static inline bool
    function containsNewLine (line 94) | static bool
    function codePointToUTF8 (line 104) | static std::string codePointToUTF8(unsigned int cp)
    function Value (line 835) | Value &

FILE: src/test/resources/samples/langs/C++/json_writer.cpp
  type Json (line 42) | namespace Json {
    function isControlCharacter (line 44) | static bool isControlCharacter(char ch)
    function containsControlCharacter (line 49) | static bool containsControlCharacter( const char* str )
    function uintToString (line 58) | static void uintToString( unsigned int value,
    function valueToString (line 70) | std::string valueToString( Int value )
    function valueToString (line 85) | std::string valueToString( UInt value )
    function valueToString (line 94) | std::string valueToString( double value )
    function valueToString (line 134) | std::string valueToString( bool value )
    function valueToQuotedString (line 139) | std::string valueToQuotedString( const char *value )

FILE: src/test/resources/samples/langs/C++/key.cpp
  function EC_KEY_regenerate_key (line 13) | int EC_KEY_regenerate_key(EC_KEY *eckey, BIGNUM *priv_key)
  function ECDSA_SIG_recover_key_GFp (line 52) | int ECDSA_SIG_recover_key_GFp(EC_KEY *eckey, ECDSA_SIG *ecsig, const uns...
  function CKey (line 151) | CKey& CKey::operator=(const CKey& b)
  function CSecret (line 215) | CSecret CKey::GetSecret(bool &fCompressed) const
  function CPrivKey (line 230) | CPrivKey CKey::GetPrivKey() const
  function CPubKey (line 253) | CPubKey CKey::GetPubKey() const

FILE: src/test/resources/samples/langs/C++/key.h
  function class (line 41) | class key_error : public std::runtime_error
  function class (line 48) | class CKeyID : public uint160
  function class (line 56) | class CScriptID : public uint160
  function class (line 64) | class CPubKey {
  type std (line 104) | typedef std::vector<unsigned char, secure_allocator<unsigned char> > CPr...
  type std (line 106) | typedef std::vector<unsigned char, secure_allocator<unsigned char> > CSe...
  function class (line 109) | class CKey

FILE: src/test/resources/samples/langs/C++/libcanister.h
  function namespace (line 19) | namespace libcanister

FILE: src/test/resources/samples/langs/C++/main.cpp
  function main (line 45) | int main(int argc, char** argv, const char** envp)

FILE: src/test/resources/samples/langs/C++/metrics.h
  type Metric (line 28) | struct Metric {
  type ScopedMetric (line 39) | struct ScopedMetric {
  type Metrics (line 51) | struct Metrics {
  function Restart (line 67) | struct Stopwatch {

FILE: src/test/resources/samples/langs/C++/protocol-buffer.pb.cc
  type persons (line 19) | namespace persons {
    function protobuf_AssignDesc_protocol_2dbuffer_2eproto (line 30) | void protobuf_AssignDesc_protocol_2dbuffer_2eproto() {
    function protobuf_AssignDescriptorsOnce (line 56) | inline void protobuf_AssignDescriptorsOnce() {
    function protobuf_RegisterTypes (line 61) | void protobuf_RegisterTypes(const ::std::string&) {
    function protobuf_ShutdownFile_protocol_2dbuffer_2eproto (line 69) | void protobuf_ShutdownFile_protocol_2dbuffer_2eproto() {
    function protobuf_AddDesc_protocol_2dbuffer_2eproto (line 74) | void protobuf_AddDesc_protocol_2dbuffer_2eproto() {
    type StaticDescriptorInitializer_protocol_2dbuffer_2eproto (line 91) | struct StaticDescriptorInitializer_protocol_2dbuffer_2eproto {
      method StaticDescriptorInitializer_protocol_2dbuffer_2eproto (line 92) | StaticDescriptorInitializer_protocol_2dbuffer_2eproto() {
    function Person (line 145) | const Person& Person::default_instance() {
    function Person (line 152) | Person* Person::New() const {

FILE: src/test/resources/samples/langs/C++/protocol-buffer.pb.h
  function namespace (line 29) | namespace persons {
  function namespace (line 208) | namespace google {

FILE: src/test/resources/samples/langs/C++/render_adapter.cpp
  type Gui (line 3) | namespace Gui

FILE: src/test/resources/samples/langs/C++/scanner.cc
  type v8 (line 35) | namespace v8 {
    type internal (line 36) | namespace internal {
      function uc32 (line 61) | uc32 Scanner::ScanHexNumber(int expected_length) {
      function IsByteOrderMark (line 244) | static inline bool IsByteOrderMark(uc32 c) {
      function uc32 (line 667) | uc32 Scanner::ScanOctalEscape(uc32 c, int length) {
      function uc32 (line 804) | uc32 Scanner::ScanIdentifierUnicodeEscape() {
      function KeywordOrIdentifierToken (line 883) | static Token::Value KeywordOrIdentifierToken(const char* input,

FILE: src/test/resources/samples/langs/C++/scanner.h
  function namespace (line 41) | namespace v8 {

FILE: src/test/resources/samples/langs/C++/srs_app_ingest.cpp
  function string (line 67) | string SrsIngesterFFMPEG::uri()

FILE: src/test/resources/samples/langs/C++/utils.h
  function class (line 47) | class Utils

FILE: src/test/resources/samples/langs/C++/v8.cc
  type v8 (line 47) | namespace v8 {
    type internal (line 48) | namespace internal {
      function seed_random (line 126) | static void seed_random(uint32_t* state) {
      function random_base (line 143) | static uint32_t random_base(uint32_t* state) {
      function Object (line 236) | Object* V8::FillHeapNumberWithRandom(Object* heap_number,

FILE: src/test/resources/samples/langs/C++/v8.h
  function namespace (line 70) | namespace v8 {

FILE: src/test/resources/samples/langs/C++/wrapper_inner.cpp
  function __Pyx_RefNannyAPIStruct (line 415) | static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI(const char *mod...
  function inner_work_1d (line 765) | static  void inner_work_1d(int __pyx_v_num_x, double *__pyx_v_data_ptr, ...
  function inner_work_2d (line 881) | static  void inner_work_2d(int __pyx_v_num_x, int __pyx_v_num_y, double ...
  function PyObject (line 1000) | static PyObject *__pyx_pf_13wrapper_inner_pure_py_test(PyObject *__pyx_s...
  function CYTHON_UNUSED (line 1082) | static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__(PyObject...
  function CYTHON_UNUSED (line 1896) | static CYTHON_UNUSED void __pyx_pf_5numpy_7ndarray_1__releasebuffer__(Py...
  function CYTHON_INLINE (line 1959) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyOb...
  function CYTHON_INLINE (line 1998) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyOb...
  function CYTHON_INLINE (line 2037) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyOb...
  function CYTHON_INLINE (line 2076) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyOb...
  function CYTHON_INLINE (line 2115) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyOb...
  function CYTHON_INLINE (line 2154) | static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Desc...
  function CYTHON_INLINE (line 2867) | static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *_...
  function CYTHON_INLINE (line 2947) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObje...
  type PyModuleDef (line 3001) | struct PyModuleDef
  function __Pyx_InitCachedBuiltins (line 3053) | static int __Pyx_InitCachedBuiltins(void) {
  function __Pyx_InitCachedConstants (line 3062) | static int __Pyx_InitCachedConstants(void) {
  function __Pyx_InitGlobals (line 3168) | static int __Pyx_InitGlobals(void) {
  function PyMODINIT_FUNC (line 3182) | PyMODINIT_FUNC PyInit_wrapper_inner(void)
  function CYTHON_INLINE (line 3325) | static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *typ...
  function PyObject (line 3337) | static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
  function CYTHON_INLINE (line 3345) | static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *val...
  function CYTHON_INLINE (line 3360) | static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **val...
  function __Pyx_Raise (line 3373) | static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
  function __Pyx_Raise (line 3440) | static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
  function CYTHON_INLINE (line 3482) | static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
  function CYTHON_INLINE (line 3486) | static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t inde...
  function CYTHON_INLINE (line 3496) | static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expec...
  function __Pyx_UnpackTupleError (line 3505) | static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
  function PyObject (line 3515) | static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
  function PyObject (line 3549) | static PyObject *__Pyx_GetStdout(void) {
  function __Pyx_Print (line 3557) | static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) {
  function __Pyx_Print (line 3592) | static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newlin...
  function __Pyx_PrintOne (line 3650) | static int __Pyx_PrintOne(PyObject* f, PyObject *o) {
  function __Pyx_PrintOne (line 3671) | static int __Pyx_PrintOne(PyObject* stream, PyObject *o) {
  function CYTHON_INLINE (line 3685) | static CYTHON_INLINE PyObject *__Pyx_PyInt_to_py_Py_intptr_t(Py_intptr_t...
  function CYTHON_INLINE (line 3712) | static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_pa...
  function CYTHON_INLINE (line 3716) | static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_pa...
  function CYTHON_INLINE (line 3721) | static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_pa...
  function CYTHON_INLINE (line 3731) | static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_fl...
  function CYTHON_INLINE (line 3734) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_co...
  function CYTHON_INLINE (line 3740) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_c...
  function CYTHON_INLINE (line 3746) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_c...
  function CYTHON_INLINE (line 3752) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_c...
  function CYTHON_INLINE (line 3759) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_co...
  function CYTHON_INLINE (line 3765) | static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) {
  function CYTHON_INLINE (line 3768) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_c...
  function CYTHON_INLINE (line 3775) | static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex z) {
  function CYTHON_INLINE (line 3782) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_co...
  function CYTHON_INLINE (line 3832) | static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_...
  function CYTHON_INLINE (line 3836) | static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_...
  function CYTHON_INLINE (line 3841) | static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_...
  function CYTHON_INLINE (line 3851) | static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_do...
  function CYTHON_INLINE (line 3854) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_c...
  function CYTHON_INLINE (line 3860) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_...
  function CYTHON_INLINE (line 3866) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_...
  function CYTHON_INLINE (line 3872) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_...
  function CYTHON_INLINE (line 3879) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_c...
  function CYTHON_INLINE (line 3885) | static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) {
  function CYTHON_INLINE (line 3888) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_...
  function CYTHON_INLINE (line 3895) | static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex z) {
  function CYTHON_INLINE (line 3902) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_c...
  function __Pyx_PyInt_AsUnsignedChar (line 3950) | static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* ...
  function __Pyx_PyInt_AsUnsignedShort (line 3969) | static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject...
  function __Pyx_PyInt_AsUnsignedInt (line 3988) | static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
  function CYTHON_INLINE (line 4007) | static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
  function __Pyx_PyInt_AsShort (line 4026) | static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
  function CYTHON_INLINE (line 4045) | static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
  function __Pyx_PyInt_AsSignedChar (line 4064) | static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
  function __Pyx_PyInt_AsSignedShort (line 4083) | static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
  function __Pyx_PyInt_AsSignedInt (line 4102) | static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
  function CYTHON_INLINE (line 4121) | static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) {
  function __Pyx_PyInt_AsUnsignedLong (line 4140) | static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* ...
  function __Pyx_PyInt_AsLong (line 4210) | static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
  function CYTHON_INLINE (line 4245) | static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
  function __Pyx_PyInt_AsSignedLong (line 4280) | static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
  function __Pyx_WriteUnraisable (line 4350) | static void __Pyx_WriteUnraisable(const char *name) {
  function __Pyx_ExportFunction (line 4368) | static int __Pyx_ExportFunction(const char *name, void (*f)(void), const...
  function PyTypeObject (line 4407) | static PyTypeObject *__Pyx_ImportType(const char *module_name, const cha...
  function PyObject (line 4464) | static PyObject *__Pyx_ImportModule(const char *name) {
  function __Pyx_AddTraceback (line 4488) | static void __Pyx_AddTraceback(const char *funcname) {
  function __Pyx_InitStrings (line 4554) | static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
  function CYTHON_INLINE (line 4586) | static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
  function CYTHON_INLINE (line 4638) | static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  function CYTHON_INLINE (line 4647) | static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
  function CYTHON_INLINE (line 4661) | static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {

FILE: src/test/resources/samples/langs/C/2D.C
  function set_vgabasemem (line 4) | void set_vgabasemem(void)
  function drw_chdis (line 13) | void drw_chdis(int mode) // change the display!
  function drw_pix (line 23) | void drw_pix(int x, int y, enum COLORS col)
  function drw_line (line 28) | void drw_line(int x0, int y0, int x1, int y1, enum COLORS col)
  function drw_rectl (line 78) | void drw_rectl(int x, int y, int w, int h, enum COLORS col)
  function drw_rectf (line 87) | void drw_rectf(int x, int y, int w, int h, enum COLORS col)
  function drw_circl (line 97) | void drw_circl(int x, int y, int rad, enum COLORS col)
  function drw_tex (line 110) | void drw_tex(int x, int y, int w, int h, enum COLORS tex[])
  function _init (line 122) | void 2D_init(void)
  function _exit (line 128) | void 2D_exit(void)

FILE: src/test/resources/samples/langs/C/2D.H
  type COLORS (line 19) | enum COLORS
  type COLORS (line 20) | enum COLORS
  type COLORS (line 21) | enum COLORS
  type COLORS (line 22) | enum COLORS
  type COLORS (line 23) | enum COLORS
  type COLORS (line 24) | enum COLORS

FILE: src/test/resources/samples/langs/C/GLKMatrix4.h
  function GLKMatrix4 (line 215) | static __inline__ GLKMatrix4 GLKMatrix4Make(float m00, float m01, float ...
  function GLKMatrix4 (line 227) | static __inline__ GLKMatrix4 GLKMatrix4MakeAndTranspose(float m00, float...
  function GLKMatrix4 (line 239) | static __inline__ GLKMatrix4 GLKMatrix4MakeWithArray(float values[16])
  function GLKMatrix4 (line 248) | static __inline__ GLKMatrix4 GLKMatrix4MakeWithArrayAndTranspose(float v...
  function GLKMatrix4 (line 262) | static __inline__ GLKMatrix4 GLKMatrix4MakeWithRows(GLKVector4 row0,
  function GLKMatrix4 (line 274) | static __inline__ GLKMatrix4 GLKMatrix4MakeWithColumns(GLKVector4 column0,
  function GLKMatrix4 (line 295) | static __inline__ GLKMatrix4 GLKMatrix4MakeWithQuaternion(GLKQuaternion ...
  function GLKMatrix4 (line 329) | static __inline__ GLKMatrix4 GLKMatrix4MakeTranslation(float tx, float t...
  function GLKMatrix4 (line 338) | static __inline__ GLKMatrix4 GLKMatrix4MakeScale(float sx, float sy, flo...
  function GLKMatrix4 (line 347) | static __inline__ GLKMatrix4 GLKMatrix4MakeRotation(float radians, float...
  function GLKMatrix4 (line 374) | static __inline__ GLKMatrix4 GLKMatrix4MakeXRotation(float radians)
  function GLKMatrix4 (line 387) | static __inline__ GLKMatrix4 GLKMatrix4MakeYRotation(float radians)
  function GLKMatrix4 (line 400) | static __inline__ GLKMatrix4 GLKMatrix4MakeZRotation(float radians)
  function GLKMatrix4 (line 413) | static __inline__ GLKMatrix4 GLKMatrix4MakePerspective(float fovyRadians...
  function GLKMatrix4 (line 425) | static __inline__ GLKMatrix4 GLKMatrix4MakeFrustum(float left, float right,
  function GLKMatrix4 (line 444) | static __inline__ GLKMatrix4 GLKMatrix4MakeOrtho(float left, float right,
  function GLKMatrix4 (line 463) | static __inline__ GLKMatrix4 GLKMatrix4MakeLookAt(float eyeX, float eyeY...
  function GLKMatrix3 (line 485) | static __inline__ GLKMatrix3 GLKMatrix4GetMatrix3(GLKMatrix4 matrix)
  function GLKMatrix2 (line 493) | static __inline__ GLKMatrix2 GLKMatrix4GetMatrix2(GLKMatrix4 matrix)
  function GLKVector4 (line 500) | static __inline__ GLKVector4 GLKMatrix4GetRow(GLKMatrix4 matrix, int row)
  function GLKVector4 (line 506) | static __inline__ GLKVector4 GLKMatrix4GetColumn(GLKMatrix4 matrix, int ...
  function GLKMatrix4 (line 517) | static __inline__ GLKMatrix4 GLKMatrix4SetRow(GLKMatrix4 matrix, int row...
  function GLKMatrix4 (line 527) | static __inline__ GLKMatrix4 GLKMatrix4SetColumn(GLKMatrix4 matrix, int ...
  function GLKMatrix4 (line 543) | static __inline__ GLKMatrix4 GLKMatrix4Transpose(GLKMatrix4 matrix)
  function GLKMatrix4 (line 557) | static __inline__ GLKMatrix4 GLKMatrix4Multiply(GLKMatrix4 matrixLeft, G...
  function GLKMatrix4 (line 612) | static __inline__ GLKMatrix4 GLKMatrix4Add(GLKMatrix4 matrixLeft, GLKMat...
  function GLKMatrix4 (line 652) | static __inline__ GLKMatrix4 GLKMatrix4Subtract(GLKMatrix4 matrixLeft, G...
  function GLKMatrix4 (line 692) | static __inline__ GLKMatrix4 GLKMatrix4Translate(GLKMatrix4 matrix, floa...
  function GLKMatrix4 (line 704) | static __inline__ GLKMatrix4 GLKMatrix4TranslateWithVector3(GLKMatrix4 m...
  function GLKMatrix4 (line 716) | static __inline__ GLKMatrix4 GLKMatrix4TranslateWithVector4(GLKMatrix4 m...
  function GLKMatrix4 (line 728) | static __inline__ GLKMatrix4 GLKMatrix4Scale(GLKMatrix4 matrix, float sx...
  function GLKMatrix4 (line 749) | static __inline__ GLKMatrix4 GLKMatrix4ScaleWithVector3(GLKMatrix4 matri...
  function GLKMatrix4 (line 770) | static __inline__ GLKMatrix4 GLKMatrix4ScaleWithVector4(GLKMatrix4 matri...
  function GLKMatrix4 (line 791) | static __inline__ GLKMatrix4 GLKMatrix4Rotate(GLKMatrix4 matrix, float r...
  function GLKMatrix4 (line 797) | static __inline__ GLKMatrix4 GLKMatrix4RotateWithVector3(GLKMatrix4 matr...
  function GLKMatrix4 (line 803) | static __inline__ GLKMatrix4 GLKMatrix4RotateWithVector4(GLKMatrix4 matr...
  function GLKMatrix4 (line 809) | static __inline__ GLKMatrix4 GLKMatrix4RotateX(GLKMatrix4 matrix, float ...
  function GLKMatrix4 (line 815) | static __inline__ GLKMatrix4 GLKMatrix4RotateY(GLKMatrix4 matrix, float ...
  function GLKMatrix4 (line 821) | static __inline__ GLKMatrix4 GLKMatrix4RotateZ(GLKMatrix4 matrix, float ...
  function GLKVector3 (line 827) | static __inline__ GLKVector3 GLKMatrix4MultiplyVector3(GLKMatrix4 matrix...
  function GLKVector3 (line 833) | static __inline__ GLKVector3 GLKMatrix4MultiplyVector3WithTranslation(GL...
  function GLKVector3 (line 839) | static __inline__ GLKVector3 GLKMatrix4MultiplyAndProjectVector3(GLKMatr...
  function GLKMatrix4MultiplyVector3Array (line 845) | static __inline__ void GLKMatrix4MultiplyVector3Array(GLKMatrix4 matrix,...
  function GLKMatrix4MultiplyVector3ArrayWithTranslation (line 852) | static __inline__ void GLKMatrix4MultiplyVector3ArrayWithTranslation(GLK...
  function GLKMatrix4MultiplyAndProjectVector3Array (line 859) | static __inline__ void GLKMatrix4MultiplyAndProjectVector3Array(GLKMatri...
  function GLKVector4 (line 866) | static __inline__ GLKVector4 GLKMatrix4MultiplyVector4(GLKMatrix4 matrix...
  function GLKMatrix4MultiplyVector4Array (line 892) | static __inline__ void GLKMatrix4MultiplyVector4Array(GLKMatrix4 matrix,...

FILE: src/test/resources/samples/langs/C/array.c
  function __bump_up (line 3) | unsigned __bump_up(unsigned n) {
  type __array_header (line 17) | struct __array_header
  function __array_resize (line 24) | void __array_resize(void **array, size_t size, int difference) {
  function __array_search (line 38) | int __array_search(void *array, void *elem, size_t size) {

FILE: src/test/resources/samples/langs/C/array.h
  type __array_header (line 48) | struct __array_header {

FILE: src/test/resources/samples/langs/C/asm.h
  function inb (line 16) | uint8_t inb (uint16_t port) {
  function outb (line 23) | void outb (uint16_t port, uint8_t val) {

FILE: src/test/resources/samples/langs/C/bitmap.h
  type bitmap_t (line 23) | typedef struct {

FILE: src/test/resources/samples/langs/C/blob.c
  type blob (line 6) | struct blob
  type object (line 8) | struct object
  type blob (line 18) | struct blob
  function parse_blob_buffer (line 21) | int parse_blob_buffer(struct blob *item, void *buffer, unsigned long size)

FILE: src/test/resources/samples/langs/C/blob.h
  type blob (line 8) | struct blob {
  type blob (line 12) | struct blob
  type blob (line 14) | struct blob

FILE: src/test/resources/samples/langs/C/bootstrap.h
  type object (line 12) | typedef struct object object;
  type obj_type (line 20) | enum obj_type {
  type object (line 34) | typedef object *(*prim_proc)(object *args);
  type obj_type (line 40) | enum obj_type
  function is_true (line 42) | static inline int is_true(object *obj)

FILE: src/test/resources/samples/langs/C/color.h
  type console_color_t (line 23) | typedef struct {

FILE: src/test/resources/samples/langs/C/commit.c
  type commit (line 16) | struct commit
  type object (line 16) | struct object
  type commit (line 26) | struct commit
  type commit (line 29) | struct commit
  type object (line 32) | struct object
  type commit (line 39) | struct commit
  type commit (line 44) | struct commit
  type commit (line 46) | struct commit
  type commit (line 56) | struct commit
  type object (line 58) | struct object
  type commit (line 66) | struct commit
  type commit (line 69) | struct commit
  function parse_commit_date (line 79) | static unsigned long parse_commit_date(const char *buf, const char *tail)
  type commit_graft (line 106) | struct commit_graft
  function commit_graft_pos (line 109) | static int commit_graft_pos(const unsigned char *sha1)
  function register_commit_graft (line 128) | int register_commit_graft(struct commit_graft *graft, int ignore_dups)
  type commit_graft (line 157) | struct commit_graft
  type commit_graft (line 161) | struct commit_graft
  function read_graft_file (line 188) | static int read_graft_file(const char *graft_file)
  function prepare_commit_graft (line 207) | static void prepare_commit_graft(void)
  type commit_graft (line 221) | struct commit_graft
  function for_each_commit_graft (line 231) | int for_each_commit_graft(each_commit_graft_fn fn, void *cb_data)
  function unregister_shallow (line 239) | int unregister_shallow(const unsigned char *sha1)
  function parse_commit_buffer (line 252) | int parse_commit_buffer(struct commit *item, const void *buffer, unsigne...
  function parse_commit (line 307) | int parse_commit(struct commit *item)
  function find_commit_subject (line 336) | int find_commit_subject(const char *commit_buffer, const char **subject)
  type commit_list (line 355) | struct commit_list
  type commit (line 355) | struct commit
  type commit_list (line 355) | struct commit_list
  type commit_list (line 357) | struct commit_list
  type commit_list (line 357) | struct commit_list
  function commit_list_count (line 364) | unsigned commit_list_count(const struct commit_list *l)
  function free_commit_list (line 372) | void free_commit_list(struct commit_list *list)
  type commit_list (line 381) | struct commit_list
  type commit (line 381) | struct commit
  type commit_list (line 381) | struct commit_list
  type commit_list (line 383) | struct commit_list
  type commit_list (line 384) | struct commit_list
  function commit_list_compare_by_date (line 394) | static int commit_list_compare_by_date(const void *a, const void *b)
  type commit_list (line 407) | struct commit_list
  function commit_list_set_next (line 410) | static void commit_list_set_next(void *a, void *next)
  function commit_list_sort_by_date (line 415) | void commit_list_sort_by_date(struct commit_list **list)
  type commit (line 421) | struct commit
  type commit_list (line 421) | struct commit_list
  type commit (line 424) | struct commit
  type commit_list (line 425) | struct commit_list
  type commit_list (line 426) | struct commit_list
  type commit (line 432) | struct commit
  function clear_commit_marks_1 (line 442) | static void clear_commit_marks_1(struct commit_list **plist,
  function clear_commit_marks (line 464) | void clear_commit_marks(struct commit *commit, unsigned int mark)
  function clear_commit_marks_for_object_array (line 472) | void clear_commit_marks_for_object_array(struct object_array *a, unsigne...
  type commit (line 486) | struct commit
  type commit_list (line 486) | struct commit_list
  type commit_list (line 488) | struct commit_list
  type commit (line 489) | struct commit
  function sort_in_topological_order (line 501) | void sort_in_topological_order(struct commit_list ** list, int lifo)
  type commit (line 598) | struct commit
  type commit_list (line 598) | struct commit_list
  type commit (line 601) | struct commit
  type commit_list (line 610) | struct commit_list
  type commit (line 610) | struct commit
  type commit (line 610) | struct commit
  type commit_list (line 612) | struct commit_list
  type commit_list (line 613) | struct commit_list
  type commit (line 640) | struct commit
  type commit_list (line 641) | struct commit_list
  type commit_list (line 642) | struct commit_list
  type commit (line 661) | struct commit
  type commit_list (line 676) | struct commit_list
  type commit_list (line 685) | struct commit_list
  type commit_list (line 685) | struct commit_list
  type commit_list (line 687) | struct commit_list
  type commit_list (line 688) | struct commit_list
  type commit_list (line 694) | struct commit_list
  type commit_list (line 697) | struct commit_list
  type commit_list (line 712) | struct commit_list
  type commit (line 712) | struct commit
  type commit (line 714) | struct commit
  type commit_list (line 717) | struct commit_list
  type commit (line 718) | struct commit
  type commit_list (line 719) | struct commit_list
  type commit_list (line 777) | struct commit_list
  type commit (line 777) | struct commit
  type commit (line 777) | struct commit
  function is_descendant_of (line 783) | int is_descendant_of(struct commit *commit, struct commit_list *with_com...
  function in_merge_bases (line 798) | int in_merge_bases(struct commit *commit, struct commit **reference, int...
  type commit_list (line 818) | struct commit_list
  type commit_list (line 818) | struct commit_list
  type commit_list (line 820) | struct commit_list
  type commit_list (line 821) | struct commit_list
  type commit (line 822) | struct commit
  type commit_list (line 835) | struct commit_list
  function do_sign_commit (line 873) | static int do_sign_commit(struct strbuf *buf, const char *keyid)
  function parse_signed_commit (line 906) | int parse_signed_commit(const unsigned char *sha1,
  function handle_signed_tag (line 950) | static void handle_signed_tag(struct commit *parent, struct commit_extra...
  function append_merge_tag_headers (line 990) | void append_merge_tag_headers(struct commit_list *parents,
  function add_extra_header (line 1000) | static void add_extra_header(struct strbuf *buffer,
  type commit_extra_header (line 1010) | struct commit_extra_header
  type commit (line 1010) | struct commit
  type commit_extra_header (line 1013) | struct commit_extra_header
  type object_type (line 1015) | enum object_type
  function standard_header_field (line 1023) | static inline int standard_header_field(const char *field, size_t len)
  function excluded_header_field (line 1032) | static int excluded_header_field(const char *field, size_t len, const ch...
  type commit_extra_header (line 1047) | struct commit_extra_header
  type commit_extra_header (line 1050) | struct commit_extra_header
  type strbuf (line 1052) | struct strbuf
  function free_commit_extra_headers (line 1090) | void free_commit_extra_headers(struct commit_extra_header *extra)
  function commit_tree (line 1101) | int commit_tree(const struct strbuf *msg, unsigned char *tree,
  function commit_tree_extended (line 1120) | int commit_tree_extended(const struct strbuf *msg, unsigned char *tree,
  type commit (line 1184) | struct commit
  type object (line 1186) | struct object
  type commit (line 1187) | struct commit
  type commit (line 1192) | struct commit
  type merge_remote_desc (line 1194) | struct merge_remote_desc
  type commit_list (line 1220) | struct commit_list
  type commit (line 1220) | struct commit
  type commit_list (line 1221) | struct commit_list
  type commit_list (line 1223) | struct commit_list
  type commit_list (line 1223) | struct commit_list

FILE: src/test/resources/samples/langs/C/commit.h
  type commit_list (line 9) | struct commit_list {
  type commit (line 14) | struct commit {
  type decoration (line 28) | struct decoration
  type name_decoration (line 29) | struct name_decoration {
  type commit (line 35) | struct commit
  type commit (line 36) | struct commit
  type commit (line 37) | struct commit
  type commit (line 39) | struct commit
  type commit (line 46) | struct commit
  type commit (line 48) | struct commit
  type commit (line 49) | struct commit
  type commit_list (line 54) | struct commit_list
  type commit (line 54) | struct commit
  type commit_list (line 55) | struct commit_list
  type commit_list (line 56) | struct commit_list
  type commit (line 56) | struct commit
  type commit_list (line 57) | struct commit_list
  type commit_list (line 58) | struct commit_list
  type commit_list (line 59) | struct commit_list
  type commit (line 59) | struct commit
  type commit_list (line 60) | struct commit_list
  type commit_list (line 61) | struct commit_list
  type commit_list (line 63) | struct commit_list
  type cmit_fmt (line 66) | enum cmit_fmt {
  type pretty_print_context (line 80) | struct pretty_print_context {
  type userformat_want (line 94) | struct userformat_want {
  type rev_info (line 99) | struct rev_info
  type commit (line 100) | struct commit
  type commit (line 102) | struct commit
  type rev_info (line 104) | struct rev_info
  type strbuf (line 105) | struct strbuf
  type userformat_want (line 107) | struct userformat_want
  type commit (line 108) | struct commit
  type strbuf (line 109) | struct strbuf
  type pretty_print_context (line 110) | struct pretty_print_context
  type pretty_print_context (line 111) | struct pretty_print_context
  type commit (line 112) | struct commit
  type strbuf (line 113) | struct strbuf
  type cmit_fmt (line 114) | enum cmit_fmt
  type commit (line 114) | struct commit
  type strbuf (line 115) | struct strbuf
  type pretty_print_context (line 116) | struct pretty_print_context
  type strbuf (line 117) | struct strbuf
  type pretty_print_context (line 119) | struct pretty_print_context
  type strbuf (line 121) | struct strbuf
  type pretty_print_context (line 124) | struct pretty_print_context
  type strbuf (line 126) | struct strbuf
  type commit (line 133) | struct commit
  type commit_list (line 133) | struct commit_list
  type commit (line 136) | struct commit
  type commit_list (line 136) | struct commit_list
  type commit (line 138) | struct commit
  type object_array (line 139) | struct object_array
  type commit_list (line 149) | struct commit_list
  type commit_graft (line 151) | struct commit_graft {
  type commit_graft (line 156) | struct commit_graft
  type commit_graft (line 158) | struct commit_graft
  type commit_graft (line 159) | struct commit_graft
  type commit_graft (line 160) | struct commit_graft
  type commit_list (line 162) | struct commit_list
  type commit (line 162) | struct commit
  type commit (line 162) | struct commit
  type commit_list (line 163) | struct commit_list
  type commit (line 163) | struct commit
  type commit (line 163) | struct commit
  type commit_list (line 164) | struct commit_list
  type commit_list (line 164) | struct commit_list
  type commit_list (line 170) | struct commit_list
  type object_array (line 170) | struct object_array
  type commit (line 173) | struct commit
  type commit_list (line 173) | struct commit_list
  type commit (line 174) | struct commit
  type commit (line 174) | struct commit
  function single_parent (line 180) | static inline int single_parent(struct commit *commit)
  type commit_list (line 185) | struct commit_list
  type commit_list (line 185) | struct commit_list
  type commit_extra_header (line 187) | struct commit_extra_header {
  type commit_list (line 194) | struct commit_list
  type commit_extra_header (line 195) | struct commit_extra_header
  type strbuf (line 197) | struct strbuf
  type commit_list (line 198) | struct commit_list
  type strbuf (line 201) | struct strbuf
  type commit_list (line 202) | struct commit_list
  type commit_extra_header (line 204) | struct commit_extra_header
  type commit_extra_header (line 206) | struct commit_extra_header
  type commit (line 206) | struct commit
  type commit_extra_header (line 207) | struct commit_extra_header
  type commit_extra_header (line 209) | struct commit_extra_header
  type merge_remote_desc (line 211) | struct merge_remote_desc {
  type commit (line 222) | struct commit
  type strbuf (line 225) | struct strbuf
  type strbuf (line 225) | struct strbuf

FILE: src/test/resources/samples/langs/C/cpuid.h
  function do_cpuid (line 6) | static inline void do_cpuid(dword_t *eax, dword_t *ebx, dword_t *ecx, dw...

FILE: src/test/resources/samples/langs/C/custom_extensions.c
  function SSL_CUSTOM_EXTENSION_free (line 28) | void SSL_CUSTOM_EXTENSION_free(SSL_CUSTOM_EXTENSION *custom_extension) {
  function SSL_CUSTOM_EXTENSION (line 32) | static const SSL_CUSTOM_EXTENSION *custom_ext_find(
  function default_add_callback (line 52) | static int default_add_callback(SSL *ssl, unsigned extension_value,
  function custom_ext_add_hello (line 62) | static int custom_ext_add_hello(SSL *ssl, CBB *extensions) {
  function custom_ext_add_clienthello (line 126) | int custom_ext_add_clienthello(SSL *ssl, CBB *extensions) {
  function custom_ext_parse_serverhello (line 130) | int custom_ext_parse_serverhello(SSL *ssl, int *out_alert, uint16_t value,
  function custom_ext_parse_clienthello (line 157) | int custom_ext_parse_clienthello(SSL *ssl, int *out_alert, uint16_t value,
  function custom_ext_add_serverhello (line 181) | int custom_ext_add_serverhello(SSL *ssl, CBB *extensions) {
  function custom_ext_append (line 191) | static int custom_ext_append(STACK_OF(SSL_CUSTOM_EXTENSION) **stack,
  function SSL_CTX_add_client_custom_ext (line 239) | int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned extension_value,
  function SSL_CTX_add_server_custom_ext (line 249) | int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned extension_value,

FILE: src/test/resources/samples/langs/C/driver.h
  type console_modifiers_t (line 29) | typedef struct {
  type console_read_t (line 38) | typedef struct {
  type console_driver_t (line 43) | typedef struct {

FILE: src/test/resources/samples/langs/C/elf.h
  type elf_ident_t (line 35) | typedef struct {
  type elf_program_t (line 41) | typedef struct {
  type elf_t (line 52) | typedef struct {

FILE: src/test/resources/samples/langs/C/exception.zep.c
  function ZEPHIR_INIT_CLASS (line 22) | ZEPHIR_INIT_CLASS(Test_Router_Exception) {

FILE: src/test/resources/samples/langs/C/filter.h
  type console_filter (line 25) | struct console_filter {
  type console_filter_t (line 44) | typedef struct console_filter console_filter_t;

FILE: src/test/resources/samples/langs/C/fudge_node.c
  type system_node (line 29) | struct system_node
  type system_node (line 30) | struct system_node
  function read (line 32) | static unsigned int read(struct pipe_end *endself, struct pipe_end *endt...
  function write (line 51) | static unsigned int write(struct pipe_end *endself, struct pipe_end *end...
  function end0_read (line 70) | static unsigned int end0_read(struct system_node *self, struct service_s...
  function end0_write (line 79) | static unsigned int end0_write(struct system_node *self, struct service_...
  function end1_read (line 88) | static unsigned int end1_read(struct system_node *self, struct service_s...
  function end1_write (line 97) | static unsigned int end1_write(struct system_node *self, struct service_...
  function clone_child (line 106) | static unsigned int clone_child(struct system_node *self, unsigned int c...
  function pipe_init (line 131) | void pipe_init(struct pipe *pipe)
  function pipe_register (line 150) | void pipe_register(struct pipe *pipe)
  function pipe_unregister (line 157) | void pipe_unregister(struct pipe *pipe)
  function module_init (line 164) | void module_init(void)
  function module_register (line 176) | void module_register(void)
  function module_unregister (line 183) | void module_unregister(void)

FILE: src/test/resources/samples/langs/C/git.c
  type startup_info (line 18) | struct startup_info
  type pager_config (line 20) | struct pager_config {
  function pager_command_config (line 26) | static int pager_command_config(const char *var, const char *value, void...
  function check_pager_config (line 42) | int check_pager_config(const char *cmd)
  function commit_pager_choice (line 54) | static void commit_pager_choice(void) {
  function handle_options (line 67) | static int handle_options(const char ***argv, int *argc, int *envchanged)
  function handle_alias (line 182) | static int handle_alias(int *argcp, const char ***argv)
  type cmd_struct (line 270) | struct cmd_struct {
  function run_builtin (line 276) | static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
  function handle_internal_command (line 329) | static void handle_internal_command(int argc, const char **argv)
  function execv_dashed_external (line 472) | static void execv_dashed_external(const char **argv)
  function run_argv (line 508) | static int run_argv(int *argcp, const char ***argv)
  function main (line 532) | int main(int argc, const char **argv)

FILE: src/test/resources/samples/langs/C/hello.c
  function main (line 3) | int main()

FILE: src/test/resources/samples/langs/C/http_parser.c
  type state (line 230) | enum state
  type header_states (line 314) | enum header_states
  function parse_url_char (line 404) | static enum state
  function http_parser_execute (line 586) | size_t http_parser_execute (http_parser *parser,
  function http_message_needs_eof (line 1870) | int
  function http_should_keep_alive (line 1893) | int
  type http_method (line 1912) | enum http_method
  function http_parser_init (line 1918) | void
  type http_errno (line 1930) | enum http_errno
  type http_errno (line 1936) | enum http_errno
  function http_parser_parse_url (line 1941) | int
  function http_parser_pause (line 2047) | void

FILE: src/test/resources/samples/langs/C/http_parser.h
  type __int8 (line 32) | typedef __int8 int8_t;
  type __int16 (line 34) | typedef __int16 int16_t;
  type __int32 (line 36) | typedef __int32 int32_t;
  type __int64 (line 38) | typedef __int64 int64_t;
  type http_parser (line 66) | typedef struct http_parser http_parser;
  type http_parser_settings (line 67) | typedef struct http_parser_settings http_parser_settings;
  type http_method (line 121) | enum http_method
  type http_parser_type (line 129) | enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }
  type flags (line 133) | enum flags
  type http_errno (line 190) | enum http_errno {
  type http_parser (line 207) | struct http_parser {
  type http_parser_settings (line 241) | struct http_parser_settings {
  type http_parser_url_fields (line 252) | enum http_parser_url_fields
  type http_parser_url (line 270) | struct http_parser_url {
  type http_parser_type (line 281) | enum http_parser_type
  type http_method (line 299) | enum http_method
  type http_errno (line 302) | enum http_errno
  type http_errno (line 305) | enum http_errno
  type http_parser_url (line 310) | struct http_parser_url

FILE: src/test/resources/samples/langs/C/info.h
  type console_info_t (line 24) | typedef struct {

FILE: src/test/resources/samples/langs/C/interface.h
  type console_t (line 26) | typedef struct {

FILE: src/test/resources/samples/langs/C/ip4.h
  type ip4_addr_t (line 26) | typedef uint32_t ip4_addr_t;
  type ip4_header_t (line 28) | typedef struct {
  type ip4_icmp_header_t (line 42) | typedef struct {

FILE: src/test/resources/samples/langs/C/main.c
  function namespace (line 17) | namespace v8 {

FILE: src/test/resources/samples/langs/C/markdown.c
  type link_ref (line 49) | struct link_ref {
  type sd_markdown (line 62) | struct sd_markdown
  type buf (line 64) | struct buf
  type sd_markdown (line 64) | struct sd_markdown
  type buf (line 66) | struct buf
  type sd_markdown (line 66) | struct sd_markdown
  type buf (line 67) | struct buf
  type sd_markdown (line 67) | struct sd_markdown
  type buf (line 68) | struct buf
  type sd_markdown (line 68) | struct sd_markdown
  type buf (line 69) | struct buf
  type sd_markdown (line 69) | struct sd_markdown
  type buf (line 70) | struct buf
  type sd_markdown (line 70) | struct sd_markdown
  type buf (line 71) | struct buf
  type sd_markdown (line 71) | struct sd_markdown
  type buf (line 72) | struct buf
  type sd_markdown (line 72) | struct sd_markdown
  type buf (line 73) | struct buf
  type sd_markdown (line 73) | struct sd_markdown
  type buf (line 74) | struct buf
  type sd_markdown (line 74) | struct sd_markdown
  type buf (line 75) | struct buf
  type sd_markdown (line 75) | struct sd_markdown
  type buf (line 76) | struct buf
  type sd_markdown (line 76) | struct sd_markdown
  type markdown_char_t (line 78) | enum markdown_char_t {
  type sd_markdown (line 109) | struct sd_markdown {
  type buf (line 125) | struct buf
  type sd_markdown (line 126) | struct sd_markdown
  type buf (line 129) | struct buf
  type stack (line 130) | struct stack
  function rndr_popbuf (line 144) | static inline void
  function unscape_text (line 150) | static void
  function hash_link_ref (line 170) | static unsigned int
  type link_ref (line 182) | struct link_ref
  type link_ref (line 184) | struct link_ref
  type link_ref (line 187) | struct link_ref
  type link_ref (line 187) | struct link_ref
  type link_ref (line 199) | struct link_ref
  type link_ref (line 200) | struct link_ref
  type link_ref (line 203) | struct link_ref
  function free_link_refs (line 217) | static void
  function _isspace (line 247) | static inline int
  function is_mail_autolink (line 259) | static size_t
  function tag_length (line 290) | static size_t
  function parse_inline (line 352) | static void
  function find_emph_char (line 391) | static size_t
  function parse_emph1 (line 483) | static size_t
  function parse_emph2 (line 520) | static size_t
  function parse_emph3 (line 552) | static size_t
  function char_emphasis (line 593) | static size_t
  function char_linebreak (line 627) | static size_t
  function char_codespan (line 642) | static size_t
  function char_escape (line 685) | static size_t
  function char_entity (line 710) | static size_t
  function char_langle_tag (line 738) | static size_t
  function char_autolink_www (line 763) | static size_t
  function char_autolink_email (line 795) | static size_t
  function char_autolink_url (line 815) | static size_t
  function char_link (line 836) | static size_t
  function char_superscript (line 1071) | static size_t
  function is_empty (line 1114) | static size_t
  function is_hrule (line 1127) | static int
  function prefix_codefence (line 1159) | static size_t
  function is_codefence (line 1189) | static size_t
  function is_atxheader (line 1246) | static int
  function is_headerline (line 1266) | static int
  function is_next_headerline (line 1286) | static int
  function prefix_quote (line 1301) | static size_t
  function prefix_code (line 1320) | static size_t
  function prefix_oli (line 1330) | static size_t
  function prefix_uli (line 1355) | static size_t
  type buf (line 1377) | struct buf
  type sd_markdown (line 1377) | struct sd_markdown
  function parse_blockquote (line 1382) | static size_t
  type buf (line 1424) | struct buf
  type sd_markdown (line 1424) | struct sd_markdown
  function parse_paragraph (line 1427) | static size_t
  function parse_fencedcode (line 1536) | static size_t
  function parse_blockcode (line 1580) | static size_t
  function parse_listitem (line 1623) | static size_t
  function parse_list (line 1760) | static size_t
  function parse_atxheader (line 1783) | static size_t
  function htmlblock_end_tag (line 1820) | static size_t
  function htmlblock_end (line 1850) | static size_t
  function parse_htmlblock (line 1893) | static size_t
  function parse_table_row (line 1977) | static void
  function parse_table_header (line 2034) | static size_t
  function parse_table (line 2123) | static size_t
  function parse_block (line 2182) | static void
  function is_ref (line 2249) | static int
  function expand_tabs (line 2362) | static void expand_tabs(struct buf *ob, const uint8_t *line, size_t size)
  type sd_markdown (line 2391) | struct sd_markdown
  type sd_callbacks (line 2395) | struct sd_callbacks
  type sd_markdown (line 2398) | struct sd_markdown
  type sd_markdown (line 2402) | struct sd_markdown
  type sd_callbacks (line 2406) | struct sd_callbacks
  function sd_markdown_render (line 2451) | void
  function sd_markdown_free (line 2526) | void
  function sd_version (line 2543) | void

FILE: src/test/resources/samples/langs/C/multiboot.h
  type multiboot_aoutSymbolTable_t (line 38) | typedef struct
  type multiboot_elfSectionHeaderTable_t (line 47) | typedef struct
  type multiboot_memoryMap_t (line 55) | typedef struct
  type multiboot_module_t (line 63) | typedef struct
  type multiboot_info_t (line 71) | typedef struct

FILE: src/test/resources/samples/langs/C/pqiv.h
  type file_type_handler_t (line 39) | typedef struct file_type_handler_struct_t file_type_handler_t;
  type file_t (line 40) | typedef struct {
  type load_images_state_t (line 86) | typedef enum { PARAMETER, RECURSION, INOTIFY, BROWSE_ORIGINAL_PARAMETER,...
  type BOSNode (line 93) | typedef BOSNode *(*file_type_alloc_fn_t)(load_images_state_t state, file...
  type file_type_handler_struct_t (line 116) | struct file_type_handler_struct_t {

FILE: src/test/resources/samples/langs/C/process.c
  function uv__chld (line 45) | static void uv__chld(EV_P_ ev_child* watcher, int revents) {
  function uv__make_socketpair (line 70) | int uv__make_socketpair(int fds[2], int flags) {
  function uv__make_pipe (line 107) | int uv__make_pipe(int fds[2], int flags) {
  function uv__process_init_stdio (line 142) | static int uv__process_init_stdio(uv_stdio_container_t* container, int f...
  function uv__process_stdio_flags (line 181) | static int uv__process_stdio_flags(uv_stdio_container_t* container,
  function uv__process_open_stream (line 194) | static int uv__process_open_stream(uv_stdio_container_t* container, int ...
  function uv__process_close_stream (line 215) | static void uv__process_close_stream(uv_stdio_container_t* container) {
  function uv__process_child_init (line 222) | static void uv__process_child_init(uv_process_options_t options,
  function uv_spawn (line 287) | int uv_spawn(uv_loop_t* loop, uv_process_t* process,
  function uv_process_kill (line 436) | int uv_process_kill(uv_process_t* process, int signum) {
  function uv_err_t (line 448) | uv_err_t uv_kill(int pid, int signum) {
  function uv__process_close (line 459) | void uv__process_close(uv_process_t* handle) {

FILE: src/test/resources/samples/langs/C/rdiscount.c
  function VALUE (line 7) | static VALUE
  function VALUE (line 42) | static VALUE
  function rb_rdiscount__get_flags (line 72) | int rb_rdiscount__get_flags(VALUE ruby_obj)
  function Init_rdiscount (line 122) | void Init_rdiscount()

FILE: src/test/resources/samples/langs/C/redis.c
  type sharedObjectsStruct (line 55) | struct sharedObjectsStruct
  type redisServer (line 66) | struct redisServer
  type redisCommand (line 67) | struct redisCommand
  type redisCommand (line 110) | struct redisCommand
  function redisLogRaw (line 256) | void redisLogRaw(int level, const char *msg) {
  function redisLog (line 290) | void redisLog(int level, const char *fmt, ...) {
  function redisLogFromHandler (line 309) | void redisLogFromHandler(int level, const char *msg) {
  function oom (line 337) | void oom(const char *msg) {
  function ustime (line 344) | long long ustime(void) {
  function mstime (line 355) | long long mstime(void) {
  function exitFromChild (line 363) | void exitFromChild(int retcode) {
  function dictVanillaFree (line 377) | void dictVanillaFree(void *privdata, void *val)
  function dictListDestructor (line 383) | void dictListDestructor(void *privdata, void *val)
  function dictSdsKeyCompare (line 389) | int dictSdsKeyCompare(void *privdata, const void *key1,
  function dictSdsKeyCaseCompare (line 402) | int dictSdsKeyCaseCompare(void *privdata, const void *key1,
  function dictRedisObjectDestructor (line 410) | void dictRedisObjectDestructor(void *privdata, void *val)
  function dictSdsDestructor (line 418) | void dictSdsDestructor(void *privdata, void *val)
  function dictObjKeyCompare (line 425) | int dictObjKeyCompare(void *privdata, const void *key1,
  function dictObjHash (line 432) | unsigned int dictObjHash(const void *key) {
  function dictSdsHash (line 437) | unsigned int dictSdsHash(const void *key) {
  function dictSdsCaseHash (line 441) | unsigned int dictSdsCaseHash(const void *key) {
  function dictEncObjKeyCompare (line 445) | int dictEncObjKeyCompare(void *privdata, const void *key1,
  function dictEncObjHash (line 463) | unsigned int dictEncObjHash(const void *key) {
  function htNeedsResize (line 569) | int htNeedsResize(dict *dict) {
  function tryResizeHashTables (line 580) | void tryResizeHashTables(void) {
  function incrementallyRehash (line 595) | void incrementallyRehash(void) {
  function updateDictResizePolicy (line 618) | void updateDictResizePolicy(void) {
  function activeExpireCycle (line 631) | void activeExpireCycle(void) {
  function updateLRUClock (line 691) | void updateLRUClock(void) {
  function trackOperationsPerSecond (line 698) | void trackOperationsPerSecond(void) {
  function getOperationsPerSecond (line 712) | long long getOperationsPerSecond(void) {
  function clientsCronHandleTimeout (line 722) | int clientsCronHandleTimeout(redisClient *c) {
  function clientsCronResizeQueryBuffer (line 749) | int clientsCronResizeQueryBuffer(redisClient *c) {
  function clientsCron (line 771) | void clientsCron(void) {
  function serverCron (line 824) | int serverCron(struct aeEventLoop *eventLoop, long long id, void *client...
  function beforeSleep (line 990) | void beforeSleep(struct aeEventLoop *eventLoop) {
  function createSharedObjects (line 1017) | void createSharedObjects(void) {
  function initServerConfig (line 1085) | void initServerConfig() {
  function adjustOpenFilesLimit (line 1212) | void adjustOpenFilesLimit(void) {
  function initServer (line 1248) | void initServer() {
  function populateCommandTable (line 1363) | void populateCommandTable(void) {
  function resetCommandTableStats (line 1393) | void resetCommandTableStats(void) {
  function redisOpArrayInit (line 1407) | void redisOpArrayInit(redisOpArray *oa) {
  function redisOpArrayAppend (line 1412) | int redisOpArrayAppend(redisOpArray *oa, struct redisCommand *cmd, int d...
  function redisOpArrayFree (line 1428) | void redisOpArrayFree(redisOpArray *oa) {
  type redisCommand (line 1444) | struct redisCommand
  type redisCommand (line 1448) | struct redisCommand
  type redisCommand (line 1449) | struct redisCommand
  function propagate (line 1465) | void propagate(struct redisCommand *cmd, int dbid, robj **argv, int argc,
  function alsoPropagate (line 1476) | void alsoPropagate(struct redisCommand *cmd, int dbid, robj **argv, int ...
  function call (line 1483) | void call(redisClient *c, int flags) {
  function processCommand (line 1546) | int processCommand(redisClient *c) {
  function prepareForShutdown (line 1689) | int prepareForShutdown(int flags) {
  function authCommand (line 1745) | void authCommand(redisClient *c) {
  function pingCommand (line 1757) | void pingCommand(redisClient *c) {
  function echoCommand (line 1761) | void echoCommand(redisClient *c) {
  function timeCommand (line 1765) | void timeCommand(redisClient *c) {
  function bytesToHuman (line 1778) | void bytesToHuman(char *s, unsigned long long n) {
  function sds (line 1800) | sds genRedisInfoString(char *section) {
  function infoCommand (line 2144) | void infoCommand(redisClient *c) {
  function monitorCommand (line 2158) | void monitorCommand(redisClient *c) {
  function freeMemoryIfNeeded (line 2185) | int freeMemoryIfNeeded(void) {
  function linuxOvercommitMemoryValue (line 2329) | int linuxOvercommitMemoryValue(void) {
  function linuxOvercommitMemoryWarning (line 2343) | void linuxOvercommitMemoryWarning(void) {
  function createPidFile (line 2350) | void createPidFile(void) {
  function daemonize (line 2359) | void daemonize(void) {
  function version (line 2376) | void version() {
  function usage (line 2386) | void usage() {
  function redisAsciiArt (line 2401) | void redisAsciiArt(void) {
  function sigtermHandler (line 2418) | static void sigtermHandler(int sig) {
  function setupSignalHandlers (line 2425) | void setupSignalHandlers(void) {
  function main (line 2449) | int main(int argc, char **argv) {

FILE: src/test/resources/samples/langs/C/rf_io.c
  function rfFReadLine_UTF8 (line 32) | int32_t rfFReadLine_UTF8(FILE* f,char** utf8,uint32_t* byteLength,uint32...
  function rfFReadLine_UTF16LE (line 126) | int32_t rfFReadLine_UTF16LE(FILE* f,char** utf8,uint32_t* byteLength,cha...
  function rfFReadLine_UTF16BE (line 215) | int32_t rfFReadLine_UTF16BE(FILE* f,char** utf8,uint32_t* byteLength,cha...
  function rfFReadLine_UTF32BE (line 302) | int32_t rfFReadLine_UTF32BE(FILE* f,char** utf8,uint32_t* byteLength,cha...
  function rfFReadLine_UTF32LE (line 377) | int32_t rfFReadLine_UTF32LE(FILE* f,char** utf8,uint32_t* byteLength,cha...
  function rfFgets_UTF32BE (line 453) | int32_t rfFgets_UTF32BE(char* buff,uint32_t num,FILE* f,char* eofReached)
  function rfFgets_UTF32LE (line 501) | int32_t rfFgets_UTF32LE(char* buff,uint32_t num,FILE* f,char* eofReached)
  function rfFgets_UTF16BE (line 549) | int32_t rfFgets_UTF16BE(char* buff,uint32_t num,FILE* f,char* eofReached)
  function rfFgets_UTF16LE (line 597) | int32_t rfFgets_UTF16LE(char* buff,uint32_t num,FILE* f,char* eofReached)
  function rfFgets_UTF8 (line 647) | int32_t rfFgets_UTF8(char* buff,uint32_t num,FILE* f,char* eofReached)
  function rfFgetc_UTF8 (line 695) | int32_t rfFgetc_UTF8(FILE* f,uint32_t *ret,char cp)
  function rfFgetc_UTF16BE (line 882) | int32_t rfFgetc_UTF16BE(FILE* f,uint32_t *c,char cp)
  function rfFgetc_UTF16LE (line 941) | int32_t rfFgetc_UTF16LE(FILE* f,uint32_t *c,char cp)
  function rfFgetc_UTF32LE (line 1000) | int32_t rfFgetc_UTF32LE(FILE* f,uint32_t *c)
  function rfFgetc_UTF32BE (line 1015) | int32_t rfFgetc_UTF32BE(FILE* f,uint32_t *c)
  function rfFback_UTF32BE (line 1031) | int32_t rfFback_UTF32BE(FILE* f,uint32_t *c)
  function rfFback_UTF32LE (line 1052) | int32_t rfFback_UTF32LE(FILE* f,uint32_t *c)
  function rfFback_UTF16BE (line 1073) | int32_t rfFback_UTF16BE(FILE* f,uint32_t *c)
  function rfFback_UTF16LE (line 1140) | int32_t rfFback_UTF16LE(FILE* f,uint32_t *c)
  function rfFback_UTF8 (line 1207) | int32_t rfFback_UTF8(FILE* f,uint32_t *c)

FILE: src/test/resources/samples/langs/C/rf_io.h
  type __int64 (line 45) | typedef __int64 foff_rft;
  type off64_t (line 48) | typedef off64_t foff_rft;

FILE: src/test/resources/samples/langs/C/rfc_string.c
  function RF_String (line 43) | RF_String* i_rfString_Create(const char* s,...)
  function RF_String (line 71) | RF_String* i_NVrfString_Create(const char* s)
  function RF_String (line 96) | RF_String* i_rfString_CreateLocal1(const char* s,...)
  function RF_String (line 218) | RF_String* i_NVrfString_CreateLocal(const char* s)
  function i_rfString_Init (line 342) | char i_rfString_Init(RF_String* str,const char* s,...)
  function i_NVrfString_Init (line 367) | char i_NVrfString_Init(RF_String* str,const char* s)
  function RF_String (line 389) | RF_String* rfString_Create_cp(uint32_t codepoint)
  function rfString_Init_cp (line 403) | char rfString_Init_cp(RF_String* str, uint32_t codepoint)
  function RF_String (line 463) | RF_String* rfString_Create_i(int32_t i)
  function rfString_Init_i (line 481) | char rfString_Init_i(RF_String* str, int32_t i)
  function RF_String (line 499) | RF_String* rfString_Create_f(float f)
  function rfString_Init_f (line 519) | char rfString_Init_f(RF_String* str,float f)
  function RF_String (line 538) | RF_String* rfString_Create_UTF16(const char* s,char endianess)
  function rfString_Init_UTF16 (line 550) | char rfString_Init_UTF16(RF_String* str,const char* s,char endianess)
  function RF_String (line 608) | RF_String* rfString_Create_UTF32(const char* s)
  function rfString_Init_UTF32 (line 620) | char rfString_Init_UTF32(RF_String* str,const char* s)
  function i_rfString_Assign (line 677) | void i_rfString_Assign(RF_String* dest,void* sourceP)
  function rfString_Assign_char (line 692) | char rfString_Assign_char(RF_String* str,uint32_t codepoint)
  function RF_String (line 755) | RF_String* i_rfString_Create_nc(const char* s,...)
  function RF_String (line 773) | RF_String* i_NVrfString_Create_nc(const char* s)
  type RF_String (line 789) | struct RF_String
  function i_rfString_Init_nc (line 791) | char i_rfString_Init_nc(struct RF_String* str,const char* s,...)
  function i_NVrfString_Init_nc (line 807) | char i_NVrfString_Init_nc(struct RF_String* str,const char* s)
  function rfString_Destroy (line 822) | void rfString_Destroy(RF_String* s)
  function rfString_Deinit (line 828) | void rfString_Deinit(RF_String* s)
  function rfString_Length (line 853) | uint32_t rfString_Length(void* str)
  function rfString_GetChar (line 863) | uint32_t rfString_GetChar(void* str,uint32_t c)
  function rfString_BytePosToCodePoint (line 883) | uint32_t rfString_BytePosToCodePoint(void* str,uint32_t i)
  function rfString_BytePosToCharPos (line 935) | uint32_t rfString_BytePosToCharPos(void* thisstrP,uint32_t bytepos,char ...
  function i_rfString_Equal (line 965) | char i_rfString_Equal(void* s1P,void* s2P)
  function i_rfString_Find (line 977) | int32_t i_rfString_Find(const void* str,const void* sstrP,const char* op...
  function rfString_ToInt (line 1112) | char rfString_ToInt(void* str,int32_t* v)
  function rfString_ToDouble (line 1133) | int rfString_ToDouble(void* thisstrP,double* f)
  function RF_String (line 1165) | RF_String* rfString_Copy_OUT(void* srcP)
  function rfString_Copy_IN (line 1180) | void rfString_Copy_IN(RF_String* dst,void* srcP)
  function rfString_Copy_chars (line 1192) | void rfString_Copy_chars(RF_String* dst,void* srcP,uint32_t charsN)
  function i_rfString_ScanfAfter (line 1210) | char i_rfString_ScanfAfter(void* str,void* afterstrP,const char* format,...
  function i_rfString_Count (line 1232) | int32_t i_rfString_Count(void* str,void* sstr2,const char* optionsP)
  function i_DECLIMEX_ (line 1261) | i_DECLIMEX_ char rfString_Tokenize(void* str,char* sep,uint32_t* tokensN...
  function i_rfString_Between (line 1304) | char i_rfString_Between(void* thisstrP,void* lstrP,void* rstrP,RF_String...
  function i_rfString_Beforev (line 1339) | char i_rfString_Beforev(void* thisstrP,RF_String* result,const char* opt...
  function i_rfString_Before (line 1379) | char i_rfString_Before(void* thisstrP,void* sstrP,RF_String* result,cons...
  function i_rfString_After (line 1401) | char i_rfString_After(void* thisstrP,void* afterP,RF_String* out,const c...
  function i_rfString_Afterv (line 1423) | char i_rfString_Afterv(void* thisstrP,RF_String* result,const char* opti...
  function i_rfString_Append (line 1470) | void i_rfString_Append(RF_String* thisstr,void* otherP)
  function rfString_Append_i (line 1484) | void rfString_Append_i(RF_String* thisstr,const int32_t i)
  function rfString_Append_f (line 1498) | void rfString_Append_f(RF_String* thisstr,const float f)
  function i_rfString_Prepend (line 1513) | void i_rfString_Prepend(RF_String* thisstr,void* otherP)
  function i_rfString_Remove (line 1532) | char i_rfString_Remove(void* thisstrP,void* rstrP,uint32_t* numberP,cons...
  function i_rfString_KeepOnly (line 1576) | void i_rfString_KeepOnly(void* thisstrP,void* keepstrP)
  function rfString_PruneStart (line 1616) | char rfString_PruneStart(void* thisstrP,uint32_t n)
  function rfString_PruneEnd (line 1654) | char rfString_PruneEnd(void* thisstrP,uint32_t n)
  function rfString_PruneMiddleB (line 1686) | char rfString_PruneMiddleB(void* thisstrP,uint32_t p,uint32_t n)
  function rfString_PruneMiddleF (line 1728) | char rfString_PruneMiddleF(void* thisstrP,uint32_t p,uint32_t n)
  function i_rfString_Replace (line 1772) | char i_rfString_Replace(RF_String* thisstr,void* sstrP,void* rstrP,const...
  function i_rfString_StripStart (line 1882) | char i_rfString_StripStart(void* thisstrP,void* subP)
  function i_rfString_StripEnd (line 1931) | char i_rfString_StripEnd(void* thisstrP,void* subP)
  function i_rfString_Strip (line 1981) | char i_rfString_Strip(void* thisstrP,void* subP)
  function RF_String (line 1992) | RF_String* rfString_Create_fUTF8(FILE* f, char* eof)
  function rfString_Init_fUTF8 (line 2004) | int32_t rfString_Init_fUTF8(RF_String* str,FILE* f,char* eof)
  function rfString_Assign_fUTF8 (line 2017) | int32_t rfString_Assign_fUTF8(RF_String* str,FILE*f,char* eof)
  function rfString_Append_fUTF8 (line 2040) | int32_t rfString_Append_fUTF8(RF_String* str,FILE*f,char* eof)
  function RF_String (line 2058) | RF_String* rfString_Create_fUTF16(FILE* f,char endianess,char* eof)
  function rfString_Init_fUTF16 (line 2067) | int32_t rfString_Init_fUTF16(RF_String* str,FILE* f, char endianess,char...
  function rfString_Assign_fUTF16 (line 2092) | int32_t rfString_Assign_fUTF16(RF_String* str,FILE* f, char endianess,ch...
  function rfString_Append_fUTF16 (line 2129) | int32_t rfString_Append_fUTF16(RF_String* str,FILE* f, char endianess,ch...
  function RF_String (line 2158) | RF_String* rfString_Create_fUTF32(FILE* f,char endianess,char* eof)
  function rfString_Init_fUTF32 (line 2170) | int32_t rfString_Init_fUTF32(RF_String* str,FILE* f,char endianess,char*...
  function rfString_Assign_fUTF32 (line 2194) | int32_t rfString_Assign_fUTF32(RF_String* str,FILE* f,char endianess, ch...
  function rfString_Append_fUTF32 (line 2229) | int32_t rfString_Append_fUTF32(RF_String* str,FILE* f,char endianess, ch...
  function i_rfString_Fwrite (line 2260) | int32_t i_rfString_Fwrite(void* sP,FILE* f,char* encodingP)

FILE: src/test/resources/samples/langs/C/rfc_string.h
  type RF_String (line 77) | typedef struct RF_String

FILE: src/test/resources/samples/langs/C/scheduler.h
  type task_t (line 29) | typedef struct task {
  type vmem_context (line 61) | struct vmem_context

FILE: src/test/resources/samples/langs/C/sgd_fast.c
  type Py_ssize_t (line 45) | typedef int Py_ssize_t;
  type Py_buffer (line 73) | typedef struct {
  type Py_hash_t (line 186) | typedef long Py_hash_t;
  type __Pyx_StringTabEntry (line 296) | typedef struct {PyObject **p; char *s; const long n; const char* encodin...
  type __Pyx_StructField_ (line 373) | struct __Pyx_StructField_
  type __Pyx_TypeInfo (line 375) | typedef struct {
  type __Pyx_StructField (line 385) | typedef struct __Pyx_StructField_ {
  type __Pyx_BufFmt_StackElem (line 390) | typedef struct {
  type __Pyx_BufFmt_Context (line 394) | typedef struct {
  type npy_int8 (line 415) | typedef npy_int8 __pyx_t_5numpy_int8_t;
  type npy_int16 (line 424) | typedef npy_int16 __pyx_t_5numpy_int16_t;
  type npy_int32 (line 433) | typedef npy_int32 __pyx_t_5numpy_int32_t;
  type npy_int64 (line 442) | typedef npy_int64 __pyx_t_5numpy_int64_t;
  type npy_uint8 (line 451) | typedef npy_uint8 __pyx_t_5numpy_uint8_t;
  type npy_uint16 (line 460) | typedef npy_uint16 __pyx_t_5numpy_uint16_t;
  type npy_uint32 (line 469) | typedef npy_uint32 __pyx_t_5numpy_uint32_t;
  type npy_uint64 (line 478) | typedef npy_uint64 __pyx_t_5numpy_uint64_t;
  type npy_float32 (line 487) | typedef npy_float32 __pyx_t_5numpy_float32_t;
  type npy_float64 (line 496) | typedef npy_float64 __pyx_t_5numpy_float64_t;
  type npy_long (line 505) | typedef npy_long __pyx_t_5numpy_int_t;
  type npy_longlong (line 514) | typedef npy_longlong __pyx_t_5numpy_long_t;
  type npy_longlong (line 523) | typedef npy_longlong __pyx_t_5numpy_longlong_t;
  type npy_ulong (line 532) | typedef npy_ulong __pyx_t_5numpy_uint_t;
  type npy_ulonglong (line 541) | typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
  type npy_ulonglong (line 550) | typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
  type npy_intp (line 559) | typedef npy_intp __pyx_t_5numpy_intp_t;
  type npy_uintp (line 568) | typedef npy_uintp __pyx_t_5numpy_uintp_t;
  type npy_double (line 577) | typedef npy_double __pyx_t_5numpy_float_t;
  type npy_double (line 586) | typedef npy_double __pyx_t_5numpy_double_t;
  type npy_longdouble (line 595) | typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
  type __pyx_t_5numpy_float64_t (line 604) | typedef __pyx_t_5numpy_float64_t __pyx_t_7sklearn_5utils_13weight_vector...
  type __pyx_t_5numpy_int32_t (line 613) | typedef __pyx_t_5numpy_int32_t __pyx_t_7sklearn_5utils_13weight_vector_I...
  type __pyx_t_5numpy_float64_t (line 622) | typedef __pyx_t_5numpy_float64_t __pyx_t_7sklearn_5utils_11seq_dataset_D...
  type __pyx_t_5numpy_int32_t (line 631) | typedef __pyx_t_5numpy_int32_t __pyx_t_7sklearn_5utils_11seq_dataset_INT...
  type __pyx_t_5numpy_float64_t (line 640) | typedef __pyx_t_5numpy_float64_t __pyx_t_7sklearn_12linear_model_8sgd_fa...
  type __pyx_t_5numpy_int32_t (line 649) | typedef __pyx_t_5numpy_int32_t __pyx_t_7sklearn_12linear_model_8sgd_fast...
  type std (line 652) | typedef ::std::complex< float > __pyx_t_float_complex;
  type __pyx_t_float_complex (line 654) | typedef float _Complex __pyx_t_float_complex;
  type __pyx_t_float_complex (line 657) | typedef struct { float real, imag; } __pyx_t_float_complex;
  type std (line 662) | typedef ::std::complex< double > __pyx_t_double_complex;
  type __pyx_t_double_complex (line 664) | typedef double _Complex __pyx_t_double_complex;
  type __pyx_t_double_complex (line 667) | typedef struct { double real, imag; } __pyx_t_double_complex;
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction (line 672) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression (line 673) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber (line 674) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber
  type __pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset (line 675) | struct __pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 676) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification (line 677) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification
  type __pyx_obj_7sklearn_5utils_11seq_dataset_CSRDataset (line 678) | struct __pyx_obj_7sklearn_5utils_11seq_dataset_CSRDataset
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log (line 679) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge (line 680) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge
  type __pyx_obj_7sklearn_5utils_11seq_dataset_ArrayDataset (line 681) | struct __pyx_obj_7sklearn_5utils_11seq_dataset_ArrayDataset
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 682) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 683) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber
  type __pyx_obj_7sklearn_5utils_13weight_vector_WeightVector (line 684) | struct __pyx_obj_7sklearn_5utils_13weight_vector_WeightVector
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 685) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 686) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensi...
  type npy_cfloat (line 695) | typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
  type npy_cdouble (line 704) | typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
  type npy_clongdouble (line 713) | typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
  type npy_cdouble (line 722) | typedef npy_cdouble __pyx_t_5numpy_complex_t;
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction (line 731) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression (line 744) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber (line 756) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber {
  type __pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset (line 769) | struct __pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 783) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification (line 796) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification {
  type __pyx_obj_7sklearn_5utils_11seq_dataset_CSRDataset (line 808) | struct __pyx_obj_7sklearn_5utils_11seq_dataset_CSRDataset {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log (line 831) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge (line 843) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge {
  type __pyx_obj_7sklearn_5utils_11seq_dataset_ArrayDataset (line 856) | struct __pyx_obj_7sklearn_5utils_11seq_dataset_ArrayDataset {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 878) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 891) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber {
  type __pyx_obj_7sklearn_5utils_13weight_vector_WeightVector (line 903) | struct __pyx_obj_7sklearn_5utils_13weight_vector_WeightVector {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 921) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss {
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 933) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensi...
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction (line 948) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction (line 952) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression (line 963) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression (line 966) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 977) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredLoss {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 980) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredLoss
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification (line 991) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification (line 994) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 1005) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_ModifiedHuber {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 1008) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_ModifiedHuber
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log (line 1019) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log (line 1022) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 1033) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredEpsilon...
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 1036) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredEpsilon...
  type __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_SequentialDataset (line 1047) | struct __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_SequentialDataset {
  type __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_SequentialDataset (line 1051) | struct __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_SequentialDataset
  type __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_ArrayDataset (line 1062) | struct __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_ArrayDataset {
  type __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_ArrayDataset (line 1065) | struct __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_ArrayDataset
  type __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_CSRDataset (line 1076) | struct __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_CSRDataset {
  type __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_CSRDataset (line 1079) | struct __pyx_vtabstruct_7sklearn_5utils_11seq_dataset_CSRDataset
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 1090) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensi...
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 1093) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensi...
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 1104) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 1107) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber (line 1118) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber (line 1121) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge (line 1132) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge {
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge (line 1135) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge
  type __pyx_vtabstruct_7sklearn_5utils_13weight_vector_WeightVector (line 1146) | struct __pyx_vtabstruct_7sklearn_5utils_13weight_vector_WeightVector {
  type __pyx_vtabstruct_7sklearn_5utils_13weight_vector_WeightVector (line 1153) | struct __pyx_vtabstruct_7sklearn_5utils_13weight_vector_WeightVector
  type __Pyx_RefNannyAPIStruct (line 1158) | typedef struct {
  function CYTHON_INLINE (line 1235) | static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyO...
  function CYTHON_INLINE (line 1245) | static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, P...
  function CYTHON_INLINE (line 1265) | static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, ...
  function CYTHON_INLINE (line 1285) | static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssi...
  type __Pyx_Buf_DimInfo (line 1331) | typedef struct {
  type __Pyx_Buffer (line 1334) | typedef struct {
  type __Pyx_LocalBuf_ND (line 1338) | typedef struct {
  type __Pyx_CodeObjectCacheEntry (line 1519) | typedef struct {
  type __Pyx_CodeObjectCache (line 1523) | struct __Pyx_CodeObjectCache {
  type __Pyx_CodeObjectCache (line 1528) | struct __Pyx_CodeObjectCache
  type __pyx_obj_7sklearn_5utils_13weight_vector_WeightVector (line 1591) | struct __pyx_obj_7sklearn_5utils_13weight_vector_WeightVector
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction (line 1601) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction (line 1602) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression (line 1603) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression (line 1604) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification (line 1605) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification (line 1606) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 1607) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 1608) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge (line 1610) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge (line 1611) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge (line 1612) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge (line 1613) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 1614) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 1615) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 1616) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 1617) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log (line 1618) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log (line 1619) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 1621) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 1622) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber (line 1624) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber (line 1625) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber (line 1626) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber (line 1627) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 1628) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 1629) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 1630) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 1631) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 1632) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensi...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 1633) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensi...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 1634) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensi...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 1635) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensi...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction (line 1636) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction
  type __pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset (line 1636) | struct __pyx_obj_7sklearn_5utils_11seq_dataset_SequentialDataset
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_loss (line 1828) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_l...
  function PyObject (line 1901) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFuncti...
  function PyObject (line 1963) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFuncti...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_dloss (line 1999) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12LossFunction_d...
  function PyObject (line 2072) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_12LossFuncti...
  function PyObject (line 2134) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12LossFuncti...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_loss (line 2170) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_los...
  function PyObject (line 2242) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression...
  function PyObject (line 2304) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_dloss (line 2340) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_10Regression_dlo...
  function PyObject (line 2412) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_10Regression...
  function PyObject (line 2474) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_10Regression...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_loss (line 2510) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification...
  function PyObject (line 2582) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_14Classifica...
  function PyObject (line 2644) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classifica...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification_dloss (line 2680) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_14Classification...
  function PyObject (line 2752) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_14Classifica...
  function PyObject (line 2814) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_14Classifica...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_loss (line 2850) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_...
  function PyObject (line 2977) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_13ModifiedHu...
  function PyObject (line 3039) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHu...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_dloss (line 3075) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_13ModifiedHuber_...
  function PyObject (line 3202) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_13ModifiedHu...
  function PyObject (line 3264) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHu...
  function PyObject (line 3293) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_13ModifiedHu...
  function PyObject (line 3310) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_13ModifiedHu...
  function __pyx_pw_7sklearn_12linear_model_8sgd_fast_5Hinge_1__init__ (line 3353) | static int __pyx_pw_7sklearn_12linear_model_8sgd_fast_5Hinge_1__init__(P...
  function __pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge___init__ (line 3414) | static int __pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge___init__(st...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_loss (line 3442) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_loss(stru...
  function PyObject (line 3545) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_5Hinge_3loss...
  function PyObject (line 3607) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_2loss...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_dloss (line 3643) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Hinge_dloss(str...
  function PyObject (line 3746) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_5Hinge_5dlos...
  function PyObject (line 3808) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_4dlos...
  function PyObject (line 3837) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_5Hinge_7__re...
  function PyObject (line 3854) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Hinge_6__re...
  function __pyx_pw_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_1__init__ (line 3906) | static int __pyx_pw_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_1__...
  function __pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge___init__ (line 3967) | static int __pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHinge___i...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_loss (line 3995) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_l...
  function PyObject (line 4098) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_12SquaredHin...
  function PyObject (line 4160) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHin...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_dloss (line 4196) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_12SquaredHinge_d...
  function PyObject (line 4299) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_12SquaredHin...
  function PyObject (line 4361) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHin...
  function PyObject (line 4390) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_12SquaredHin...
  function PyObject (line 4407) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_12SquaredHin...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_loss (line 4466) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_loss(CYTHON...
  function PyObject (line 4592) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_3Log_1loss(P...
  function PyObject (line 4654) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_loss(st...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_dloss (line 4690) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_3Log_dloss(CYTHO...
  function PyObject (line 4816) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_3Log_3dloss(...
  function PyObject (line 4878) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_2dloss(...
  function PyObject (line 4907) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_3Log_5__redu...
  function PyObject (line 4924) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_3Log_4__redu...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_loss (line 4974) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_lo...
  function PyObject (line 5043) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_11SquaredLos...
  function PyObject (line 5105) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLos...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_dloss (line 5141) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_11SquaredLoss_dl...
  function PyObject (line 5210) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_11SquaredLos...
  function PyObject (line 5272) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLos...
  function PyObject (line 5301) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_11SquaredLos...
  function PyObject (line 5318) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_11SquaredLos...
  function __pyx_pw_7sklearn_12linear_model_8sgd_fast_5Huber_1__init__ (line 5361) | static int __pyx_pw_7sklearn_12linear_model_8sgd_fast_5Huber_1__init__(P...
  function __pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber___init__ (line 5414) | static int __pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber___init__(st...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_loss (line 5442) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_loss(stru...
  function PyObject (line 5557) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_5Huber_3loss...
  function PyObject (line 5619) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_2loss...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_dloss (line 5655) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_5Huber_dloss(str...
  function PyObject (line 5792) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_5Huber_5dlos...
  function PyObject (line 5854) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_4dlos...
  function PyObject (line 5883) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_5Huber_7__re...
  function PyObject (line 5900) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_5Huber_6__re...
  function __pyx_pw_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_1__init__ (line 5952) | static int __pyx_pw_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensiti...
  function __pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive___init__ (line 6005) | static int __pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensiti...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_loss (line 6033) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensi...
  function PyObject (line 6117) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_18EpsilonIns...
  function PyObject (line 6179) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonIns...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensitive_dloss (line 6215) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_18EpsilonInsensi...
  function PyObject (line 6332) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_18EpsilonIns...
  function PyObject (line 6394) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonIns...
  function PyObject (line 6423) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_18EpsilonIns...
  function PyObject (line 6440) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_18EpsilonIns...
  function __pyx_pw_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_1__init__ (line 6492) | static int __pyx_pw_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonIn...
  function __pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive___init__ (line 6545) | static int __pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonIn...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_loss (line 6573) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilon...
  function PyObject (line 6657) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_25SquaredEps...
  function PyObject (line 6719) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEps...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilonInsensitive_dloss (line 6755) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_25SquaredEpsilon...
  function PyObject (line 6882) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_25SquaredEps...
  function PyObject (line 6944) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEps...
  function PyObject (line 6973) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_25SquaredEps...
  function PyObject (line 6990) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_25SquaredEps...
  function PyObject (line 7044) | static PyObject *__pyx_pw_7sklearn_12linear_model_8sgd_fast_1plain_sgd(P...
  function PyObject (line 7301) | static PyObject *__pyx_pf_7sklearn_12linear_model_8sgd_fast_plain_sgd(CY...
  function CYTHON_INLINE (line 8520) | static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_8sgd_fast_ma...
  function CYTHON_INLINE (line 8555) | static CYTHON_INLINE double __pyx_f_7sklearn_12linear_model_8sgd_fast_mi...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_sqnorm (line 8590) | static double __pyx_f_7sklearn_12linear_model_8sgd_fast_sqnorm(__pyx_t_7...
  function __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty (line 8663) | static void __pyx_f_7sklearn_12linear_model_8sgd_fast_l1penalty(struct _...
  function CYTHON_UNUSED (line 8811) | static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObjec...
  function __pyx_pf_5numpy_7ndarray___getbuffer__ (line 8828) | static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v...
  function CYTHON_UNUSED (line 9630) | static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(Py...
  function __pyx_pf_5numpy_7ndarray_2__releasebuffer__ (line 9645) | static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *_...
  function CYTHON_INLINE (line 9705) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyOb...
  function CYTHON_INLINE (line 9748) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyOb...
  function CYTHON_INLINE (line 9791) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyOb...
  function CYTHON_INLINE (line 9834) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyOb...
  function CYTHON_INLINE (line 9877) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyOb...
  function CYTHON_INLINE (line 9920) | static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Desc...
  function CYTHON_INLINE (line 10655) | static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *_...
  function CYTHON_INLINE (line 10732) | static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObje...
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction (line 10781) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_LossFunction
  function PyObject (line 10783) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_LossFunc...
  function __pyx_tp_dealloc_7sklearn_12linear_model_8sgd_fast_LossFunction (line 10792) | static void __pyx_tp_dealloc_7sklearn_12linear_model_8sgd_fast_LossFunct...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction (line 10903) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_LossFunction
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression (line 10955) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Regression
  function PyObject (line 10957) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_Regressi...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression (line 11073) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Regression
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification (line 11125) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Classification
  function PyObject (line 11127) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_Classifi...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification (line 11243) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Classification
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 11295) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_ModifiedHuber
  function PyObject (line 11297) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_Modified...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber (line 11414) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_ModifiedHuber
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge (line 11466) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Hinge
  function PyObject (line 11468) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_Hinge(Py...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge (line 11585) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Hinge
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 11637) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  function PyObject (line 11639) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_SquaredH...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge (line 11756) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredHinge
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log (line 11808) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Log
  function PyObject (line 11810) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_Log(PyTy...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log (line 11927) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Log
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 11979) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredLoss
  function PyObject (line 11981) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_SquaredL...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss (line 12098) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredLoss
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber (line 12150) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_Huber
  function PyObject (line 12152) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_Huber(Py...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber (line 12269) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_Huber
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 12321) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_EpsilonInsensi...
  function PyObject (line 12323) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_EpsilonI...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive (line 12440) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_EpsilonInsensitive
  type __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 12492) | struct __pyx_vtabstruct_7sklearn_12linear_model_8sgd_fast_SquaredEpsilon...
  function PyObject (line 12494) | static PyObject *__pyx_tp_new_7sklearn_12linear_model_8sgd_fast_SquaredE...
  type __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensitive (line 12611) | struct __pyx_obj_7sklearn_12linear_model_8sgd_fast_SquaredEpsilonInsensi...
  type PyModuleDef (line 12669) | struct PyModuleDef
  function __Pyx_InitCachedBuiltins (line 12762) | static int __Pyx_InitCachedBuiltins(void) {
  function __Pyx_InitCachedConstants (line 12772) | static int __Pyx_InitCachedConstants(void) {
  function __Pyx_InitGlobals (line 13015) | static int __Pyx_InitGlobals(void) {
  function PyMODINIT_FUNC (line 13028) | PyMODINIT_FUNC PyInit_sgd_fast(void)
  function __Pyx_RefNannyAPIStruct (line 13326) | static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modn...
  function PyObject (line 13341) | static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
  function CYTHON_INLINE (line 13356) | static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *val...
  function CYTHON_INLINE (line 13373) | static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **val...
  function __Pyx_Raise (line 13454) | static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, P...
  function __Pyx_RaiseArgtupleInvalid (line 13537) | static void __Pyx_RaiseArgtupleInvalid(
  function __Pyx_RaiseDoubleKeywordsError (line 13562) | static void __Pyx_RaiseDoubleKeywordsError(
  function __Pyx_ParseOptionalKeywords (line 13575) | static int __Pyx_ParseOptionalKeywords(
  function __Pyx_ArgTypeTest (line 13676) | static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none...
  function CYTHON_INLINE (line 13696) | static CYTHON_INLINE int __Pyx_IsLittleEndian(void) {
  function __Pyx_BufFmt_Init (line 13700) | static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
  function __Pyx_BufFmt_ParseNumber (line 13727) | static int __Pyx_BufFmt_ParseNumber(const char** ts) {
  function __Pyx_BufFmt_ExpectNumber (line 13742) | static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
  function __Pyx_BufFmt_RaiseUnexpectedChar (line 13749) | static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
  function __Pyx_BufFmt_TypeCharToStandardSize (line 13777) | static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_comple...
  function __Pyx_BufFmt_TypeCharToNativeSize (line 13795) | static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
  type __Pyx_st_short (line 13814) | typedef struct { char c; short x; } __Pyx_st_short;
  type __Pyx_st_int (line 13815) | typedef struct { char c; int x; } __Pyx_st_int;
  type __Pyx_st_long (line 13816) | typedef struct { char c; long x; } __Pyx_st_long;
  type __Pyx_st_float (line 13817) | typedef struct { char c; float x; } __Pyx_st_float;
  type __Pyx_st_double (line 13818) | typedef struct { char c; double x; } __Pyx_st_double;
  type __Pyx_st_longdouble (line 13819) | typedef struct { char c; long double x; } __Pyx_st_longdouble;
  type __Pyx_st_void_p (line 13820) | typedef struct { char c; void *x; } __Pyx_st_void_p;
  type __Pyx_st_longlong (line 13822) | typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
  function __Pyx_BufFmt_TypeCharToAlignment (line 13824) | static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED in...
  type __Pyx_pad_short (line 13846) | typedef struct { short x; char c; } __Pyx_pad_short;
  type __Pyx_pad_int (line 13847) | typedef struct { int x; char c; } __Pyx_pad_int;
  type __Pyx_pad_long (line 13848) | typedef struct { long x; char c; } __Pyx_pad_long;
  type __Pyx_pad_float (line 13849) | typedef struct { float x; char c; } __Pyx_pad_float;
  type __Pyx_pad_double (line 13850) | typedef struct { double x; char c; } __Pyx_pad_double;
  type __Pyx_pad_longdouble (line 13851) | typedef struct { long double x; char c; } __Pyx_pad_longdouble;
  type __Pyx_pad_void_p (line 13852) | typedef struct { void *x; char c; } __Pyx_pad_void_p;
  type __Pyx_pad_longlong (line 13854) | typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
  function __Pyx_BufFmt_TypeCharToPadding (line 13856) | static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int ...
  function __Pyx_BufFmt_TypeCharToGroup (line 13874) | static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
  function __Pyx_BufFmt_RaiseExpected (line 13895) | static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
  function __Pyx_BufFmt_ProcessTypeChunk (line 13919) | static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
  function CYTHON_INLINE (line 14021) | static CYTHON_INLINE PyObject *
  function CYTHON_INLINE (line 14192) | static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) {
  function CYTHON_INLINE (line 14199) | static CYTHON_INLINE int __Pyx_GetBufferAndValidate(
  function CYTHON_INLINE (line 14233) | static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
  function CYTHON_INLINE (line 14239) | static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *typ...
  function __Pyx_RaiseBufferFallbackError (line 14251) | static void __Pyx_RaiseBufferFallbackError(void) {
  function CYTHON_INLINE (line 14256) | static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expec...
  function CYTHON_INLINE (line 14261) | static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t inde...
  function CYTHON_INLINE (line 14267) | static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
  function CYTHON_INLINE (line 14271) | static CYTHON_INLINE int __Pyx_IterFinish(void) {
  function __Pyx_IternextUnpackEndCheck (line 14305) | static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t exp...
  function __Pyx_GetBuffer (line 14317) | static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
  function __Pyx_ReleaseBuffer (line 14347) | static void __Pyx_ReleaseBuffer(Py_buffer *view) {
  function PyObject (line 14389) | static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long ...
  function CYTHON_INLINE (line 14458) | static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) {
  function PyObject (line 14468) | static PyObject *__Pyx_GetStdout(void) {
  function __Pyx_Print (line 14475) | static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) {
  function __Pyx_Print (line 14512) | static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newlin...
  function __Pyx_PrintOne (line 14568) | static int __Pyx_PrintOne(PyObject* f, PyObject *o) {
  function __Pyx_PrintOne (line 14592) | static int __Pyx_PrintOne(PyObject* stream, PyObject *o) {
  function CYTHON_INLINE (line 14605) | static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_pa...
  function CYTHON_INLINE (line 14609) | static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_pa...
  function CYTHON_INLINE (line 14614) | static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_pa...
  function CYTHON_INLINE (line 14624) | static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_fl...
  function CYTHON_INLINE (line 14627) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_co...
  function CYTHON_INLINE (line 14633) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_c...
  function CYTHON_INLINE (line 14639) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_c...
  function CYTHON_INLINE (line 14645) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_c...
  function CYTHON_INLINE (line 14652) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_co...
  function CYTHON_INLINE (line 14658) | static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) {
  function CYTHON_INLINE (line 14661) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_c...
  function CYTHON_INLINE (line 14668) | static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex z) {
  function CYTHON_INLINE (line 14675) | static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_co...
  function CYTHON_INLINE (line 14725) | static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_...
  function CYTHON_INLINE (line 14729) | static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_...
  function CYTHON_INLINE (line 14734) | static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_...
  function CYTHON_INLINE (line 14744) | static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_do...
  function CYTHON_INLINE (line 14747) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_c...
  function CYTHON_INLINE (line 14753) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_...
  function CYTHON_INLINE (line 14759) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_...
  function CYTHON_INLINE (line 14765) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_...
  function CYTHON_INLINE (line 14772) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_c...
  function CYTHON_INLINE (line 14778) | static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) {
  function CYTHON_INLINE (line 14781) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_...
  function CYTHON_INLINE (line 14788) | static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex z) {
  function CYTHON_INLINE (line 14795) | static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_c...
  function __Pyx_PyInt_AsUnsignedChar (line 14843) | static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* ...
  function __Pyx_PyInt_AsUnsignedShort (line 14862) | static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject...
  function __Pyx_PyInt_AsUnsignedInt (line 14881) | static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
  function CYTHON_INLINE (line 14900) | static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
  function __Pyx_PyInt_AsShort (line 14919) | static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
  function CYTHON_INLINE (line 14938) | static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
  function __Pyx_PyInt_AsSignedChar (line 14957) | static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
  function __Pyx_PyInt_AsSignedShort (line 14976) | static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
  function __Pyx_PyInt_AsSignedInt (line 14995) | static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
  function CYTHON_INLINE (line 15014) | static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) {
  function __Pyx_PyInt_AsUnsignedLong (line 15033) | static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* ...
  function __Pyx_PyInt_AsUnsignedLongLong (line 15068) | static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLon...
  function __Pyx_PyInt_AsLong (line 15103) | static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
  function CYTHON_INLINE (line 15138) | static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
  function __Pyx_PyInt_AsSignedLong (line 15173) | static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
  function __Pyx_PyInt_AsSignedLongLong (line 15208) | static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(Py...
  function __Pyx_WriteUnraisable (line 15243) | static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int cl...
  function __Pyx_check_binary_version (line 15262) | static int __Pyx_check_binary_version(void) {
  function __Pyx_SetVtable (line 15281) | static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
  function PyObject (line 15300) | static PyObject *__Pyx_ImportModule(const char *name) {
  function PyTypeObject (line 15317) | static PyTypeObject *__Pyx_ImportType(const char *module_name, const cha...
  function __pyx_bisect_code_objects (line 15386) | static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries...
  function PyCodeObject (line 15407) | static PyCodeObject *__pyx_find_code_object(int code_line) {
  function __pyx_insert_code_object (line 15421) | static void __pyx_insert_code_object(int code_line, PyCodeObject* code_o...
  function PyCodeObject (line 15468) | static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
  function __Pyx_AddTraceback (line 15520) | static void __Pyx_AddTraceback(const char *funcname, int c_line,
  function __Pyx_InitStrings (line 15548) | static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
  function CYTHON_INLINE (line 15581) | static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
  function CYTHON_INLINE (line 15633) | static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  function CYTHON_INLINE (line 15642) | static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
  function CYTHON_INLINE (line 15656) | static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {

FILE: src/test/resources/samples/langs/C/vfs.h
  type vfs_file_t (line 27) | typedef struct {
  type vfs_dir_t (line 35) | typedef struct {

FILE: src/test/resources/samples/langs/C/vmem.h
  type vmem_context (line 24) | struct vmem_context
  type vmem_page (line 26) | struct vmem_page
  type vmem_context (line 48) | struct vmem_context
  type vmem_page (line 48) | struct vmem_page
  type vmem_context (line 52) | struct vmem_context
  type vmem_context (line 53) | struct vmem_context
  type vmem_context (line 54) | struct vmem_context
  type vmem_context (line 58) | struct vmem_context
  type vmem_page (line 58) | struct vmem_page
  type vmem_context (line 61) | struct vmem_context
  type vmem_page (line 62) | struct vmem_page
  type vmem_context (line 64) | struct vmem_context
  type vmem_page (line 64) | struct vmem_page
  type vmem_page (line 66) | struct vmem_page
  type vmem_context (line 66) | struct vmem_context
  type vmem_page (line 67) | struct vmem_page
  type vmem_context (line 67) | struct vmem_context
  type vmem_page (line 68) | struct vmem_page
  type vmem_context (line 68) | struct vmem_context
  type vmem_page (line 71) | struct vmem_page
  type vmem_context (line 71) | struct vmem_context
  type vmem_page (line 72) | struct vmem_page
  type vmem_context (line 72) | struct vmem_context
  type vmem_context (line 75) | struct vmem_context
  type vmem_context (line 77) | struct vmem_context
  type vmem_page (line 78) | struct vmem_page
  type vmem_context (line 79) | struct vmem_context
  type vmem_context (line 83) | struct vmem_context
  type vmem_context (line 84) | struct vmem_context

FILE: src/test/resources/samples/langs/C/wglew.h
  type const (line 139) | typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UI...
  type const (line 199) | typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGL...
  type const (line 304) | typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int ...
  type const (line 375) | typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const i...
  type const (line 376) | typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, in...
  type const (line 377) | typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, in...
  type const (line 584) | typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int ...
  type const (line 651) | typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const i...
  type const (line 700) | typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC,...
  type USHORT (line 719) | typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntrie...
  type const (line 720) | typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, i...
  type GPU_DEVICE (line 908) | typedef struct _GPU_DEVICE {
  type WGLEWContextStruct (line 1129) | struct WGLEWContextStruct
  type WGLEWContext (line 1336) | typedef struct WGLEWContextStruct WGLEWContext;

FILE: src/test/resources/samples/langs/C/yajl.c
  function yajl_handle (line 63) | yajl_handle
  function yajl_reset_parser (line 107) | void
  function yajl_free (line 112) | void
  function yajl_status (line 121) | yajl_status
  function yajl_status (line 130) | yajl_status
  function yajl_get_bytes_consumed (line 149) | unsigned int
  function yajl_free_error (line 157) | void

FILE: src/test/resources/samples/langs/Dart/point.dart
  class Point (line 3) | class Point {
    method distanceTo (line 8) | num distanceTo(Point other)
  function main (line 15) | void main()

FILE: src/test/resources/samples/langs/Elixir/hello_world.exs
  class HelloWorld (line 1) | defmodule HelloWorld
    method hi (line 5) | def hi(name \\ "world") do

FILE: src/test/resources/samples/langs/Elixir/hello_world_test.exs
  class HelloWorldTest (line 5) | defmodule HelloWorldTest

FILE: src/test/resources/samples/langs/Go/api.pb.go
  type ClientCmdID (line 80) | type ClientCmdID struct
    method Reset (line 87) | func (m *ClientCmdID) Reset()         { *m = ClientCmdID{} }
    method String (line 88) | func (m *ClientCmdID) String() string { return proto1.CompactTextStrin...
    method ProtoMessage (line 89) | func (*ClientCmdID) ProtoMessage()    {}
    method GetWallTime (line 91) | func (m *ClientCmdID) GetWallTime() int64 {
    method GetRandom (line 98) | func (m *ClientCmdID) GetRandom() int64 {
  type RequestHeader (line 106) | type RequestHeader struct
    method Reset (line 148) | func (m *RequestHeader) Reset()         { *m = RequestHeader{} }
    method String (line 149) | func (m *RequestHeader) String() string { return proto1.CompactTextStr...
    method ProtoMessage (line 150) | func (*RequestHeader) ProtoMessage()    {}
    method GetTimestamp (line 154) | func (m *RequestHeader) GetTimestamp() Timestamp {
    method GetCmdID (line 161) | func (m *RequestHeader) GetCmdID() ClientCmdID {
    method GetUser (line 168) | func (m *RequestHeader) GetUser() string {
    method GetReplica (line 175) | func (m *RequestHeader) GetReplica() Replica {
    method GetRaftID (line 182) | func (m *RequestHeader) GetRaftID() int64 {
    method GetUserPriority (line 189) | func (m *RequestHeader) GetUserPriority() int32 {
    method GetTxn (line 196) | func (m *RequestHeader) GetTxn() *Transaction {
  constant Default_RequestHeader_UserPriority (line 152) | Default_RequestHeader_UserPriority int32 = 1
  type ResponseHeader (line 204) | type ResponseHeader struct
    method Reset (line 222) | func (m *ResponseHeader) Reset()         { *m = ResponseHeader{} }
    method String (line 223) | func (m *ResponseHeader) String() string { return proto1.CompactTextSt...
    method ProtoMessage (line 224) | func (*ResponseHeader) ProtoMessage()    {}
    method GetError (line 226) | func (m *ResponseHeader) GetError() *Error {
    method GetTimestamp (line 233) | func (m *ResponseHeader) GetTimestamp() Timestamp {
    method GetTxn (line 240) | func (m *ResponseHeader) GetTxn() *Transaction {
  type ContainsRequest (line 248) | type ContainsRequest struct
    method Reset (line 253) | func (m *ContainsRequest) Reset()         { *m = ContainsRequest{} }
    method String (line 254) | func (m *ContainsRequest) String() string { return proto1.CompactTextS...
    method ProtoMessage (line 255) | func (*ContainsRequest) ProtoMessage()    {}
  type ContainsResponse (line 258) | type ContainsResponse struct
    method Reset (line 264) | func (m *ContainsResponse) Reset()         { *m = ContainsResponse{} }
    method String (line 265) | func (m *ContainsResponse) String() string { return proto1.CompactText...
    method ProtoMessage (line 266) | func (*ContainsResponse) ProtoMessage()    {}
    method GetExists (line 268) | func (m *ContainsResponse) GetExists() bool {
  type GetRequest (line 276) | type GetRequest struct
    method Reset (line 281) | func (m *GetRequest) Reset()         { *m = GetRequest{} }
    method String (line 282) | func (m *GetRequest) String() string { return proto1.CompactTextString...
    method ProtoMessage (line 283) | func (*GetRequest) ProtoMessage()    {}
  type GetResponse (line 287) | type GetResponse struct
    method Reset (line 293) | func (m *GetResponse) Reset()         { *m = GetResponse{} }
    method String (line 294) | func (m *GetResponse) String() string { return proto1.CompactTextStrin...
    method ProtoMessage (line 295) | func (*GetResponse) ProtoMessage()    {}
    method GetValue (line 297) | func (m *GetResponse) GetValue() *Value {
  type PutRequest (line 307) | type PutRequest struct
    method Reset (line 313) | func (m *PutRequest) Reset()         { *m = PutRequest{} }
    method String (line 314) | func (m *PutRequest) String() string { return proto1.CompactTextString...
    method ProtoMessage (line 315) | func (*PutRequest) ProtoMessage()    {}
    method GetValue (line 317) | func (m *PutRequest) GetValue() Value {
  type PutResponse (line 325) | type PutResponse struct
    method Reset (line 330) | func (m *PutResponse) Reset()         { *m = PutResponse{} }
    method String (line 331) | func (m *PutResponse) String() string { return proto1.CompactTextStrin...
    method ProtoMessage (line 332) | func (*PutResponse) ProtoMessage()    {}
  type ConditionalPutRequest (line 340) | type ConditionalPutRequest struct
    method Reset (line 351) | func (m *ConditionalPutRequest) Reset()         { *m = ConditionalPutR...
    method String (line 352) | func (m *ConditionalPutRequest) String() string { return proto1.Compac...
    method ProtoMessage (line 353) | func (*ConditionalPutRequest) ProtoMessage()    {}
    method GetValue (line 355) | func (m *ConditionalPutRequest) GetValue() Value {
    method GetExpValue (line 362) | func (m *ConditionalPutRequest) GetExpValue() *Value {
  type ConditionalPutResponse (line 371) | type ConditionalPutResponse struct
    method Reset (line 376) | func (m *ConditionalPutResponse) Reset()         { *m = ConditionalPut...
    method String (line 377) | func (m *ConditionalPutResponse) String() string { return proto1.Compa...
    method ProtoMessage (line 378) | func (*ConditionalPutResponse) ProtoMessage()    {}
  type IncrementRequest (line 386) | type IncrementRequest struct
    method Reset (line 392) | func (m *IncrementRequest) Reset()         { *m = IncrementRequest{} }
    method String (line 393) | func (m *IncrementRequest) String() string { return proto1.CompactText...
    method ProtoMessage (line 394) | func (*IncrementRequest) ProtoMessage()    {}
    method GetIncrement (line 396) | func (m *IncrementRequest) GetIncrement() int64 {
  type IncrementResponse (line 406) | type IncrementResponse struct
    method Reset (line 412) | func (m *IncrementResponse) Reset()         { *m = IncrementResponse{} }
    method String (line 413) | func (m *IncrementResponse) String() string { return proto1.CompactTex...
    method ProtoMessage (line 414) | func (*IncrementResponse) ProtoMessage()    {}
    method GetNewValue (line 416) | func (m *IncrementResponse) GetNewValue() int64 {
  type DeleteRequest (line 424) | type DeleteRequest struct
    method Reset (line 429) | func (m *DeleteRequest) Reset()         { *m = DeleteRequest{} }
    method String (line 430) | func (m *DeleteRequest) String() string { return proto1.CompactTextStr...
    method ProtoMessage (line 431) | func (*DeleteRequest) ProtoMessage()    {}
  type DeleteResponse (line 434) | type DeleteResponse struct
    method Reset (line 439) | func (m *DeleteResponse) Reset()         { *m = DeleteResponse{} }
    method String (line 440) | func (m *DeleteResponse) String() string { return proto1.CompactTextSt...
    method ProtoMessage (line 441) | func (*DeleteResponse) ProtoMessage()    {}
  type DeleteRangeRequest (line 445) | type DeleteRangeRequest struct
    method Reset (line 453) | func (m *DeleteRangeRequest) Reset()         { *m = DeleteRangeRequest...
    method String (line 454) | func (m *DeleteRangeRequest) String() string { return proto1.CompactTe...
    method ProtoMessage (line 455) | func (*DeleteRangeRequest) ProtoMessage()    {}
    method GetMaxEntriesToDelete (line 457) | func (m *DeleteRangeRequest) GetMaxEntriesToDelete() int64 {
  type DeleteRangeResponse (line 466) | type DeleteRangeResponse struct
    method Reset (line 473) | func (m *DeleteRangeResponse) Reset()         { *m = DeleteRangeRespon...
    method String (line 474) | func (m *DeleteRangeResponse) String() string { return proto1.CompactT...
    method ProtoMessage (line 475) | func (*DeleteRangeResponse) ProtoMessage()    {}
    method GetNumDeleted (line 477) | func (m *DeleteRangeResponse) GetNumDeleted() int64 {
  type ScanRequest (line 486) | type ScanRequest struct
    method Reset (line 493) | func (m *ScanRequest) Reset()         { *m = ScanRequest{} }
    method String (line 494) | func (m *ScanRequest) String() string { return proto1.CompactTextStrin...
    method ProtoMessage (line 495) | func (*ScanRequest) ProtoMessage()    {}
    method GetMaxResults (line 497) | func (m *ScanRequest) GetMaxResults() int64 {
  type ScanResponse (line 505) | type ScanResponse struct
    method Reset (line 512) | func (m *ScanResponse) Reset()         { *m = ScanResponse{} }
    method String (line 513) | func (m *ScanResponse) String() string { return proto1.CompactTextStri...
    method ProtoMessage (line 514) | func (*ScanResponse) ProtoMessage()    {}
    method GetRows (line 516) | func (m *ScanResponse) GetRows() []KeyValue {
  type EndTransactionRequest (line 525) | type EndTransactionRequest struct
    method Reset (line 537) | func (m *EndTransactionRequest) Reset()         { *m = EndTransactionR...
    method String (line 538) | func (m *EndTransactionRequest) String() string { return proto1.Compac...
    method ProtoMessage (line 539) | func (*EndTransactionRequest) ProtoMessage()    {}
    method GetCommit (line 541) | func (m *EndTransactionRequest) GetCommit() bool {
    method GetSplitTrigger (line 548) | func (m *EndTransactionRequest) GetSplitTrigger() *SplitTrigger {
    method GetMergeTrigger (line 555) | func (m *EndTransactionRequest) GetMergeTrigger() *MergeTrigger {
  type EndTransactionResponse (line 572) | type EndTransactionResponse struct
    method Reset (line 579) | func (m *EndTransactionResponse) Reset()         { *m = EndTransaction...
    method String (line 580) | func (m *EndTransactionResponse) String() string { return proto1.Compa...
    method ProtoMessage (line 581) | func (*EndTransactionResponse) ProtoMessage()    {}
    method GetCommitWait (line 583) | func (m *EndTransactionResponse) GetCommitWait() int64 {
  type ReapQueueRequest (line 593) | type ReapQueueRequest struct
    method Reset (line 600) | func (m *ReapQueueRequest) Reset()         { *m = ReapQueueRequest{} }
    method String (line 601) | func (m *ReapQueueRequest) String() string { return proto1.CompactText...
    method ProtoMessage (line 602) | func (*ReapQueueRequest) ProtoMessage()    {}
    method GetMaxResults (line 604) | func (m *ReapQueueRequest) GetMaxResults() int64 {
  type ReapQueueResponse (line 612) | type ReapQueueResponse struct
    method Reset (line 618) | func (m *ReapQueueResponse) Reset()         { *m = ReapQueueResponse{} }
    method String (line 619) | func (m *ReapQueueResponse) String() string { return proto1.CompactTex...
    method ProtoMessage (line 620) | func (*ReapQueueResponse) ProtoMessage()    {}
    method GetMessages (line 622) | func (m *ReapQueueResponse) GetMessages() []Value {
  type EnqueueUpdateRequest (line 634) | type EnqueueUpdateRequest struct
    method Reset (line 639) | func (m *EnqueueUpdateRequest) Reset()         { *m = EnqueueUpdateReq...
    method String (line 640) | func (m *EnqueueUpdateRequest) String() string { return proto1.Compact...
    method ProtoMessage (line 641) | func (*EnqueueUpdateRequest) ProtoMessage()    {}
  type EnqueueUpdateResponse (line 645) | type EnqueueUpdateResponse struct
    method Reset (line 650) | func (m *EnqueueUpdateResponse) Reset()         { *m = EnqueueUpdateRe...
    method String (line 651) | func (m *EnqueueUpdateResponse) String() string { return proto1.Compac...
    method ProtoMessage (line 652) | func (*EnqueueUpdateResponse) ProtoMessage()    {}
  type EnqueueMessageRequest (line 657) | type EnqueueMessageRequest struct
    method Reset (line 664) | func (m *EnqueueMessageRequest) Reset()         { *m = EnqueueMessageR...
    method String (line 665) | func (m *EnqueueMessageRequest) String() string { return proto1.Compac...
    method ProtoMessage (line 666) | func (*EnqueueMessageRequest) ProtoMessage()    {}
    method GetMsg (line 668) | func (m *EnqueueMessageRequest) GetMsg() Value {
  type EnqueueMessageResponse (line 677) | type EnqueueMessageResponse struct
    method Reset (line 682) | func (m *EnqueueMessageResponse) Reset()         { *m = EnqueueMessage...
    method String (line 683) | func (m *EnqueueMessageResponse) String() string { return proto1.Compa...
    method ProtoMessage (line 684) | func (*EnqueueMessageResponse) ProtoMessage()    {}
  type RequestUnion (line 687) | type RequestUnion struct
    method Reset (line 703) | func (m *RequestUnion) Reset()         { *m = RequestUnion{} }
    method String (line 704) | func (m *RequestUnion) String() string { return proto1.CompactTextStri...
    method ProtoMessage (line 705) | func (*RequestUnion) ProtoMessage()    {}
    method GetContains (line 707) | func (m *RequestUnion) GetContains() *ContainsRequest {
    method GetGet (line 714) | func (m *RequestUnion) GetGet() *GetRequest {
    method GetPut (line 721) | func (m *RequestUnion) GetPut() *PutRequest {
    method GetConditionalPut (line 728) | func (m *RequestUnion) GetConditionalPut() *ConditionalPutRequest {
    method GetIncrement (line 735) | func (m *RequestUnion) GetIncrement() *IncrementRequest {
    method GetDelete (line 742) | func (m *RequestUnion) GetDelete() *DeleteRequest {
    method GetDeleteRange (line 749) | func (m *RequestUnion) GetDeleteRange() *DeleteRangeRequest {
    method GetScan (line 756) | func (m *RequestUnion) GetScan() *ScanRequest {
    method GetEndTransaction (line 763) | func (m *RequestUnion) GetEndTransaction() *EndTransactionRequest {
    method GetReapQueue (line 770) | func (m *RequestUnion) GetReapQueue() *ReapQueueRequest {
    method GetEnqueueUpdate (line 777) | func (m *RequestUnion) GetEnqueueUpdate() *EnqueueUpdateRequest {
    method GetEnqueueMessage (line 784) | func (m *RequestUnion) GetEnqueueMessage() *EnqueueMessageRequest {
    method GetValue (line 1016) | func (this *RequestUnion) GetValue() interface{} {
    method SetValue (line 1056) | func (this *RequestUnion) SetValue(value interface{}) bool {
  type ResponseUnion (line 792) | type ResponseUnion struct
    method Reset (line 808) | func (m *ResponseUnion) Reset()         { *m = ResponseUnion{} }
    method String (line 809) | func (m *ResponseUnion) String() string { return proto1.CompactTextStr...
    method ProtoMessage (line 810) | func (*ResponseUnion) ProtoMessage()    {}
    method GetContains (line 812) | func (m *ResponseUnion) GetContains() *ContainsResponse {
    method GetGet (line 819) | func (m *ResponseUnion) GetGet() *GetResponse {
    method GetPut (line 826) | func (m *ResponseUnion) GetPut() *PutResponse {
    method GetConditionalPut (line 833) | func (m *ResponseUnion) GetConditionalPut() *ConditionalPutResponse {
    method GetIncrement (line 840) | func (m *ResponseUnion) GetIncrement() *IncrementResponse {
    method GetDelete (line 847) | func (m *ResponseUnion) GetDelete() *DeleteResponse {
    method GetDeleteRange (line 854) | func (m *ResponseUnion) GetDeleteRange() *DeleteRangeResponse {
    method GetScan (line 861) | func (m *ResponseUnion) GetScan() *ScanResponse {
    method GetEndTransaction (line 868) | func (m *ResponseUnion) GetEndTransaction() *EndTransactionResponse {
    method GetReapQueue (line 875) | func (m *ResponseUnion) GetReapQueue() *ReapQueueResponse {
    method GetEnqueueUpdate (line 882) | func (m *ResponseUnion) GetEnqueueUpdate() *EnqueueUpdateResponse {
    method GetEnqueueMessage (line 889) | func (m *ResponseUnion) GetEnqueueMessage() *EnqueueMessageResponse {
    method GetValue (line 1087) | func (this *ResponseUnion) GetValue() interface{} {
    method SetValue (line 1127) | func (this *ResponseUnion) SetValue(value interface{}) bool {
  type BatchRequest (line 899) | type BatchRequest struct
    method Reset (line 905) | func (m *BatchRequest) Reset()         { *m = BatchRequest{} }
    method String (line 906) | func (m *BatchRequest) String() string { return proto1.CompactTextStri...
    method ProtoMessage (line 907) | func (*BatchRequest) ProtoMessage()    {}
    method GetRequests (line 909) | func (m *BatchRequest) GetRequests() []RequestUnion {
  type BatchResponse (line 920) | type BatchResponse struct
    method Reset (line 926) | func (m *BatchResponse) Reset()         { *m = BatchResponse{} }
    method String (line 927) | func (m *BatchResponse) String() string { return proto1.CompactTextStr...
    method ProtoMessage (line 928) | func (*BatchResponse) ProtoMessage()    {}
    method GetResponses (line 930) | func (m *BatchResponse) GetResponses() []ResponseUnion {
  type AdminSplitRequest (line 957) | type AdminSplitRequest struct
    method Reset (line 963) | func (m *AdminSplitRequest) Reset()         { *m = AdminSplitRequest{} }
    method String (line 964) | func (m *AdminSplitRequest) String() string { return proto1.CompactTex...
    method ProtoMessage (line 965) | func (*AdminSplitRequest) ProtoMessage()    {}
  type AdminSplitResponse (line 969) | type AdminSplitResponse struct
    method Reset (line 974) | func (m *AdminSplitResponse) Reset()         { *m = AdminSplitResponse...
    method String (line 975) | func (m *AdminSplitResponse) String() string { return proto1.CompactTe...
    method ProtoMessage (line 976) | func (*AdminSplitResponse) ProtoMessage()    {}
  type AdminMergeRequest (line 986) | type AdminMergeRequest struct
    method Reset (line 992) | func (m *AdminMergeRequest) Reset()         { *m = AdminMergeRequest{} }
    method String (line 993) | func (m *AdminMergeRequest) String() string { return proto1.CompactTex...
    method ProtoMessage (line 994) | func (*AdminMergeRequest) ProtoMessage()    {}
    method GetSubsumedRange (line 996) | func (m *AdminMergeRequest) GetSubsumedRange() RangeDescriptor {
  type AdminMergeResponse (line 1005) | type AdminMergeResponse struct
    method Reset (line 1010) | func (m *AdminMergeResponse) Reset()         { *m = AdminMergeResponse...
    method String (line 1011) | func (m *AdminMergeResponse) String() string { return proto1.CompactTe...
    method ProtoMessage (line 1012) | func (*AdminMergeResponse) ProtoMessage()    {}
  function init (line 1014) | func init() {

FILE: src/test/resources/samples/langs/Go/embedded.go
  function bindataRead (line 45) | func bindataRead(data []byte, name string) ([]byte, error) {
  type asset (line 65) | type asset struct
  type bindataFileInfo (line 70) | type bindataFileInfo struct
    method Name (line 77) | func (fi bindataFileInfo) Name() string {
    method Size (line 80) | func (fi bindataFileInfo) Size() int64 {
    method Mode (line 83) | func (fi bindataFileInfo) Mode() os.FileMode {
    method ModTime (line 86) | func (fi bindataFileInfo) ModTime() time.Time {
    method IsDir (line 89) | func (fi bindataFileInfo) IsDir() bool {
    method Sys (line 92) | func (fi bindataFileInfo) Sys() interface{} {
  function uiCssAppCssBytes (line 98) | func uiCssAppCssBytes() ([]byte, error) {
  function uiCssAppCss (line 105) | func uiCssAppCss() (*asset, error) {
  function uiCssGraphCssBytes (line 118) | func uiCssGraphCssBytes() ([]byte, error) {
  function uiCssGraphCss (line 125) | func uiCssGraphCss() (*asset, error) {
  function uiCssLibsNvd3171NvD3MinCssBytes (line 138) | func uiCssLibsNvd3171NvD3MinCssBytes() ([]byte, error) {
  function uiCssLibsNvd3171NvD3MinCss (line 145) | func uiCssLibsNvd3171NvD3MinCss() (*asset, error) {
  function uiCssRest_explorerCssBytes (line 158) | func uiCssRest_explorerCssBytes() ([]byte, error) {
  function uiCssRest_explorerCss (line 165) | func uiCssRest_explorerCss() (*asset, error) {
  function uiIndexHtmlBytes (line 178) | func uiIndexHtmlBytes() ([]byte, error) {
  function uiIndexHtml (line 185) | func uiIndexHtml() (*asset, error) {
  function uiJsAppJsBytes (line 198) | func uiJsAppJsBytes() ([]byte, error) {
  function uiJsAppJs (line 205) | func uiJsAppJs() (*asset, error) {
  function uiJsLibsD3335D3MinJsBytes (line 218) | func uiJsLibsD3335D3MinJsBytes() ([]byte, error) {
  function uiJsLibsD3335D3MinJs (line 225) | func uiJsLibsD3335D3MinJs() (*asset, error) {
  function uiJsLibsMithriljs020MithrilMinJsBytes (line 238) | func uiJsLibsMithriljs020MithrilMinJsBytes() ([]byte, error) {
  function uiJsLibsMithriljs020MithrilMinJs (line 245) | func uiJsLibsMithriljs020MithrilMinJs() (*asset, error) {
  function uiJsLibsMithriljs020MithrilMinJsMapBytes (line 258) | func uiJsLibsMithriljs020MithrilMinJsMapBytes() ([]byte, error) {
  function uiJsLibsMithriljs020MithrilMinJsMap (line 265) | func uiJsLibsMithriljs020MithrilMinJsMap() (*asset, error) {
  function uiJsLibsNvd3171NvD3MinJsBytes (line 278) | func uiJsLibsNvd3171NvD3MinJsBytes() ([]byte, error) {
  function uiJsLibsNvd3171NvD3MinJs (line 285) | func uiJsLibsNvd3171NvD3MinJs() (*asset, error) {
  function uiTsAppTsBytes (line 298) | func uiTsAppTsBytes() ([]byte, error) {
  function uiTsAppTs (line 305) | func uiTsAppTs() (*asset, error) {
  function uiTsComponentsMetricsTsBytes (line 318) | func uiTsComponentsMetricsTsBytes() ([]byte, error) {
  function uiTsComponentsMetricsTs (line 325) | func uiTsComponentsMetricsTs() (*asset, error) {
  function uiTsHeaderTsBytes (line 338) | func uiTsHeaderTsBytes() ([]byte, error) {
  function uiTsHeaderTs (line 345) | func uiTsHeaderTs() (*asset, error) {
  function uiTsModelsNode_statusTsBytes (line 358) | func uiTsModelsNode_statusTsBytes() ([]byte, error) {
  function uiTsModelsNode_statusTs (line 365) | func uiTsModelsNode_statusTs() (*asset, error) {
  function uiTsModelsStatsTsBytes (line 378) | func uiTsModelsStatsTsBytes() ([]byte, error) {
  function uiTsModelsStatsTs (line 385) | func uiTsModelsStatsTs() (*asset, error) {
  function uiTsModelsStore_statusTsBytes (line 398) | func uiTsModelsStore_statusTsBytes() ([]byte, error) {
  function uiTsModelsStore_statusTs (line 405) | func uiTsModelsStore_statusTs() (*asset, error) {
  function uiTsModelsTimeseriesTsBytes (line 418) | func uiTsModelsTimeseriesTsBytes() ([]byte, error) {
  function uiTsModelsTimeseriesTs (line 425) | func uiTsModelsTimeseriesTs() (*asset, error) {
  function uiTsPagesGraphTsBytes (line 438) | func uiTsPagesGraphTsBytes() ([]byte, error) {
  function uiTsPagesGraphTs (line 445) | func uiTsPagesGraphTs() (*asset, error) {
  function uiTsPagesMonitorTsBytes (line 458) | func uiTsPagesMonitorTsBytes() ([]byte, error) {
  function uiTsPagesMonitorTs (line 465) | func uiTsPagesMonitorTs() (*asset, error) {
  function uiTsPagesNodesTsBytes (line 478) | func uiTsPagesNodesTsBytes() ([]byte, error) {
  function uiTsPagesNodesTs (line 485) | func uiTsPagesNodesTs() (*asset, error) {
  function uiTsPagesRest_explorerTsBytes (line 498) | func uiTsPagesRest_explorerTsBytes() ([]byte, error) {
  function uiTsPagesRest_explorerTs (line 505) | func uiTsPagesRest_explorerTs() (*asset, error) {
  function uiTsPagesStoresTsBytes (line 518) | func uiTsPagesStoresTsBytes() ([]byte, error) {
  function uiTsPagesStoresTs (line 525) | func uiTsPagesStoresTs() (*asset, error) {
  function uiTsTsconfigJsonBytes (line 538) | func uiTsTsconfigJsonBytes() ([]byte, error) {
  function uiTsTsconfigJson (line 545) | func uiTsTsconfigJson() (*asset, error) {
  function uiTsTypingsD3D3DTsBytes (line 558) | func uiTsTypingsD3D3DTsBytes() ([]byte, error) {
  function uiTsTypingsD3D3DTs (line 565) | func uiTsTypingsD3D3DTs() (*asset, error) {
  function uiTsTypingsJqueryJqueryDTsBytes (line 578) | func uiTsTypingsJqueryJqueryDTsBytes() ([]byte, error) {
  function uiTsTypingsJqueryJqueryDTs (line 585) | func uiTsTypingsJqueryJqueryDTs() (*asset, error) {
  function uiTsTypingsMithriljsMithrilDTsBytes (line 598) | func uiTsTypingsMithriljsMithrilDTsBytes() ([]byte, error) {
  function uiTsTypingsMithriljsMithrilDTs (line 605) | func uiTsTypingsMithriljsMithrilDTs() (*asset, error) {
  function Asset (line 619) | func Asset(name string) ([]byte, error) {
  function MustAsset (line 633) | func MustAsset(name string) []byte {
  function AssetInfo (line 645) | func AssetInfo(name string) (os.FileInfo, error) {
  function AssetNames (line 658) | func AssetNames() []string {
  function AssetDir (line 709) | func AssetDir(name string) ([]string, error) {
  type bintree (line 731) | type bintree struct
  function RestoreAsset (line 808) | func RestoreAsset(dir, name string) error {
  function RestoreAssets (line 833) | func RestoreAssets(dir, name string) error {
  function _filePath (line 849) | func _filePath(dir, name string) string {

FILE: src/test/resources/samples/langs/Go/gen-go-linguist-thrift.go
  function init (line 17) | func init() {

FILE: src/test/resources/samples/langs/Hack/Assert.hh
  function hh (line 1) | hh // strict
  function final (line 14) | final class Assert {

FILE: src/test/resources/samples/langs/Hack/AssertRecipe.hh
  function RecipeWithDemo (line 15) | class AssertRecipe extends Recipe implements RecipeWithDemo {
  function protected (line 28) | protected function getFilenames(): Vector<string> {
  function protected (line 34) | protected function getDocs(): Vector<(string, string)> {
  function public (line 41) | public function getDemoFilename(): string {
  function public (line 45) | public function getDemoResult(): string {
  function public (line 49) | public function getDemoXHP(): ?:xhp {

FILE: src/test/resources/samples/langs/Hack/Controller.hh
  function abstract (line 14) | abstract class Controller {

FILE: src/test/resources/samples/langs/Hack/DBResultRecipe.hh
  function RecipeWithDemo (line 15) | class DBResultRecipe extends Recipe implements RecipeWithDemo {
  function protected (line 28) | protected function getFilenames(): Vector<string> {
  function protected (line 34) | protected function getDocs(): Vector<(string, string)> {
  function public (line 41) | public function getDemoFilename(): string {
  function public (line 45) | public function getDemoResult(): string {
  function public (line 49) | public function getDemoXHP(): ?:xhp {

FILE: src/test/resources/samples/langs/Hack/Documentation.hh
  function final (line 14) | final class :documentation extends :x:element {

FILE: src/test/resources/samples/langs/Hack/FakeDB.hh
  function final (line 10) | final class FakeDB {

FILE: src/test/resources/samples/langs/Hack/GetAndPostRecipe.hh
  function RecipeWithDemo (line 15) | class GetAndPostRecipe extends Recipe implements RecipeWithDemo {
  function protected (line 27) | protected function getFilenames(): Vector<string> {
  function protected (line 34) | protected function getDocs(): Vector<(string, string)> {
  function public (line 40) | public function getDemoFilename(): string {
  function public (line 44) | public function getDemoResult(): string {
  function public (line 48) | public function getDemoXHP(): :xhp {

FILE: src/test/resources/samples/langs/Hack/GetController.hh
  function hh (line 1) | hh // strict

FILE: src/test/resources/samples/langs/Hack/HomeController.hh
  function GetController (line 16) | class HomeController extends GetController {

FILE: src/test/resources/samples/langs/Hack/MySecureRequest.hh
  function final (line 5) | final class MySecureRequest {

FILE: src/test/resources/samples/langs/Hack/Nav.hh
  function final (line 25) | final class :hack:nav extends :x:element {

FILE: src/test/resources/samples/langs/Hack/NonStrictFile.hh
  function hh (line 1) | hh
  function function (line 19) | function getPOSTParams(): Map<string, mixed> {
  function function (line 25) | function isGET(): bool {

FILE: src/test/resources/samples/langs/Hack/Recipe.hh
  function protected (line 23) | protected function getDescription(): ?string {
  function final (line 27) | final protected function getTitle(): string {

FILE: src/test/resources/samples/langs/Hack/RecipeWithDemo.hh
  function hh (line 1) | hh // strict

FILE: src/test/resources/samples/langs/Hack/Request.hh
  function hh (line 1) | hh // strict

FILE: src/test/resources/samples/langs/Hack/StandardPage.hh
  function hh (line 1) | hh // strict

FILE: src/test/resources/samples/langs/Hack/StrictFile.hh
  function abstract (line 14) | abstract class MyRequest {
  function final (line 36) | final class MyGETRequest extends MyRequest {
  function final (line 42) | final class MyPOSTRequest extends MyRequest {

FILE: src/test/resources/samples/langs/Hack/UnescapedString.hh
  function function (line 7) | function unescaped_string(string $s): UNESCAPED_STRING {
  function function (line 13) | function escape_unescaped_string(UNESCAPED_STRING $s): string {

FILE: src/test/resources/samples/langs/Hack/UnescapedStringRecipe.hh
  function RecipeWithDemo (line 15) | class UnescapedStringRecipe extends Recipe implements RecipeWithDemo {
  function protected (line 28) | protected function getFilenames(): Vector<string> {
  function protected (line 35) | protected function getDocs(): Vector<(string, string)> {
  function public (line 41) | public function getDemoFilename(): string {
  function public (line 45) | public function getDemoResult(): string {
  function public (line 49) | public function getDemoXHP(): ?:xhp {

FILE: src/test/resources/samples/langs/Hack/UserID.hh
  function function (line 19) | function assert_user_id(int $x): USER_ID {
  function function (line 25) | function assert_cow_id(int $x): COW_ID {
  function function (line 31) | function id_to_int(ID $id): int {

FILE: src/test/resources/samples/langs/Hack/UserIDRecipe.hh
  function RecipeWithDemo (line 15) | class UserIDRecipe extends Recipe implements RecipeWithDemo {
  function protected (line 26) | protected function getFilenames(): Vector<string> {
  function protected (line 33) | protected function getDocs(): Vector<(string, string)> {
  function public (line 43) | public function getDemoFilename(): string {
  function public (line 47) | public function getDemoResult(): string {
  function public (line 51) | public function getDemoXHP(): ?:xhp {

FILE: src/test/resources/samples/langs/Hack/UsingUserID.hh
  function hh (line 1) | hh // strict
  function function (line 16) | function get_user_string(USER_ID $id): string {
  function function (line 20) | function get_cow_string(COW_ID $id): string {

FILE: src/test/resources/samples/langs/Hack/error.hh
  function hh (line 1) | hh
  function function (line 15) | function setup_errors(): void {

FILE: src/test/resources/samples/langs/Hack/funs.hh
  function hh (line 1) | hh
  function function (line 20) | function invariant(mixed $test, string $message): void {
  function function (line 26) | function invariant_violation(string $message): void {
  function function (line 30) | function class_meth(string $class, string $method) {

FILE: src/test/resources/samples/langs/Hack/funs.php
  class InvariantViolationException (line 18) | class InvariantViolationException extends Exception {}
  function invariant (line 20) | function invariant(mixed $test, string $message): void {
  function invariant_violation (line 26) | function invariant_violation(string $message): void {
  function class_meth (line 30) | function class_meth(string $class, string $method) {

FILE: src/test/resources/samples/langs/Hack/phpfile.hh
  function final (line 14) | final class :phpfile extends :x:primitive {

FILE: src/test/resources/samples/langs/Hack/startup.hh
  function hh (line 1) | hh // strict

FILE: src/test/resources/samples/langs/Java/GrammarKit.java
  class GrammarParser (line 14) | @SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
    method parse (line 17) | public ASTNode parse(IElementType t, PsiBuilder b) {
    method parseLight (line 22) | public void parseLight(IElementType t, PsiBuilder b) {
    method parse_root_ (line 83) | protected boolean parse_root_(IElementType t, PsiBuilder b, int l) {
    method attr (line 96) | public static boolean attr(PsiBuilder b, int l) {
    method attr_1 (line 111) | private static boolean attr_1(PsiBuilder b, int l) {
    method attr_4 (line 118) | private static boolean attr_4(PsiBuilder b, int l) {
    method attr_pattern (line 126) | public static boolean attr_pattern(PsiBuilder b, int l) {
    method attr_recover_until (line 140) | static boolean attr_recover_until(PsiBuilder b, int l) {
    method attr_value (line 151) | public static boolean attr_value(PsiBuilder b, int l) {
    method attr_value_0 (line 162) | private static boolean attr_value_0(PsiBuilder b, int l) {
    method attr_value_1 (line 173) | private static boolean attr_value_1(PsiBuilder b, int l) {
    method attrs (line 184) | public static boolean attrs(PsiBuilder b, int l) {
    method attrs_1 (line 198) | private static boolean attrs_1(PsiBuilder b, int l) {
    method choice (line 211) | public static boolean choice(PsiBuilder b, int l) {
    method choice_0 (line 222) | private static boolean choice_0(PsiBuilder b, int l) {
    method choice_0_2 (line 235) | private static boolean choice_0_2(PsiBuilder b, int l) {
    method choice_0_2_0 (line 247) | private static boolean choice_0_2_0(PsiBuilder b, int l) {
    method choice_1 (line 258) | private static boolean choice_1(PsiBuilder b, int l) {
    method choice_1_1 (line 269) | private static boolean choice_1_1(PsiBuilder b, int l) {
    method choice_tail (line 282) | static boolean choice_tail(PsiBuilder b, int l) {
    method expression (line 296) | public static boolean expression(PsiBuilder b, int l) {
    method grammar (line 306) | static boolean grammar(PsiBuilder b, int l) {
    method grammar_0 (line 318) | private static boolean grammar_0(PsiBuilder b, int l) {
    method literal_expression (line 330) | public static boolean literal_expression(PsiBuilder b, int l) {
    method modifier (line 343) | public static boolean modifier(PsiBuilder b, int l) {
    method option (line 356) | static boolean option(PsiBuilder b, int l) {
    method paren_expression (line 368) | public static boolean paren_expression(PsiBuilder b, int l) {
    method predicate (line 383) | public static boolean predicate(PsiBuilder b, int l) {
    method predicate_sign (line 396) | public static boolean predicate_sign(PsiBuilder b, int l) {
    method quantified (line 409) | public static boolean quantified(PsiBuilder b, int l) {
    method quantified_0 (line 420) | private static boolean quantified_0(PsiBuilder b, int l) {
    method quantified_1 (line 432) | private static boolean quantified_1(PsiBuilder b, int l) {
    method quantified_1_1 (line 443) | private static boolean quantified_1_1(PsiBuilder b, int l) {
    method quantifier (line 451) | public static boolean quantifier(PsiBuilder b, int l) {
    method reference_or_token (line 464) | public static boolean reference_or_token(PsiBuilder b, int l) {
    method rule (line 476) | public static boolean rule(PsiBuilder b, int l) {
    method rule_0 (line 492) | private static boolean rule_0(PsiBuilder b, int l) {
    method rule_4 (line 504) | private static boolean rule_4(PsiBuilder b, int l) {
    method rule_5 (line 511) | private static boolean rule_5(PsiBuilder b, int l) {
    method rule_recover_until (line 519) | static boolean rule_recover_until(PsiBuilder b, int l) {
    method sequence (line 530) | public static boolean sequence(PsiBuilder b, int l) {
    method simple (line 547) | static boolean simple(PsiBuilder b, int l) {
    method simple_0 (line 559) | private static boolean simple_0(PsiBuilder b, int l) {
    method simple_0_0 (line 570) | private static boolean simple_0_0(PsiBuilder b, int l) {
    method simple_0_0_0 (line 580) | private static boolean simple_0_0_0(PsiBuilder b, int l) {
    method simple_0_0_0_0 (line 592) | private static boolean simple_0_0_0_0(PsiBuilder b, int l) {
    method string_literal_expression (line 605) | public static boolean string_literal_expression(PsiBuilder b, int l) {
    method parse (line 616) | public boolean parse(PsiBuilder b, int l) {
    method parse (line 621) | public boolean parse(PsiBuilder b, int l) {

FILE: src/test/resources/samples/langs/Java/HtmlDomParserContext.java
  class HtmlDomParserContext (line 66) | public class HtmlDomParserContext extends XmlDomParserContext {
    method HtmlDomParserContext (line 68) | public HtmlDomParserContext(Ruby runtime, IRubyObject options) {
    method HtmlDomParserContext (line 72) | public HtmlDomParserContext(Ruby runtime, IRubyObject encoding, IRubyO...
    method initErrorHandler (line 76) | @Override
    method initParser (line 85) | @Override
    method enableDocumentFragment (line 111) | public void enableDocumentFragment() {
    method getNewEmptyDocument (line 115) | @Override
    method wrapDocument (line 121) | @Override
    method tryGetCharsetFromHtml5MetaTag (line 145) | private String tryGetCharsetFromHtml5MetaTag(Document document) {
    class RemoveNSAttrsFilter (line 169) | public static class RemoveNSAttrsFilter extends DefaultFilter {
      method startElement (line 170) | @Override
    class ElementValidityCheckFilter (line 186) | public static class ElementValidityCheckFilter extends DefaultFilter {
      method ElementValidityCheckFilter (line 189) | private ElementValidityCheckFilter(NokogiriErrorHandler errorHandler) {
      method isValid (line 223) | private boolean isValid(String testee) {
      method startElement (line 235) | @Override

FILE: src/test/resources/samples/langs/Java/Hudson.java
  class Hudson (line 56) | public class Hudson extends Jenkins {
    method getInstance (line 71) | @CLIResolver
    method Hudson (line 76) | public Hudson(File root, ServletContext context) throws IOException, I...
    method Hudson (line 80) | public Hudson(File root, ServletContext context, PluginManager pluginM...
    method getJobListeners (line 90) | public CopyOnWriteList<ItemListener> getJobListeners() {
    method getComputerListeners (line 100) | public CopyOnWriteList<ComputerListener> getComputerListeners() {
    method getSlave (line 110) | public Slave getSlave(String name) {
    method getSlaves (line 121) | public List<Slave> getSlaves() {
    method setSlaves (line 131) | public void setSlaves(List<Slave> slaves) throws IOException {
    method getJob (line 140) | public TopLevelItem getJob(String name) {
    method getJobCaseInsensitive (line 148) | public TopLevelItem getJobCaseInsensitive(String name) {
    method doQuietDown (line 162) | public synchronized void doQuietDown(StaplerResponse rsp) throws IOExc...
    method doLogRss (line 172) | public void doLogRss( StaplerRequest req, StaplerResponse rsp ) throws...
    method doFieldCheck (line 181) | public void doFieldCheck(StaplerRequest req, StaplerResponse rsp) thro...
    method doFieldCheck (line 202) | public FormValidation doFieldCheck(@QueryParameter(fixEmpty=true) Stri...
    method isWindows (line 237) | public static boolean isWindows() {
    method isDarwin (line 245) | public static boolean isDarwin() {
    method adminCheck (line 253) | public static boolean adminCheck() throws IOException {
    method adminCheck (line 261) | public static boolean adminCheck(StaplerRequest req,StaplerResponse rs...
    method isAdmin (line 286) | public static boolean isAdmin() {
    method isAdmin (line 295) | public static boolean isAdmin(StaplerRequest req) {
    class MasterComputer (line 306) | public static final class MasterComputer extends Jenkins.MasterComputer {
    class CloudList (line 313) | public static class CloudList extends Jenkins.CloudList {
      method CloudList (line 314) | public CloudList(Jenkins h) {
      method CloudList (line 318) | public CloudList() {// needed for XStream deserialization

FILE: src/test/resources/samples/langs/Java/JFlexLexer.java
  class _GrammarLexer (line 15) | public class _GrammarLexer implements FlexLexer {
    method zzUnpackAction (line 53) | private static int [] zzUnpackAction() {
    method zzUnpackAction (line 60) | private static int zzUnpackAction(String packed, int offset, int [] re...
    method zzUnpackRowMap (line 83) | private static int [] zzUnpackRowMap() {
    method zzUnpackRowMap (line 90) | private static int zzUnpackRowMap(String packed, int offset, int [] re...
    method zzUnpackTrans (line 113) | private static int [] zzUnpackTrans() {
    method zzUnpackTrans (line 120) | private static int zzUnpackTrans(String packed, int offset, int [] res...
    method zzUnpackAttribute (line 157) | private static int [] zzUnpackAttribute() {
    method zzUnpackAttribute (line 164) | private static int zzUnpackAttribute(String packed, int offset, int []...
    method _GrammarLexer (line 214) | public _GrammarLexer() {
    method _GrammarLexer (line 224) | public _GrammarLexer(java.io.Reader in) {
    method zzUnpackCMap (line 235) | private static char [] zzUnpackCMap(String packed) {
    method getTokenStart (line 247) | public final int getTokenStart(){
    method getTokenEnd (line 251) | public final int getTokenEnd(){
    method reset (line 255) | public void reset(CharSequence buffer, int start, int end,int initialS...
    method zzRefill (line 273) | private boolean zzRefill() throws java.io.IOException {
    method yystate (line 281) | public final int yystate() {
    method yybegin (line 291) | public final void yybegin(int newState) {
    method yytext (line 299) | public final CharSequence yytext() {
    method yycharat (line 315) | public final char yycharat(int pos) {
    method yylength (line 323) | public final int yylength() {
    method zzScanError (line 342) | private void zzScanError(int errorCode) {
    method yypushback (line 363) | public void yypushback(int number)  {
    method advance (line 378) | public IElementType advance() throws java.io.IOException {

FILE: src/test/resources/samples/langs/Java/NokogiriService.java
  class NokogiriService (line 55) | public class NokogiriService implements BasicLibraryService {
    method basicLoad (line 59) | public boolean basicLoad(Ruby ruby) {
    method createNokogiriClassCahce (line 65) | private static void createNokogiriClassCahce(Ruby ruby) {
    method init (line 95) | private void init(Ruby ruby) {
    method createNokogiriModule (line 112) | private void createNokogiriModule(Ruby ruby, RubyModule nokogiri) {;
    method createSyntaxErrors (line 117) | private void createSyntaxErrors(Ruby ruby, RubyModule nokogiri, RubyMo...
    method createXmlModule (line 123) | private RubyClass createXmlModule(Ruby ruby, RubyModule xmlModule) {
    method createHtmlModule (line 196) | private void createHtmlModule(Ruby ruby, RubyModule htmlModule) {
    method createDocuments (line 204) | private void createDocuments(Ruby ruby, RubyModule xmlModule, RubyModu...
    method createSaxModule (line 213) | private void createSaxModule(Ruby ruby, RubyModule xmlSaxModule, RubyM...
    method createXsltModule (line 224) | private void createXsltModule(Ruby ruby, RubyModule xsltModule) {
    method allocate (line 231) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 238) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 252) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 266) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 273) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 280) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 294) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 308) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 322) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 336) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 350) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 364) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 378) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 392) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 406) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 420) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 434) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 450) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 464) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 478) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 484) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 490) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 497) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 511) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 524) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 531) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 545) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 559) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 573) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
    method allocate (line 587) | public IRubyObject allocate(Ruby runtime, RubyClass klazz) {

FILE: src/test/resources/samples/langs/Java/ProtocolBuffer.java
  class ProtocolBuffer (line 6) | public final class ProtocolBuffer {
    method ProtocolBuffer (line 7) | private ProtocolBuffer() {}
    method registerAllExtensions (line 8) | public static void registerAllExtensions(
    type PersonOrBuilder (line 11) | public interface PersonOrBuilder
      method hasName (line 18) | boolean hasName();
      method getName (line 22) | java.lang.String getName();
      method getNameBytes (line 26) | com.google.protobuf.ByteString
    class Person (line 32) | public static final class Person extends
      method Person (line 36) | private Person(com.google.protobuf.GeneratedMessage.Builder<?> build...
      method Person (line 40) | private Person(boolean noInit) { this.unknownFields = com.google.pro...
      method getDefaultInstance (line 43) | public static Person getDefaultInstance() {
      method getDefaultInstanceForType (line 47) | public Person getDefaultInstanceForType() {
      method getUnknownFields (line 52) | @java.lang.Override
      method Person (line 57) | private Person(
      method getDescriptor (line 97) | public static final com.google.protobuf.Descriptors.Descriptor
      method internalGetFieldAccessorTable (line 102) | protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
      method parsePartialFrom (line 111) | public Person parsePartialFrom(
      method getParserForType (line 119) | @java.lang.Override
      method hasName (line 131) | public boolean hasName() {
      method getName (line 137) | public java.lang.String getName() {
      method getNameBytes (line 154) | public com.google.protobuf.ByteString
      method initFields (line 168) | private void initFields() {
      method isInitialized (line 172) | public final boolean isInitialized() {
      method writeTo (line 184) | public void writeTo(com.google.protobuf.CodedOutputStream output)
      method getSerializedSize (line 194) | public int getSerializedSize() {
      method writeReplace (line 209) | @java.lang.Override
      method parseFrom (line 215) | public static persons.ProtocolBuffer.Person parseFrom(
      method parseFrom (line 220) | public static persons.ProtocolBuffer.Person parseFrom(
      method parseFrom (line 226) | public static persons.ProtocolBuffer.Person parseFrom(byte[] data)
      method parseFrom (line 230) | public static persons.ProtocolBuffer.Person parseFrom(
      method parseFrom (line 236) | public static persons.ProtocolBuffer.Person parseFrom(java.io.InputS...
      method parseFrom (line 240) | public static persons.ProtocolBuffer.Person parseFrom(
      method parseDelimitedFrom (line 246) | public static persons.ProtocolBuffer.Person parseDelimitedFrom(java....
      method parseDelimitedFrom (line 250) | public static persons.ProtocolBuffer.Person parseDelimitedFrom(
      method parseFrom (line 256) | public static persons.ProtocolBuffer.Person parseFrom(
      method parseFrom (line 261) | public static persons.ProtocolBuffer.Person parseFrom(
      method newBuilder (line 268) | public static Builder newBuilder() { return Builder.create(); }
      method newBuilderForType (line 269) | public Builder newBuilderForType() { return newBuilder(); }
      method newBuilder (line 270) | public static Builder newBuilder(persons.ProtocolBuffer.Person proto...
      method toBuilder (line 273) | public Builder toBuilder() { return newBuilder(this); }
      method newBuilderForType (line 275) | @java.lang.Override
      class Builder (line 284) | public static final class Builder extends
        method getDescriptor (line 287) | public static final com.google.protobuf.Descriptors.Descriptor
        method internalGetFieldAccessorTable (line 292) | protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        method Builder (line 300) | private Builder() {
        method Builder (line 304) | private Builder(
        method maybeForceBuilderInitialization (line 309) | private void maybeForceBuilderInitialization() {
        method create (line 313) | private static Builder create() {
        method clear (line 317) | public Builder clear() {
        method clone (line 324) | public Builder clone() {
        method getDescriptorForType (line 328) | public com.google.protobuf.Descriptors.Descriptor
        method getDefaultInstanceForType (line 333) | public persons.ProtocolBuffer.Person getDefaultInstanceForType() {
        method build (line 337) | public persons.ProtocolBuffer.Person build() {
        method buildPartial (line 345) | public persons.ProtocolBuffer.Person buildPartial() {
        method mergeFrom (line 358) | public Builder mergeFrom(com.google.protobuf.Message other) {
        method mergeFrom (line 367) | public Builder mergeFrom(persons.ProtocolBuffer.Person other) {
        method isInitialized (line 378) | public final boolean isInitialized() {
        method mergeFrom (line 386) | public Builder mergeFrom(
        method hasName (line 410) | public boolean hasName() {
        method getName (line 416) | public java.lang.String getName() {
        method getNameBytes (line 430) | public com.google.protobuf.ByteString
        method setName (line 446) | public Builder setName(
        method clearName (line 459) | public Builder clearName() {
        method setNameBytes (line 468) | public Builder setNameBytes(
    method getDescriptor (line 496) | public static com.google.protobuf.Descriptors.FileDescriptor
    method assignDescriptors (line 509) | public com.google.protobuf.ExtensionRegistry assignDescriptors(

FILE: src/test/resources/samples/langs/Java/clojure-type.java
  class Type (line 42) | public class Type{
    method Type (line 179) | private Type(final int sort){
    method Type (line 192) | private Type(final int sort, final char[] buf, final int off, final in...
    method getType (line 205) | public static Type getType(final String typeDescriptor){
    method getType (line 215) | public static Type getType(final Class c){
    method getObjectType (line 270) | public static Type getObjectType(String name){
    method getArgumentTypes (line 287) | public static Type[] getArgumentTypes(final String methodDescriptor){
    method getArgumentTypes (line 330) | public static Type[] getArgumentTypes(final Method method){
    method getReturnType (line 348) | public static Type getReturnType(final String methodDescriptor){
    method getReturnType (line 361) | public static Type getReturnType(final Method method){
    method getType (line 372) | private static Type getType(final char[] buf, final int off){
    method getSort (line 433) | public int getSort(){
    method getDimensions (line 443) | public int getDimensions(){
    method getElementType (line 458) | public Type getElementType(){
    method getClassName (line 467) | public String getClassName(){
    method getInternalName (line 508) | public String getInternalName(){
    method getDescriptor (line 521) | public String getDescriptor(){
    method getMethodDescriptor (line 536) | public static String getMethodDescriptor(
    method getDescriptor (line 556) | private void getDescriptor(final StringBuffer buf){
    method getInternalName (line 605) | public static String getInternalName(final Class c){
    method getDescriptor (line 615) | public static String getDescriptor(final Class c){
    method getConstructorDescriptor (line 627) | public static String getConstructorDescriptor(final Constructor c){
    method getMethodDescriptor (line 644) | public static String getMethodDescriptor(final Method m){
    method getDescriptor (line 663) | private static void getDescriptor(final StringBuffer buf, final Class c){
    method getSize (line 740) | public int getSize(){
    method getOpcode (line 754) | public int getOpcode(final int opcode){
    method equals (line 816) | public boolean equals(final Object o){
    method hashCode (line 852) | public int hashCode(){
    method toString (line 869) | public String toString(){

FILE: src/test/resources/samples/langs/Java/clojure-util.java
  class Util (line 22) | public class Util{
    method equiv (line 23) | static public boolean equiv(Object k1, Object k2){
    method equiv (line 37) | static public boolean equiv(long k1, long k2){
    method equiv (line 41) | static public boolean equiv(Object k1, long k2){
    method equiv (line 45) | static public boolean equiv(long k1, Object k2){
    method equiv (line 49) | static public boolean equiv(double k1, double k2){
    method equiv (line 53) | static public boolean equiv(Object k1, double k2){
    method equiv (line 57) | static public boolean equiv(double k1, Object k2){
    method equiv (line 61) | static public boolean equiv(boolean k1, boolean k2){
    method equiv (line 65) | static public boolean equiv(Object k1, boolean k2){
    method equiv (line 69) | static public boolean equiv(boolean k1, Object k2){
    method equiv (line 73) | static public boolean equiv(char c1, char c2) {
    method pcequiv (line 77) | static public boolean pcequiv(Object k1, Object k2){
    method equals (line 83) | static public boolean equals(Object k1, Object k2){
    method identical (line 89) | static public boolean identical(Object k1, Object k2){
    method classOf (line 93) | static public Class classOf(Object x){
    method compare (line 99) | static public int compare(Object k1, Object k2){
    method hash (line 113) | static public int hash(Object o){
    method hasheq (line 119) | static public int hasheq(Object o){
    method hashCombine (line 129) | static public int hashCombine(int seed, int hash){
    method isPrimitive (line 135) | static public boolean isPrimitive(Class c){
    method isInteger (line 139) | static public boolean isInteger(Object x){
    method ret1 (line 146) | static public Object ret1(Object ret, Object nil){
    method ret1 (line 150) | static public ISeq ret1(ISeq ret, Object nil){
    method clearCache (line 154) | static public <K,V> void clearCache(ReferenceQueue rq, ConcurrentHashM...
    method runtimeException (line 169) | static public RuntimeException runtimeException(String s){
    method runtimeException (line 173) | static public RuntimeException runtimeException(String s, Throwable e){
    method sneakyThrow (line 183) | static public RuntimeException sneakyThrow(Throwable t) {
    method sneakyThrow0 (line 191) | @SuppressWarnings("unchecked")

FILE: src/test/resources/samples/langs/Java/gen-java-linguist-thrift.java
  class PullRequest (line 34) | @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
    type _Fields (line 50) | public enum _Fields implements org.apache.thrift.TFieldIdEnum {
      method findByThriftId (line 64) | public static _Fields findByThriftId(int fieldId) {
      method findByThriftIdOrThrow (line 77) | public static _Fields findByThriftIdOrThrow(int fieldId) {
      method findByName (line 86) | public static _Fields findByName(String name) {
      method _Fields (line 93) | _Fields(short thriftId, String fieldName) {
      method getThriftFieldId (line 98) | public short getThriftFieldId() {
      method getFieldName (line 102) | public String getFieldName() {
    method PullRequest (line 117) | public PullRequest() {
    method PullRequest (line 120) | public PullRequest(
    method PullRequest (line 130) | public PullRequest(PullRequest other) {
    method deepCopy (line 136) | public PullRequest deepCopy() {
    method clear (line 140) | @Override
    method getTitle (line 145) | public String getTitle() {
    method setTitle (line 149) | public PullRequest setTitle(String title) {
    method unsetTitle (line 154) | public void unsetTitle() {
    method isSetTitle (line 159) | public boolean isSetTitle() {
    method setTitleIsSet (line 163) | public void setTitleIsSet(boolean value) {
    method setFieldValue (line 169) | public void setFieldValue(_Fields field, Object value) {
    method getFieldValue (line 182) | public Object getFieldValue(_Fields field) {
    method isSet (line 192) | public boolean isSet(_Fields field) {
    method equals (line 204) | @Override
    method equals (line 213) | public boolean equals(PullRequest that) {
    method hashCode (line 229) | @Override
    method compareTo (line 241) | @Override
    method fieldForId (line 262) | public _Fields fieldForId(int fieldId) {
    method read (line 266) | public void read(org.apache.thrift.protocol.TProtocol iprot) throws or...
    method write (line 270) | public void write(org.apache.thrift.protocol.TProtocol oprot) throws o...
    method toString (line 274) | @Override
    method validate (line 290) | public void validate() throws org.apache.thrift.TException {
    method writeObject (line 295) | private void writeObject(java.io.ObjectOutputStream out) throws java.i...
    method readObject (line 303) | private void readObject(java.io.ObjectInputStream in) throws java.io.I...
    class PullRequestStandardSchemeFactory (line 311) | private static class PullRequestStandardSchemeFactory implements Schem...
      method getScheme (line 312) | public PullRequestStandardScheme getScheme() {
    class PullRequestStandardScheme (line 317) | private static class PullRequestStandardScheme extends StandardScheme<...
      method read (line 319) | public void read(org.apache.thrift.protocol.TProtocol iprot, PullReq...
      method write (line 348) | public void write(org.apache.thrift.protocol.TProtocol oprot, PullRe...
    class PullRequestTupleSchemeFactory (line 363) | private static class PullRequestTupleSchemeFactory implements SchemeFa...
      method getScheme (line 364) | public PullRequestTupleScheme getScheme() {
    class PullRequestTupleScheme (line 369) | private static class PullRequestTupleScheme extends TupleScheme<PullRe...
      method write (line 371) | @Override
      method read (line 384) | @Override

FILE: src/test/resources/samples/langs/JavaScript/bootstrap-modal.js
  function hideWithTransition (line 109) | function hideWithTransition() {
  function hideModal (line 122) | function hideModal(that) {
  function backdrop (line 130) | function backdrop(callback) {
  function removeBackdrop (line 164) | function removeBackdrop() {
  function escape (line 169) | function escape() {

FILE: src/test/resources/samples/langs/JavaScript/ccalc-lex.js
  function JisonLexerError (line 7) | function JisonLexerError(msg, hash) {

FILE: src/test/resources/samples/langs/JavaScript/ccalc-parse.js
  function JisonParserError (line 268) | function JisonParserError(msg, hash) {
  function bp (line 318) | function bp(s) {
  function bt (line 334) | function bt(s) {
  function s (line 373) | function s(c, l, a) {
  function c (line 383) | function c(i, l) {
  function u (line 391) | function u(a) {
  function lex (line 1050) | function lex() {
  function locateNearestErrorRecoveryRule (line 1072) | function locateNearestErrorRecoveryRule(state) {
  function JisonLexerError (line 1409) | function JisonLexerError(msg, hash) {
  function Parser (line 2126) | function Parser() {

FILE: src/test/resources/samples/langs/JavaScript/classes-old.js
  function ctor (line 5) | function ctor() { this.constructor = child; }
  function Animal (line 12) | function Animal(name) {
  function Snake (line 22) | function Snake() {
  function Horse (line 33) | function Horse() {

FILE: src/test/resources/samples/langs/JavaScript/classes.js
  function ctor (line 5) | function ctor() { this.constructor = child; }
  function Animal (line 11) | function Animal(name) {
  function Snake (line 29) | function Snake() {
  function Horse (line 48) | function Horse() {

FILE: src/test/resources/samples/langs/JavaScript/constant_fold.mjs
  constant NEG_ZERO (line 91) | const NEG_ZERO = Object.freeze({
  constant INFINITY (line 101) | const INFINITY = Object.freeze({
  constant NEG_INFINITY (line 116) | const NEG_INFINITY = Object.freeze({
  constant EMPTY (line 127) | const EMPTY = Object.freeze({
  constant NULL (line 131) | const NULL = Object.freeze({
  constant NAN (line 136) | const NAN = Object.freeze({
  constant UNDEFINED (line 151) | const UNDEFINED = Object.freeze({
  constant CONSTEXPRS (line 268) | const CONSTEXPRS = new Map();
  constant FOLD_EMPTY (line 348) | const FOLD_EMPTY = function*(path) {
  constant FOLD_TEMPLATE (line 363) | const FOLD_TEMPLATE = function*(path) {
  constant FOLD_EXPR_STMT (line 378) | const FOLD_EXPR_STMT = function*(path) {
  constant FOLD_WHILE (line 422) | const FOLD_WHILE = function*(path) {
  constant FOLD_IF (line 471) | const FOLD_IF = function*(path) {
  constant FOLD_SEQUENCE (line 560) | const FOLD_SEQUENCE = function*(path) {
  constant FOLD_LOGICAL (line 576) | const FOLD_LOGICAL = function*(path) {
  constant FOLD_SWITCH (line 597) | const FOLD_SWITCH = function*(path) {
  constant FOLD_UNREACHABLE (line 637) | const FOLD_UNREACHABLE = function*(path) {
  constant FOLD_CONDITIONAL (line 649) | const FOLD_CONDITIONAL = function*(path) {
  constant FOLD_BINARY (line 663) | const FOLD_BINARY = function*(path) {
  constant FOLD_UNARY (line 752) | const FOLD_UNARY = function*(path) {
  constant FOLD_EVAL (line 782) | const FOLD_EVAL = function*(path) {
  constant FOLD_MEMBER (line 797) | const FOLD_MEMBER = function*(path) {
  constant MIN_TRUE (line 847) | const MIN_TRUE = Object.freeze({
  constant MIN_FALSE (line 857) | const MIN_FALSE = Object.freeze({
  constant MIN_REPLACEMENTS (line 867) | const MIN_REPLACEMENTS = new Map;
  constant MIN_VALUES (line 870) | const MIN_VALUES = function*(path) {
  method inputs (line 902) | *inputs(path) {
  method inputs (line 929) | *inputs(path) {

FILE: src/test/resources/samples/langs/JavaScript/entry.mjs
  function foo (line 2) | function foo() {

FILE: src/test/resources/samples/langs/JavaScript/http.js
  function parserOnHeaders (line 45) | function parserOnHeaders(headers, url) {
  function parserOnHeadersComplete (line 59) | function parserOnHeadersComplete(info) {
  function parserOnBody (line 117) | function parserOnBody(b, start, len) {
  function parserOnMessageComplete (line 127) | function parserOnMessageComplete() {
  function utcDate (line 252) | function utcDate() {
  function IncomingMessage (line 265) | function IncomingMessage(socket) {
  function OutgoingMessage (line 431) | function OutgoingMessage() {
  function store (line 547) | function store(field, value) {
  function ServerResponse (line 886) | function ServerResponse(req) {
  function onServerResponseClose (line 905) | function onServerResponseClose() {
  function Agent (line 1024) | function Agent(options) {
  function ClientRequest (line 1132) | function ClientRequest(options, cb) {
  function createHangUpError (line 1250) | function createHangUpError() {
  function freeParser (line 1263) | function freeParser(parser, req) {
  function socketCloseListener (line 1283) | function socketCloseListener() {
  function socketErrorListener (line 1311) | function socketErrorListener(err) {
  function socketOnEnd (line 1331) | function socketOnEnd() {
  function socketOnData (line 1349) | function socketOnData(d, start, end) {
  function parserOnIncomingClient (line 1398) | function parserOnIncomingClient(res, shouldKeepAlive) {
  function responseOnEnd (line 1452) | function responseOnEnd() {
  function emitTimeout (line 1542) | function emitTimeout() {
  function ondrain (line 1593) | function ondrain() {
  function httpSocketSetup (line 1598) | function httpSocketSetup(socket) {
  function Server (line 1604) | function Server(requestListener) {
  function connectionListener (line 1630) | function connectionListener(socket) {
  function Client (line 1792) | function Client(port, host) {

FILE: src/test/resources/samples/langs/JavaScript/jquery-1.6.1.js
  function jQuerySub (line 849) | function jQuerySub( selector, context ) {
  function doScrollCheck (line 915) | function doScrollCheck() {
  function resolveFunc (line 1106) | function resolveFunc( i ) {
  function dataAttr (line 1661) | function dataAttr( elem, key, data ) {
  function isEmptyDataObject (line 1693) | function isEmptyDataObject( obj ) {
  function handleQueueMarkDefer (line 1706) | function handleQueueMarkDefer( elem, type, src ) {
  function resolve (line 1856) | function resolve() {
  function returnFalse (line 3094) | function returnFalse() {
  function returnTrue (line 3097) | function returnTrue() {
  function trigger (line 3346) | function trigger( type, elem, args ) {
  function handler (line 3381) | function handler( donor ) {
  function liveHandler (line 3585) | function liveHandler( event ) {
  function liveConvert (line 3673) | function liveConvert( type, selector ) {
  function dirNodeCheck (line 4988) | function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function dirCheck (line 5021) | function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function isDisconnected (line 5296) | function isDisconnected( node ) {
  function winnow (line 5418) | function winnow( elements, qualifier, keep ) {
  function root (line 5798) | function root( elem, cur ) {
  function cloneCopyEvent (line 5805) | function cloneCopyEvent( src, dest ) {
  function cloneFixAttributes (line 5834) | function cloneFixAttributes( src, dest ) {
  function getAll (line 5953) | function getAll( elem ) {
  function fixDefaultChecked (line 5966) | function fixDefaultChecked( elem ) {
  function findInputs (line 5972) | function findInputs( elem ) {
  function evalScript (line 6186) | function evalScript( i, elem ) {
  function getWH (line 6543) | function getWH( elem, name, extra ) {
  function addToPrefiltersOrTransports (line 6643) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 6679) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function done (line 7045) | function done( status, statusText, responses, headers ) {
  function buildParams (line 7357) | function buildParams( prefix, obj, traditional, add ) {
  function ajaxHandleResponses (line 7407) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 7472) | function ajaxConvert( s, response ) {
  function createStandardXHR (line 7738) | function createStandardXHR() {
  function createActiveXHR (line 7744) | function createActiveXHR() {
  function createFxNow (line 8226) | function createFxNow() {
  function clearFxNow (line 8231) | function clearFxNow() {
  function genFx (line 8236) | function genFx( type, num ) {
  function t (line 8347) | function t( gotoEnd ) {
  function defaultDisplay (line 8515) | function defaultDisplay( nodeName ) {
  function getWindow (line 8859) | function getWindow( elem ) {

FILE: src/test/resources/samples/langs/JavaScript/jquery-1.7.2.js
  function jQuerySub (line 897) | function jQuerySub( selector, context ) {
  function doScrollCheck (line 963) | function doScrollCheck() {
  function createFlags (line 990) | function createFlags( flags ) {
  function resolveFunc (line 1325) | function resolveFunc( i ) {
  function progressFunc (line 1333) | function progressFunc( i ) {
  function dataAttr (line 1985) | function dataAttr( elem, key, data ) {
  function isEmptyDataObject (line 2016) | function isEmptyDataObject( obj ) {
  function handleQueueMarkDefer (line 2034) | function handleQueueMarkDefer( elem, type, src ) {
  function resolve (line 2193) | function resolve() {
  function returnFalse (line 3546) | function returnFalse() {
  function returnTrue (line 3549) | function returnTrue() {
  function dirNodeCheck (line 5260) | function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function dirCheck (line 5293) | function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function isDisconnected (line 5566) | function isDisconnected( node ) {
  function winnow (line 5683) | function winnow( elements, qualifier, keep ) {
  function createSafeFragment (line 5720) | function createSafeFragment( document ) {
  function root (line 6092) | function root( elem, cur ) {
  function cloneCopyEvent (line 6099) | function cloneCopyEvent( src, dest ) {
  function cloneFixAttributes (line 6127) | function cloneFixAttributes( src, dest ) {
  function getAll (line 6272) | function getAll( elem ) {
  function fixDefaultChecked (line 6285) | function fixDefaultChecked( elem ) {
  function findInputs (line 6291) | function findInputs( elem ) {
  function shimCloneNode (line 6302) | function shimCloneNode( elem ) {
  function getWidthOrHeight (line 6793) | function getWidthOrHeight( elem, name, extra ) {
  function addToPrefiltersOrTransports (line 7034) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 7070) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 7112) | function ajaxExtend( target, src ) {
  function done (line 7454) | function done( status, nativeStatusText, responses, headers ) {
  function buildParams (line 7769) | function buildParams( prefix, obj, traditional, add ) {
  function ajaxHandleResponses (line 7819) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 7884) | function ajaxConvert( s, response ) {
  function createStandardXHR (line 8149) | function createStandardXHR() {
  function createActiveXHR (line 8155) | function createActiveXHR() {
  function doAnimation (line 8494) | function doAnimation() {
  function stopQueue (line 8650) | function stopQueue( elem, data, index ) {
  function createFxNow (line 8692) | function createFxNow() {
  function clearFxNow (line 8697) | function clearFxNow() {
  function genFx (line 8702) | function genFx( type, num ) {
  function t (line 8817) | function t( gotoEnd ) {
  function defaultDisplay (line 9015) | function defaultDisplay( nodeName ) {
  function getWindow (line 9299) | function getWindow( elem ) {

FILE: src/test/resources/samples/langs/JavaScript/json2_backbone.js
  function f (line 2) | function f(n){return n<10?"0"+n:n}
  function quote (line 2) | function quote(string){escapable.lastIndex=0;return escapable.test(strin...
  function str (line 2) | function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[...
  function walk (line 2) | function walk(holder,key){var k,v,value=holder[key];if(value&&typeof val...

FILE: src/test/resources/samples/langs/JavaScript/modernizr.js
  function isEventSupported (line 184) | function isEventSupported( eventName, element ) {
  function setCss (line 266) | function setCss( str ) {
  function setCssAll (line 273) | function setCssAll( str1, str2 ) {
  function is (line 280) | function is( obj, type ) {
  function contains (line 287) | function contains( str, substr ) {
  function testProps (line 304) | function testProps( props, prefixed ) {
  function testDOMProps (line 319) | function testDOMProps( props, obj, elem ) {
  function testPropsAll (line 347) | function testPropsAll( prop, prefixed, elem ) {
  function webforms (line 817) | function webforms() {
  function addStyleSheet (line 1038) | function addStyleSheet(ownerDocument, cssText) {
  function getElements (line 1051) | function getElements() {
  function shivMethods (line 1061) | function shivMethods(ownerDocument) {
  function shivDocument (line 1114) | function shivDocument(ownerDocument) {

FILE: src/test/resources/samples/langs/JavaScript/namespace.js
  function Namespace (line 16) | function Namespace() {}

FILE: src/test/resources/samples/langs/JavaScript/parser.js
  function quote (line 8) | function quote(s) {
  function padLeft (line 111) | function padLeft(input, padding, length) {
  function escape (line 122) | function escape(ch) {
  function matchFailed (line 138) | function matchFailed(failure) {
  function parse_grammar (line 151) | function parse_grammar() {
  function parse_initializer (line 202) | function parse_initializer() {
  function parse_rule (line 236) | function parse_rule() {
  function parse_choice (line 291) | function parse_choice() {
  function parse_sequence (line 363) | function parse_sequence() {
  function parse_labeled (line 430) | function parse_labeled() {
  function parse_prefixed (line 473) | function parse_prefixed() {
  function parse_suffixed (line 593) | function parse_suffixed() {
  function parse_primary (line 685) | function parse_primary() {
  function parse_action (line 786) | function 
Copy disabled (too large) Download .json
Condensed preview — 2930 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (23,861K chars).
[
  {
    "path": ".gitattributes",
    "chars": 47,
    "preview": "src/test/resources/samples/* linguist-vendored\n"
  },
  {
    "path": ".gitignore",
    "chars": 285,
    "preview": ".DS_Store\n.gradle/\n.idea/\n.sourcerer\nbuild/\nsourcerer-app.iml\nsourcerer-app.ipr\nsourcerer-app.iws\napp.iml\napp.ipr\napp.iw"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 1407,
    "preview": "# Contributor Code of Conduct\n\nAs contributors and maintainers of this project, we pledge to respect all people who cont"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 2182,
    "preview": "# Contribution\n\nWe welcome contributions to [Sourcerer App](https://github.com/sourcerer-io/sourcerer-app) by the commun"
  },
  {
    "path": "Dockerfile",
    "chars": 168,
    "preview": "FROM nginx:1.13\n\nCOPY deploy/default.conf /etc/nginx/conf.d\n\nRUN mkdir /files\nCOPY build/libs/sourcerer-app.jar /files/d"
  },
  {
    "path": "LICENSE.md",
    "chars": 1076,
    "preview": "Copyright 2017 Sourcerer, Inc. https://sourcerer.io\n\nPermission is hereby granted, free of charge, to any person obtaini"
  },
  {
    "path": "README.md",
    "chars": 7957,
    "preview": "<h1 style=\"font-weight:normal\">\n  <a href=\"https://sourcerer.io\">\n    <img src=https://user-images.githubusercontent.com"
  },
  {
    "path": "build.gradle",
    "chars": 5160,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n\nbuildscript {\n    ext.kotlin_version = '1.2.31'\n    repositories "
  },
  {
    "path": "deploy/GradleDockerfile",
    "chars": 47,
    "preview": "FROM gradle:4.2.0\n\nUSER root\nWORKDIR /root/app\n"
  },
  {
    "path": "deploy/Jenkinsfile",
    "chars": 1494,
    "preview": "// Copyright 2017 Sourcerer, Inc. All Rights Reserved.\n// Author: Maxim Rusak (maxim@sourcerer.io)\n\ndef label = \"sourcer"
  },
  {
    "path": "deploy/default.conf",
    "chars": 267,
    "preview": "geo $dollar {\n    default \"$\";\n}\n\nserver {\n  listen       80 default_server;\n  server_name  _;\n\n  location /install {\n  "
  },
  {
    "path": "deploy/production_env.sh",
    "chars": 20,
    "preview": "export REPLICAS=\"2\"\n"
  },
  {
    "path": "deploy/sandbox_env.sh",
    "chars": 20,
    "preview": "export REPLICAS=\"1\"\n"
  },
  {
    "path": "deploy/sourcerer-app.yaml",
    "chars": 608,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: sourcerer-app\n  labels:\n    app: sourcerer-app\nspec:\n  type: ClusterIP\n  "
  },
  {
    "path": "deploy/staging_env.sh",
    "chars": 20,
    "preview": "export REPLICAS=\"0\"\n"
  },
  {
    "path": "do.sh",
    "chars": 1876,
    "preview": "#!/bin/bash\n\n# Copyright 2017 Sourcerer, Inc. All Rights Reserved.\n# Author: Maxim Rusak (maxim@sourcerer.io)\n\nset -x\n\nf"
  },
  {
    "path": "src/install/install",
    "chars": 3085,
    "preview": "#!/usr/bin/env bash\n# Copyright 2017 Sourcerer, Inc. All Rights Reserved.\n# License: MIT, https://github.com/sourcerer-i"
  },
  {
    "path": "src/main/kotlin/app/Analytics.kt",
    "chars": 4159,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app\n\nimp"
  },
  {
    "path": "src/main/kotlin/app/FactCodes.kt",
    "chars": 1476,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/main/kotlin/app/Logger.kt",
    "chars": 7458,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app\n\nimp"
  },
  {
    "path": "src/main/kotlin/app/Main.kt",
    "chars": 6898,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app\n\nimp"
  },
  {
    "path": "src/main/kotlin/app/api/Api.kt",
    "chars": 1232,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.api\n"
  },
  {
    "path": "src/main/kotlin/app/api/ApiError.kt",
    "chars": 2253,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.api\n"
  },
  {
    "path": "src/main/kotlin/app/api/MockApi.kt",
    "chars": 3571,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.api\n"
  },
  {
    "path": "src/main/kotlin/app/api/Result.kt",
    "chars": 413,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.api\n"
  },
  {
    "path": "src/main/kotlin/app/api/ServerApi.kt",
    "chars": 7832,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.api\n"
  },
  {
    "path": "src/main/kotlin/app/config/Config.kt",
    "chars": 1211,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.conf"
  },
  {
    "path": "src/main/kotlin/app/config/Configurator.kt",
    "chars": 885,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.conf"
  },
  {
    "path": "src/main/kotlin/app/config/FileConfigurator.kt",
    "chars": 7763,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.conf"
  },
  {
    "path": "src/main/kotlin/app/config/MockConfigurator.kt",
    "chars": 2329,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.conf"
  },
  {
    "path": "src/main/kotlin/app/extractors/CExtractor.kt",
    "chars": 1450,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/CSharpExtractor.kt",
    "chars": 1334,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/ClassifierManager.kt",
    "chars": 5977,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/CommonExtractor.kt",
    "chars": 423,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.extr"
  },
  {
    "path": "src/main/kotlin/app/extractors/CppExtractor.kt",
    "chars": 2498,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/CrystalExtractor.kt",
    "chars": 1651,
    "preview": "// Copyright 2019 Sourcerer Inc. All Rights Reserved.\n// Author: Anton Maminov (anton.maminov@gmail.com)\n\npackage app.ex"
  },
  {
    "path": "src/main/kotlin/app/extractors/CssExtractor.kt",
    "chars": 1558,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/DMExtractor.kt",
    "chars": 1521,
    "preview": "// Copyright 2019 Sourcerer Inc. All Rights Reserved.\n// Author: Nickolas Gupton (nickolas@gupton.xyz)\n\npackage app.extr"
  },
  {
    "path": "src/main/kotlin/app/extractors/DartExtractor.kt",
    "chars": 297,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/DevopsExtractor.kt",
    "chars": 1050,
    "preview": "// Copyright 2019 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.extr"
  },
  {
    "path": "src/main/kotlin/app/extractors/ElixirExtractor.kt",
    "chars": 317,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/Extractor.kt",
    "chars": 752,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/main/kotlin/app/extractors/ExtractorBase.kt",
    "chars": 1299,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/ExtractorInterface.kt",
    "chars": 5064,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/main/kotlin/app/extractors/FSharpExtractor.kt",
    "chars": 1447,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Tuomas Hietanen\n// Author: Liubov Yaronskaya (lyaronska"
  },
  {
    "path": "src/main/kotlin/app/extractors/GoExtractor.kt",
    "chars": 1878,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/Heuristics.kt",
    "chars": 31881,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/IPythonExtractor.kt",
    "chars": 2018,
    "preview": "// Copyright 2019 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n\npackage a"
  },
  {
    "path": "src/main/kotlin/app/extractors/JavaExtractor.kt",
    "chars": 3223,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/main/kotlin/app/extractors/JavascriptExtractor.kt",
    "chars": 3354,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/KotlinExtractor.kt",
    "chars": 1492,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/Languages.kt",
    "chars": 4741,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/ObjectiveCExtractor.kt",
    "chars": 1389,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/PerlExtractor.kt",
    "chars": 577,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/PhpExtractor.kt",
    "chars": 1417,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/PlpgsqlExtractor.kt",
    "chars": 341,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/PythonExtractor.kt",
    "chars": 3348,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/RubyExtractor.kt",
    "chars": 2107,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/RustExtractor.kt",
    "chars": 1100,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/ScalaExtractor.kt",
    "chars": 345,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.extra"
  },
  {
    "path": "src/main/kotlin/app/extractors/SwiftExtractor.kt",
    "chars": 348,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/extractors/TypescriptExtractor.kt",
    "chars": 1304,
    "preview": "// Copyright 2019 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n\npackage a"
  },
  {
    "path": "src/main/kotlin/app/hashers/AuthorDistanceHasher.kt",
    "chars": 2181,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n\npackage a"
  },
  {
    "path": "src/main/kotlin/app/hashers/CodeLongevity.kt",
    "chars": 20466,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n// Author: Anatoly"
  },
  {
    "path": "src/main/kotlin/app/hashers/CommitCrawler.kt",
    "chars": 14739,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/main/kotlin/app/hashers/CommitHasher.kt",
    "chars": 3911,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.hash"
  },
  {
    "path": "src/main/kotlin/app/hashers/FactHasher.kt",
    "chars": 9362,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/main/kotlin/app/hashers/MetaHasher.kt",
    "chars": 4046,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/kotlin/app/hashers/RepoHasher.kt",
    "chars": 7649,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.hash"
  },
  {
    "path": "src/main/kotlin/app/hashers/Vendors.kt",
    "chars": 8973,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io),\n\n// Inspired by G"
  },
  {
    "path": "src/main/kotlin/app/model/Author.kt",
    "chars": 1318,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/AuthorDistance.kt",
    "chars": 1115,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n\npackage a"
  },
  {
    "path": "src/main/kotlin/app/model/AuthorDistanceGroup.kt",
    "chars": 1023,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n\npackage a"
  },
  {
    "path": "src/main/kotlin/app/model/AuthorGroup.kt",
    "chars": 881,
    "preview": "package app.model\n\nimport app.Protos\nimport com.google.protobuf.InvalidProtocolBufferException\nimport java.security.Inva"
  },
  {
    "path": "src/main/kotlin/app/model/Classifier.kt",
    "chars": 2264,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n\npackage a"
  },
  {
    "path": "src/main/kotlin/app/model/Commit.kt",
    "chars": 3400,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/CommitGroup.kt",
    "chars": 984,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/CommitStats.kt",
    "chars": 1237,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/DiffContent.kt",
    "chars": 475,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/DiffFile.kt",
    "chars": 612,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/DiffRange.kt",
    "chars": 261,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/Error.kt",
    "chars": 919,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/Errors.kt",
    "chars": 926,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/Fact.kt",
    "chars": 1362,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/FactGroup.kt",
    "chars": 962,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/LibraryMeta.kt",
    "chars": 2508,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/main/kotlin/app/model/LocalRepo.kt",
    "chars": 822,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/Process.kt",
    "chars": 1129,
    "preview": "package app.model\n\nimport app.Protos\nimport com.google.protobuf.InvalidProtocolBufferException\nimport java.security.Inva"
  },
  {
    "path": "src/main/kotlin/app/model/ProcessEntry.kt",
    "chars": 989,
    "preview": "package app.model\n\nimport app.Protos\nimport com.google.protobuf.InvalidProtocolBufferException\nimport java.security.Inva"
  },
  {
    "path": "src/main/kotlin/app/model/Repo.kt",
    "chars": 2082,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/RepoMeta.kt",
    "chars": 1417,
    "preview": "package app.model\n\nimport app.Protos\nimport com.google.protobuf.InvalidProtocolBufferException\nimport java.security.Inva"
  },
  {
    "path": "src/main/kotlin/app/model/User.kt",
    "chars": 1186,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/model/UserEmail.kt",
    "chars": 1546,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.mode"
  },
  {
    "path": "src/main/kotlin/app/ui/AddRepoState.kt",
    "chars": 2904,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/AuthState.kt",
    "chars": 3251,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/CloseState.kt",
    "chars": 656,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/ConsoleState.kt",
    "chars": 244,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/ConsoleUi.kt",
    "chars": 532,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/Context.kt",
    "chars": 217,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/EmailState.kt",
    "chars": 5248,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/ListRepoState.kt",
    "chars": 705,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/OpenState.kt",
    "chars": 1009,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/ui/UpdateRepoState.kt",
    "chars": 2956,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.ui\n\n"
  },
  {
    "path": "src/main/kotlin/app/utils/CommandAdd.kt",
    "chars": 856,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/CommandConfig.kt",
    "chars": 526,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/CommandList.kt",
    "chars": 328,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/CommandRemove.kt",
    "chars": 490,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/FileHelper.kt",
    "chars": 2028,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/HashingException.kt",
    "chars": 253,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/Metrics.kt",
    "chars": 2065,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage app.utils"
  },
  {
    "path": "src/main/kotlin/app/utils/Misc.kt",
    "chars": 826,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/Options.kt",
    "chars": 1230,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/PasswordHelper.kt",
    "chars": 859,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/RepoHelper.kt",
    "chars": 3445,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/RequestException.kt",
    "chars": 1263,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/kotlin/app/utils/UiHelper.kt",
    "chars": 585,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage app.util"
  },
  {
    "path": "src/main/proto/classifier.proto",
    "chars": 718,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/main/proto/sourcerer.proto",
    "chars": 3847,
    "preview": "// Copyright 2017 Sourcerer, Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubo"
  },
  {
    "path": "src/main/resources/data/imports/cpp.txt",
    "chars": 58,
    "preview": "opencv:opencv\nopencv2:opencv\nprotobuf:protobuf\npb:protobuf"
  },
  {
    "path": "src/main/resources/data/imports/python.txt",
    "chars": 20,
    "preview": "cv2:opencv\ncv:opencv"
  },
  {
    "path": "src/main/resources/data/libraries/cs_libraries.txt",
    "chars": 520,
    "preview": "Dapper\nMicrosoft.AspNet.SignalR\nNancy\nMicrosoft.EntityFrameworkCore\nAutoMapper\nNewtonsoft.Json\nMicrosoft.AspNetCore.Mvc\n"
  },
  {
    "path": "src/main/resources/data/libraries/java_libraries.txt",
    "chars": 4719,
    "preview": "io.reactivex\nretrofit2\nokhttp3\ncom.google.common\nbutterknife\ncom.github.mikephil.charting\ncom.bumptech.glide\ncom.squareu"
  },
  {
    "path": "src/main/resources/data/libraries/js_libraries.txt",
    "chars": 530,
    "preview": "react\nd3\nvue\nsvelte\nangular\njquery\nmeteor\nsocketio\nthree\nexpress\nredux\nmoment\nmaterial-ui\njquery-file-upload\nlodash\naxio"
  },
  {
    "path": "src/main/resources/data/libraries/kotlin_libraries.txt",
    "chars": 955,
    "preview": "com.winterbe.expekt\ncom.github.vassilibykov.adventkt\nme.lazmaid.kraph\ncom.github.kittinunf.fuel\nimgui\norg.mapdb\nuy.kohes"
  },
  {
    "path": "src/test/delete_repo.sh",
    "chars": 84,
    "preview": "for REPO_PATH in tmp_repo original_repo forked_repo; do \n    rm -rf $REPO_PATH\ndone\n"
  },
  {
    "path": "src/test/kotlin/test/tests/extractors/DirToLangMap.kt",
    "chars": 621,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage test.test"
  },
  {
    "path": "src/test/kotlin/test/tests/extractors/ExtractorTest.kt",
    "chars": 19689,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/test/kotlin/test/tests/extractors/HeuristicsTest.kt",
    "chars": 3459,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n// Author: Anatoly"
  },
  {
    "path": "src/test/kotlin/test/tests/extractors/IgnoredSamplesWildcards.kt",
    "chars": 9290,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage test.test"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/AuthorDistanceHasherTest.kt",
    "chars": 3285,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n\npackage t"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/CodeLongevityTest.kt",
    "chars": 21006,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n// Author: Anatoly"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/ColleaguesTest.kt",
    "chars": 5211,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage test.test"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/CommitHasherTest.kt",
    "chars": 20803,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/FactHasherTest.kt",
    "chars": 14636,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n// Author: Liubov"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/IgnorePathsTest.kt",
    "chars": 3449,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage test.test"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/IgnoreVendorsTest.kt",
    "chars": 3607,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n\npackage test.test"
  },
  {
    "path": "src/test/kotlin/test/tests/hashers/MetaHasherTest.kt",
    "chars": 4309,
    "preview": "// Copyright 2018 Sourcerer Inc. All Rights Reserved.\n// Author: Liubov Yaronskaya (lyaronskaya@sourcerer.io)\n// Author:"
  },
  {
    "path": "src/test/kotlin/test/tests/utils/FileHelperTest.kt",
    "chars": 852,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Ryan Osilla (ryan@sourcerer.io)\n\npackage test.tests.uti"
  },
  {
    "path": "src/test/kotlin/test/utils/FactHelper.kt",
    "chars": 1330,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Anatoly Kislov (anatoly@sourcerer.io)\n\npackage test.uti"
  },
  {
    "path": "src/test/kotlin/test/utils/TestRepo.kt",
    "chars": 3697,
    "preview": "// Copyright 2017 Sourcerer Inc. All Rights Reserved.\n// Author: Alexander Surkov (alex@sourcerer.io)\n// Author: Anatoly"
  },
  {
    "path": "src/test/resources/samples/devops/circleci/.circleci/config.yml",
    "chars": 337,
    "preview": "version: 2\njobs:\n  build:\n    docker:\n      - image: circleci/<language>:<version TAG>\n    steps:\n      - checkout\n     "
  },
  {
    "path": "src/test/resources/samples/devops/docker/Dockerfile",
    "chars": 146,
    "preview": "FROM python:3\nENV PYTHONUNBUFFERED 1\nRUN mkdir /code\nWORKDIR /code\nCOPY requirements.txt /code/\nRUN pip install -r requi"
  },
  {
    "path": "src/test/resources/samples/devops/docker/alpine.Dockerfile",
    "chars": 65,
    "preview": "FROM alpine:3.4\n\nRUN apk update\nRUN apk add vim\nRUN apk add curl\n"
  },
  {
    "path": "src/test/resources/samples/devops/docker/docker-compose.yml",
    "chars": 210,
    "preview": "version: '3'\n\nservices:\n  db:\n    image: postgres\n  web:\n    build: .\n    command: python manage.py runserver 0.0.0.0:80"
  },
  {
    "path": "src/test/resources/samples/devops/drone/.drone.yml",
    "chars": 261,
    "preview": "---\nkind: pipeline\nname: default\n\nplatform:\n  os: linux\n  arch: amd64\n\nsteps:\n- name: test\n  image: alpine:3.8\n  command"
  },
  {
    "path": "src/test/resources/samples/devops/github-actions/.github/workflows/ci.yml",
    "chars": 491,
    "preview": "name: Greet Everybody\n# This workflow is triggered on pushes to the repository.\non: [push]\n\njobs:\n  build:\n    # Job nam"
  },
  {
    "path": "src/test/resources/samples/devops/gitlab-ci/.gitlab-ci.yml",
    "chars": 1268,
    "preview": "image: \"dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-p"
  },
  {
    "path": "src/test/resources/samples/devops/jenkins/Jenkinsfile",
    "chars": 295,
    "preview": "node {\n\tstage 'Checkout'\n\t\tcheckout scm\n\n\tstage 'Build'\n\t\tbat 'nuget restore SolutionName.sln'\n\t\tbat \"\\\"${tool 'MSBuild'"
  },
  {
    "path": "src/test/resources/samples/devops/k8s/postgres-manifest.yaml",
    "chars": 373,
    "preview": "apiVersion: \"acid.zalan.do/v1\"\nkind: postgresql\nmetadata:\n  name: acid-minimal-cluster\n  namespace: default\nspec:\n  team"
  },
  {
    "path": "src/test/resources/samples/devops/k8s/rss-site.json",
    "chars": 438,
    "preview": "{\n  \"apiVersion\": \"v1\",\n  \"kind\": \"Pod\",\n  \"metadata\": {\n    \"name\": \"rss-site\",\n    \"labels\": {\n      \"app\": \"web\"\n    "
  },
  {
    "path": "src/test/resources/samples/devops/k8s/rss-site.yml",
    "chars": 283,
    "preview": "apiVersion: \"v1\"\nkind: \"Pod\"\nmetadata:\n  name: \"rss-site\"\n  labels:\n    app: \"web\"\nspec:\n  containers:\n  - name: \"front-"
  },
  {
    "path": "src/test/resources/samples/devops/travis/.travis.yml",
    "chars": 902,
    "preview": "sudo: required\n\nlanguage: ruby\n\nservices:\n  - docker\n\nbefore_install:\n  - echo \"Testing Docker Hub credentials\"\n  - dock"
  },
  {
    "path": "src/test/resources/samples/langs/1C Enterprise/Catalog.ИсходящиеПисьма.Form.ФормаЭлемента.Form.Module.bsl",
    "chars": 9464,
    "preview": "&НаСервереБезКонтекста\nФункция ПолучитьКонтактноеЛицоПоЭлектроннойПочте(ЭлектроннаяПочта)\n\tЗапрос = Новый Запрос;\n\tЗапро"
  },
  {
    "path": "src/test/resources/samples/langs/1C Enterprise/Catalog.Товары.Command.ПечатьПрайсЛиста.CommandModule.bsl",
    "chars": 2817,
    "preview": "&НаСервере\nФункция ПечатнаяФорма(ПараметрКоманды)\n\tТабличныйДокумент = Новый ТабличныйДокумент;\n\tТабличныйДокумент.Отобр"
  },
  {
    "path": "src/test/resources/samples/langs/1C Enterprise/CommonModule.ОбменМобильныеОбщее.Module.bsl",
    "chars": 3728,
    "preview": "// Процедура на основании анализа типа данных заменяет их на данные, удаляющие\n// информацию из узла в котором их не дол"
  },
  {
    "path": "src/test/resources/samples/langs/1C Enterprise/Document.РасходТовара.ObjectModule.bsl",
    "chars": 10425,
    "preview": "//////////////////////////////////////////////////////////////////////////////// \r\r\n// ПРОЦЕДУРЫ И ФУНКЦИИ\r\r\n//\r\r\n\r\r\n// "
  },
  {
    "path": "src/test/resources/samples/langs/1C Enterprise/ci_before_script.os",
    "chars": 586,
    "preview": "Каталог = ОбъединитьПути(ТекущийКаталог(), \"libs\\oscript-library\\src\");\nЗагрузчик_Оригинал_ИмяФайла = ОбъединитьПути(Ка"
  },
  {
    "path": "src/test/resources/samples/langs/1C Enterprise/test_canCompile.os",
    "chars": 948,
    "preview": "#Использовать \"../libs/oscript-library/src/v8runner\"\n#Использовать \"../libs/oscript-library/src/tempfiles\"\n\nПерем Лог;\n"
  },
  {
    "path": "src/test/resources/samples/langs/ABAP/cl_csv_parser.abap",
    "chars": 8238,
    "preview": "*/**\n* The MIT License (MIT)\n* Copyright (c) 2012 René van Mil\n* \n* Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "src/test/resources/samples/langs/AGS Script/GlobalScript.asc",
    "chars": 15905,
    "preview": "// main global script file\r\n\r\n// A function that initializes a bunch of stuff.\r\nfunction initialize_control_panel() { \r\n"
  },
  {
    "path": "src/test/resources/samples/langs/AGS Script/GlobalScript.ash",
    "chars": 221,
    "preview": "// Main header script - this will be included into every script in\r\n// the game (local and global). Do not place functio"
  },
  {
    "path": "src/test/resources/samples/langs/AGS Script/KeyboardMovement_102.asc",
    "chars": 9953,
    "preview": "// Main script for module 'KeyboardMovement'\r\n\r\n//**********************************************************************"
  },
  {
    "path": "src/test/resources/samples/langs/AGS Script/KeyboardMovement_102.ash",
    "chars": 307,
    "preview": "// Script header for module 'KeyboardMovement'\r\n\r\n#define KeyboardMovement_VERSION 101\r\n\r\nenum KeyboardMovement_Modes {\r"
  },
  {
    "path": "src/test/resources/samples/langs/AMPL/CT2.mod",
    "chars": 1917,
    "preview": "param num_beams;                  # number of beams\n\nparam num_rows >= 1, integer;     # number of rows\nparam num_cols >"
  },
  {
    "path": "src/test/resources/samples/langs/AMPL/toy.ampl",
    "chars": 448,
    "preview": "# A toy knapsack problem from the LocalSolver docs written in AMPL.\n\nset I;\nparam Value{I};\nparam Weight{I};\nparam Knaps"
  },
  {
    "path": "src/test/resources/samples/langs/API Blueprint/actions.apib",
    "chars": 1231,
    "preview": "FORMAT: 1A\n\n# Advanced Action API\nA resource action is – in fact – a state transition. This API example demonstrates an "
  },
  {
    "path": "src/test/resources/samples/langs/API Blueprint/attributes.apib",
    "chars": 1401,
    "preview": "FORMAT: 1A\n\n# Attributes API\nThis API example demonstrates how to describe body attributes of a request or response mess"
  },
  {
    "path": "src/test/resources/samples/langs/API Blueprint/simple.apib",
    "chars": 1105,
    "preview": "FORMAT: 1A\n\n# The Simplest API\nThis is one of the simplest APIs written in the **API Blueprint**.\nOne plain resource com"
  },
  {
    "path": "src/test/resources/samples/langs/APL/DeepakChopra.apl",
    "chars": 592,
    "preview": "⍝   You can try this at http://tryapl.org/\n⍝   I can not explain how much I suddenly love this crypto-language\n\n\n\nStarts"
  },
  {
    "path": "src/test/resources/samples/langs/APL/UT.dyalog",
    "chars": 9985,
    "preview": ":NameSpace UT\n\n    sac ← 0\n    expect_orig ← expect ← ⎕NS⍬\n    exception ← ⍬\n    nexpect_orig ← nexpect ← ⎕NS⍬\n\n    ∇ {"
  },
  {
    "path": "src/test/resources/samples/langs/APL/hashbang",
    "chars": 126,
    "preview": "#!/usr/local/bin/apl --script\nNEWLINE ← ⎕UCS 10\nHEADERS ← 'Content-Type: text/plain', NEWLINE\nHEADERS\n⍝ ⎕←HEADERS\n⍝ ⍕⎕TS"
  },
  {
    "path": "src/test/resources/samples/langs/ASN.1/example.asn",
    "chars": 852,
    "preview": "MyShopPurchaseOrders DEFINITIONS AUTOMATIC TAGS ::= BEGIN\n\nPurchaseOrder ::= SEQUENCE {\ndateOfOrder\tDATE,\ncustomer   \tCu"
  },
  {
    "path": "src/test/resources/samples/langs/ATS/CoYonedaLemma.dats",
    "chars": 2001,
    "preview": "(* ****** ****** *)\n//\n// HX-2014-01\n// CoYoneda Lemma:\n//\n(* ****** ****** *)\n//\n#include\n\"share/atspre_staload.hats\"\n/"
  },
  {
    "path": "src/test/resources/samples/langs/ATS/DiningPhil2.dats",
    "chars": 3323,
    "preview": "(* ****** ****** *)\n//\n// HX-2013-11\n//\n// Implementing a variant of\n// the problem of Dining Philosophers\n//\n(* ****** "
  },
  {
    "path": "src/test/resources/samples/langs/ATS/DiningPhil2.sats",
    "chars": 1102,
    "preview": "(* ****** ****** *)\n//\n// HX-2013-11\n//\n// Implementing a variant of\n// the problem of Dining Philosophers\n//\n(* ****** "
  },
  {
    "path": "src/test/resources/samples/langs/ATS/DiningPhil2_fork.dats",
    "chars": 1366,
    "preview": "(* ****** ****** *)\n//\n// HX-2013-11\n//\n// Implementing a variant of\n// the problem of Dining Philosophers\n//\n(* ****** "
  },
  {
    "path": "src/test/resources/samples/langs/ATS/DiningPhil2_thread.dats",
    "chars": 740,
    "preview": "(* ****** ****** *)\n//\n// HX-2013-11\n//\n// Implementing a variant of\n// the problem of Dining Philosophers\n//\n(* ****** "
  },
  {
    "path": "src/test/resources/samples/langs/ATS/YonedaLemma.dats",
    "chars": 3105,
    "preview": "(* ****** ****** *)\n//\n// HX-2014-01\n// Yoneda Lemma:\n// The hardest \"trivial\" theorem :)\n//\n(* ****** ****** *)\n//\n#inc"
  },
  {
    "path": "src/test/resources/samples/langs/ATS/basis_ssntype.sats",
    "chars": 6913,
    "preview": "(*\n* The MIT License (MIT)\n*\n* Copyright (c) 2014 Hongwei Xi\n*\n* Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "src/test/resources/samples/langs/ATS/csv_parse.hats",
    "chars": 3463,
    "preview": "(*\n* The MIT License (MIT)\n*\n* Copyright (c) 2014 Hongwei Xi\n*\n* Permission is hereby granted, free of charge, to any pe"
  },
  {
    "path": "src/test/resources/samples/langs/ATS/intinf_vt.dats",
    "chars": 13324,
    "preview": "(***********************************************************************)\n(*                                            "
  },
  {
    "path": "src/test/resources/samples/langs/ActionScript/FooBar.as",
    "chars": 475,
    "preview": "// A sample for Actionscript.\n\npackage foobar\n{\n\timport flash.display.MovieClip;\n\n\tclass Bar\n\t{\n\t\tpublic function getNum"
  },
  {
    "path": "src/test/resources/samples/langs/ActionScript/HelloWorld.as",
    "chars": 215,
    "preview": "package mypackage\n{\n\tpublic class Hello\n\t{\n\t\t/* Let's say hello!\n\t\t * This is just a test script for Linguist's Actionsc"
  },
  {
    "path": "src/test/resources/samples/langs/Adobe Font Metrics/OpenSansCondensed-Bold.afm",
    "chars": 2018,
    "preview": "StartFontMetrics 2.0\nComment Generated by FontForge 20170719\nComment Creation Date: Sun Jul 23 19:47:25 2017\nFontName Op"
  },
  {
    "path": "src/test/resources/samples/langs/Adobe Font Metrics/SpecialElite.afm",
    "chars": 16037,
    "preview": "StartFontMetrics 2.0\nComment Generated by FontForge 20170719\nComment Creation Date: Sun Jul 23 19:52:19 2017\nFontName Sp"
  },
  {
    "path": "src/test/resources/samples/langs/Adobe Font Metrics/lambda.afm",
    "chars": 677,
    "preview": "StartFontMetrics 2.0\nComment Generated by FontForge 20170719\nComment Creation Date: Sun Jul 23 23:14:02 2017\nFontName Gr"
  },
  {
    "path": "src/test/resources/samples/langs/Agda/NatCat.agda",
    "chars": 1239,
    "preview": "module NatCat where\r\n\r\nopen import Relation.Binary.PropositionalEquality\r\n\r\n-- If you can show that a relation only ever"
  },
  {
    "path": "src/test/resources/samples/langs/Alloy/file_system.als",
    "chars": 1180,
    "preview": "module examples/systems/file_system\n\n/*\n * Model of a generic file system.\n */\n\nabstract sig Object {}\n\nsig Name {}\n\nsig"
  },
  {
    "path": "src/test/resources/samples/langs/Alloy/marksweepgc.als",
    "chars": 1887,
    "preview": "module examples/systems/marksweepgc\n\n/*\n * Model of mark and sweep garbage collection.\n */\n\n// a node in the heap\nsig No"
  },
  {
    "path": "src/test/resources/samples/langs/Alloy/views.als",
    "chars": 6579,
    "preview": "module examples/systems/views\n\n/*\n * Model of views in object-oriented programming.\n *\n * Two object references, called "
  },
  {
    "path": "src/test/resources/samples/langs/Alpine Abuild/filenames/APKBUILD",
    "chars": 2015,
    "preview": "# Contributor: Natanael Copa <ncopa@alpinelinux.org>\n# Maintainer: Natanael Copa <ncopa@alpinelinux.org>\npkgname=abuild\n"
  },
  {
    "path": "src/test/resources/samples/langs/AngelScript/botmanager.as",
    "chars": 1609,
    "preview": "/*\n*\tThis is a sample script.\n*/\n\n#include \"BotManagerInterface.acs\"\n\nBotManager::BotManager g_BotManager( @CreateDumbBo"
  },
  {
    "path": "src/test/resources/samples/langs/AngelScript/payload.as",
    "chars": 8876,
    "preview": "// Sample script.\n// Source: https://github.com/codecat/ssbd-payload\n\narray<WorldScript::PayloadBeginTrigger@> g_payload"
  },
  {
    "path": "src/test/resources/samples/langs/Ant Build System/filenames/ant.xml",
    "chars": 4421,
    "preview": "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<project name=\"WebBuild\">\n\n    <!-- generate timestamps -->\n    <tstamp />\n\n"
  },
  {
    "path": "src/test/resources/samples/langs/Ant Build System/filenames/build.xml",
    "chars": 4421,
    "preview": "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<project name=\"WebBuild\">\n\n    <!-- generate timestamps -->\n    <tstamp />\n\n"
  },
  {
    "path": "src/test/resources/samples/langs/ApacheConf/apache.vhost",
    "chars": 409,
    "preview": "#######################\n# HOSTNAME\n######################\n\n<VirtualHost 127.0.0.1:PORT>\n    ServerAdmin patrick@heyspark"
  },
  {
    "path": "src/test/resources/samples/langs/ApacheConf/filenames/.htaccess",
    "chars": 1228,
    "preview": "ServerSignature Off\nRewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]\nRewriteCond %{THE_REQUEST} (\\\\r|\\\\n"
  },
  {
    "path": "src/test/resources/samples/langs/ApacheConf/filenames/apache2.conf",
    "chars": 17828,
    "preview": "# This is the main Apache HTTP server configuration file.  It contains the\n# configuration directives that give the serv"
  },
  {
    "path": "src/test/resources/samples/langs/ApacheConf/filenames/httpd.conf",
    "chars": 18045,
    "preview": "#\n# This is the main Apache HTTP server configuration file.  It contains the\n# configuration directives that give the se"
  },
  {
    "path": "src/test/resources/samples/langs/Apex/ArrayUtils.cls",
    "chars": 16458,
    "preview": "/* ============================================================\n * This code is part of the \"apex-lang\" open source proj"
  }
]

// ... and 2730 more files (download for full content)

About this extraction

This page contains the full source code of the sourcerer-io/sourcerer-app GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2930 files (21.2 MB), approximately 5.7M tokens, and a symbol index with 3335 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.

Copied to clipboard!