├── .Rbuildignore ├── .github ├── .gitignore └── workflows │ └── pkgdown.yaml ├── .gitignore ├── DESCRIPTION ├── LICENSE ├── LICENSE.md ├── NAMESPACE ├── R ├── calculate_features.R ├── check_vector_quality.R ├── data.R ├── init_theft.R ├── installs.R ├── process_hctsa_file.R ├── theft.R └── zzz.R ├── README.Rmd ├── README.md ├── README_files └── figure-gfm │ └── unnamed-chunk-4-1.png ├── _pkgdown.yml ├── data-raw ├── simData.R └── simData.csv ├── data ├── feature_list.rda └── simData.rda ├── docs ├── 404.html ├── LICENSE-text.html ├── LICENSE.html ├── apple-touch-icon-120x120.png ├── apple-touch-icon-152x152.png ├── apple-touch-icon-180x180.png ├── apple-touch-icon-60x60.png ├── apple-touch-icon-76x76.png ├── apple-touch-icon.png ├── articles │ ├── FeatureFeatureCorrelationPlot.png │ ├── FeatureSetResultsPlot.png │ ├── ViolinPlots.png │ ├── images │ │ └── workflow-graphic2.png │ ├── index.html │ ├── theft.html │ ├── theft_files │ │ ├── crosstalk-1.1.0.1 │ │ │ ├── css │ │ │ │ └── crosstalk.css │ │ │ └── js │ │ │ │ ├── crosstalk.js │ │ │ │ ├── crosstalk.js.map │ │ │ │ ├── crosstalk.min.js │ │ │ │ └── crosstalk.min.js.map │ │ ├── figure-html │ │ │ ├── unnamed-chunk-10-1.png │ │ │ ├── unnamed-chunk-11-1.png │ │ │ ├── unnamed-chunk-12-1.png │ │ │ ├── unnamed-chunk-13-1.png │ │ │ ├── unnamed-chunk-14-1.png │ │ │ ├── unnamed-chunk-15-1.png │ │ │ ├── unnamed-chunk-16-1.png │ │ │ ├── unnamed-chunk-17-1.png │ │ │ ├── unnamed-chunk-18-1.png │ │ │ ├── unnamed-chunk-19-1.png │ │ │ ├── unnamed-chunk-20-1.png │ │ │ ├── unnamed-chunk-21-1.png │ │ │ ├── unnamed-chunk-22-1.png │ │ │ ├── unnamed-chunk-23-1.png │ │ │ ├── unnamed-chunk-24-1.png │ │ │ ├── unnamed-chunk-26-1.png │ │ │ ├── unnamed-chunk-27-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ ├── unnamed-chunk-8-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ ├── htmlwidgets-1.5.1 │ │ │ └── htmlwidgets.js │ │ ├── plotly-binding-4.9.2.1 │ │ │ └── plotly.js │ │ ├── plotly-htmlwidgets-css-1.52.2 │ │ │ └── plotly-htmlwidgets.css │ │ ├── plotly-main-1.52.2 │ │ │ └── plotly-latest.min.js │ │ └── typedarray-0.1 │ │ │ └── typedarray.min.js │ ├── workflow-graphic2.png │ └── workflow-graphic_v05.png ├── authors.html ├── bootstrap-toc.css ├── bootstrap-toc.js ├── deps │ ├── bootstrap-5.1.0 │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.min.css │ │ ├── font.css │ │ └── fonts │ │ │ ├── 1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff │ │ │ ├── 1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff │ │ │ ├── 4iCs6KVjbNBYlgo6ew.woff │ │ │ ├── 4iCs6KVjbNBYlgoKfw7w.woff │ │ │ ├── 4iCv6KVjbNBYlgoCxCvTtA.woff │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjsGyL.woff │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_TOQ.woff │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff │ │ │ ├── JTURjIg1_i6t8kCHKm45_ZpC7g0.woff │ │ │ ├── JTURjIg1_i6t8kCHKm45_dJE7g0.woff │ │ │ ├── JTUSjIg1_i6t8kCHKm45xW0.woff │ │ │ ├── KFOlCnqEu92Fr1MmEU9fBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmEU9vAA.woff │ │ │ ├── KFOlCnqEu92Fr1MmSU5fBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmSU5vAA.woff │ │ │ ├── KFOlCnqEu92Fr1MmWUlfBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmWUlvAA.woff │ │ │ ├── KFOmCnqEu92Fr1Me5g.woff │ │ │ ├── KFOmCnqEu92Fr1Mu4mxM.woff │ │ │ ├── QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff │ │ │ ├── S6u8w4BMUTPHjxsAXC-s.woff │ │ │ ├── S6u8w4BMUTPHjxswWA.woff │ │ │ ├── S6u9w4BMUTPHh6UVSwiPHw.woff │ │ │ ├── S6u9w4BMUTPHh6UVeww.woff │ │ │ ├── S6u9w4BMUTPHh7USSwiPHw.woff │ │ │ ├── S6u9w4BMUTPHh7USeww.woff │ │ │ ├── S6uyw4BMUTPHjx4wWA.woff │ │ │ ├── S6uyw4BMUTPHvxo.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff │ │ │ ├── XRXV3I6Li01BKof4MQ.woff │ │ │ ├── XRXW3I6Li01BKofA6sKkZQ.woff │ │ │ ├── XRXW3I6Li01BKofAjsOkZQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff │ │ │ ├── pe03MImSLYBIv1o4X1M8cc9iB_5p.woff │ │ │ ├── pe0qMImSLYBIv1o4X1M8cfe5.woff │ │ │ └── q5uGsou0JOdh94bfvQlr.woff │ ├── bootstrap-5.1.3 │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.min.css │ │ ├── font.css │ │ └── fonts │ │ │ ├── 1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff │ │ │ ├── 1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff │ │ │ ├── 4iCs6KVjbNBYlgo6ew.woff │ │ │ ├── 4iCs6KVjbNBYlgoKfw7w.woff │ │ │ ├── 4iCv6KVjbNBYlgoCxCvTtA.woff │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjsGyL.woff │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_TOQ.woff │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff │ │ │ ├── JTURjIg1_i6t8kCHKm45_ZpC7g0.woff │ │ │ ├── JTURjIg1_i6t8kCHKm45_dJE7g0.woff │ │ │ ├── JTUSjIg1_i6t8kCHKm45xW0.woff │ │ │ ├── KFOlCnqEu92Fr1MmEU9fBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmEU9vAA.woff │ │ │ ├── KFOlCnqEu92Fr1MmSU5fBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmSU5vAA.woff │ │ │ ├── KFOlCnqEu92Fr1MmWUlfBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmWUlvAA.woff │ │ │ ├── KFOmCnqEu92Fr1Me5g.woff │ │ │ ├── KFOmCnqEu92Fr1Mu4mxM.woff │ │ │ ├── QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff │ │ │ ├── S6u8w4BMUTPHjxsAXC-s.woff │ │ │ ├── S6u8w4BMUTPHjxswWA.woff │ │ │ ├── S6u9w4BMUTPHh6UVSwiPHw.woff │ │ │ ├── S6u9w4BMUTPHh6UVeww.woff │ │ │ ├── S6u9w4BMUTPHh7USSwiPHw.woff │ │ │ ├── S6u9w4BMUTPHh7USeww.woff │ │ │ ├── S6uyw4BMUTPHjx4wWA.woff │ │ │ ├── S6uyw4BMUTPHvxo.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff │ │ │ ├── XRXV3I6Li01BKof4MQ.woff │ │ │ ├── XRXW3I6Li01BKofA6sKkZQ.woff │ │ │ ├── XRXW3I6Li01BKofAjsOkZQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff │ │ │ ├── pe03MImSLYBIv1o4X1M8cc9iB_5p.woff │ │ │ ├── pe0qMImSLYBIv1o4X1M8cfe5.woff │ │ │ └── q5uGsou0JOdh94bfvQlr.woff │ ├── bootstrap-5.2.2 │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.min.css │ │ ├── font.css │ │ └── fonts │ │ │ ├── 1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff │ │ │ ├── 1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff │ │ │ ├── 1adeadb2fe618c5ed46221f15e12b9c8.woff │ │ │ ├── 4iCs6KVjbNBYlgo6ew.woff │ │ │ ├── 4iCs6KVjbNBYlgoKfw7w.woff │ │ │ ├── 4iCv6KVjbNBYlgoCxCvTtA.woff │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjsGyL.woff │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_TOQ.woff │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff │ │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Ew9.woff │ │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew9.woff │ │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w9.woff │ │ │ ├── KFOlCnqEu92Fr1MmEU9fBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmEU9vAA.woff │ │ │ ├── KFOlCnqEu92Fr1MmSU5fBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmSU5vAA.woff │ │ │ ├── KFOlCnqEu92Fr1MmWUlfBBc-.woff │ │ │ ├── KFOlCnqEu92Fr1MmWUlvAA.woff │ │ │ ├── KFOmCnqEu92Fr1Me5g.woff │ │ │ ├── KFOmCnqEu92Fr1Mu4mxM.woff │ │ │ ├── QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff │ │ │ ├── S6u8w4BMUTPHjxsAXC-s.woff │ │ │ ├── S6u8w4BMUTPHjxswWA.woff │ │ │ ├── S6u9w4BMUTPHh6UVSwiPHw.woff │ │ │ ├── S6u9w4BMUTPHh6UVeww.woff │ │ │ ├── S6u9w4BMUTPHh7USSwiPHw.woff │ │ │ ├── S6u9w4BMUTPHh7USeww.woff │ │ │ ├── S6uyw4BMUTPHjx4wWA.woff │ │ │ ├── S6uyw4BMUTPHvxo.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff │ │ │ ├── UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff │ │ │ ├── XRXI3I6Li01BKofiOc5wtlZ2di8HDFwmRTA.woff │ │ │ ├── XRXI3I6Li01BKofiOc5wtlZ2di8HDGUmRTA.woff │ │ │ ├── XRXI3I6Li01BKofiOc5wtlZ2di8HDLshRTA.woff │ │ │ ├── a98f7a7574819ba83bec6279a2cecd95.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff │ │ │ ├── memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff │ │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff │ │ │ └── q5uGsou0JOdh94bfvQlr.woff │ ├── data-deps.txt │ └── jquery-3.6.0 │ │ ├── jquery-3.6.0.js │ │ ├── jquery-3.6.0.min.js │ │ └── jquery-3.6.0.min.map ├── docsearch.css ├── docsearch.js ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── index.html ├── link.svg ├── logo.png ├── pkgdown.css ├── pkgdown.js ├── pkgdown.yml ├── reference │ ├── Rplot001.png │ ├── Rplot002.png │ ├── calculate_features.html │ ├── calculate_interval.html │ ├── check_vector_quality.html │ ├── compare_features.html │ ├── compute_top_features-1.png │ ├── compute_top_features-2.png │ ├── compute_top_features.html │ ├── demo_multi_outputs.html │ ├── demo_outputs.html │ ├── feature_list.html │ ├── figures │ │ ├── logo.png │ │ ├── theft-ecosystem.png │ │ └── theft-packages.png │ ├── filter_duplicates.html │ ├── filter_good_features.html │ ├── find_good_features.html │ ├── fit_models.html │ ├── fit_multi_feature_classifier.html │ ├── fit_multivariable_classifier.html │ ├── fit_single_feature_classifier.html │ ├── fit_univariable_classifier.html │ ├── get_rescale_vals.html │ ├── index.html │ ├── init_theft.html │ ├── install_kats.html │ ├── install_python_pkgs.html │ ├── install_tsfel.html │ ├── install_tsfresh.html │ ├── make_title.html │ ├── maxabs_scaler.html │ ├── minmax_scaler.html │ ├── normalise.html │ ├── normalise_feature_frame.html │ ├── normalise_feature_vector.html │ ├── normalize_feature_frame.html │ ├── normalize_feature_vector.html │ ├── plot.feature_calculations.html │ ├── plot.low_dimension.html │ ├── plot_all_features-1.png │ ├── plot_all_features.html │ ├── plot_feature_correlations-1.png │ ├── plot_feature_correlations.html │ ├── plot_feature_matrix-1.png │ ├── plot_feature_matrix.html │ ├── plot_low_dimension-1.png │ ├── plot_low_dimension.html │ ├── plot_quality_matrix-1.png │ ├── plot_quality_matrix.html │ ├── plot_ts_correlations-1.png │ ├── plot_ts_correlations.html │ ├── process_hctsa_file.html │ ├── reduce_dims.html │ ├── resample_data.html │ ├── resampled_ttest.html │ ├── rescale_zscore.html │ ├── robustsigmoid_scaler.html │ ├── select_k_best.html │ ├── select_stat_cols.html │ ├── sigmoid_scaler.html │ ├── simData.html │ ├── stat_test.html │ ├── theft.html │ ├── tsfeature_classifier.html │ └── zscore_scaler.html ├── search.json └── sitemap.xml ├── inst └── python │ ├── kats_calculator.py │ ├── tsfel_calculator.py │ └── tsfresh_calculator.py ├── man ├── calculate_features.Rd ├── check_vector_quality.Rd ├── feature_list.Rd ├── figures │ ├── logo.png │ ├── theft-ecosystem.png │ └── theft-packages.png ├── init_theft.Rd ├── install_kats.Rd ├── install_python_pkgs.Rd ├── install_tsfel.Rd ├── install_tsfresh.Rd ├── process_hctsa_file.Rd ├── simData.Rd └── theft.Rd ├── pkgdown └── favicon │ ├── apple-touch-icon-120x120.png │ ├── apple-touch-icon-152x152.png │ ├── apple-touch-icon-180x180.png │ ├── apple-touch-icon-60x60.png │ ├── apple-touch-icon-76x76.png │ ├── apple-touch-icon.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ └── favicon.ico ├── tests ├── testthat.R └── testthat │ ├── helper-core_data.R │ └── test-calculate_features.R ├── theft.Rproj └── vignettes └── theft.Rmd /.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^.*\.Rproj$ 2 | ^\.Rproj\.user$ 3 | ^README.Rmd 4 | ^README_files 5 | ^_pkgdown\.yml$ 6 | ^docs$ 7 | ^pkgdown$ 8 | ^\.github$ 9 | ^doc$ 10 | ^Meta$ 11 | ^LICENSE\.md$ 12 | ^data-raw$ 13 | -------------------------------------------------------------------------------- /.github/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /.github/workflows/pkgdown.yaml: -------------------------------------------------------------------------------- 1 | # Workflow derived from https://github.com/r-lib/actions/tree/master/examples 2 | # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help 3 | on: 4 | push: 5 | branches: [main, master] 6 | release: 7 | types: [published] 8 | workflow_dispatch: 9 | 10 | name: pkgdown 11 | 12 | jobs: 13 | pkgdown: 14 | runs-on: ubuntu-latest 15 | env: 16 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} 17 | steps: 18 | - uses: actions/checkout@v2 19 | 20 | - uses: r-lib/actions/setup-pandoc@v1 21 | 22 | - uses: r-lib/actions/setup-r@v1 23 | with: 24 | use-public-rspm: true 25 | 26 | - uses: r-lib/actions/setup-r-dependencies@v1 27 | with: 28 | extra-packages: pkgdown 29 | needs: website 30 | 31 | - name: Deploy package 32 | run: | 33 | git config --local user.name "$GITHUB_ACTOR" 34 | git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" 35 | Rscript -e 'pkgdown::deploy_to_branch(new_process = FALSE)' 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # History files 2 | .Rhistory 3 | .Rapp.history 4 | 5 | # Session Data files 6 | .RData 7 | 8 | # User-specific files 9 | .Ruserdata 10 | 11 | # Example code in package build process 12 | *-Ex.R 13 | 14 | # Output files from R CMD build 15 | /*.tar.gz 16 | 17 | # Output files from R CMD check 18 | /*.Rcheck/ 19 | 20 | # RStudio files 21 | .Rproj.user/ 22 | 23 | # produced vignettes 24 | vignettes/*.html 25 | vignettes/*.pdf 26 | 27 | # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 28 | .httr-oauth 29 | 30 | # knitr and R markdown default cache directories 31 | *_cache/ 32 | /cache/ 33 | 34 | # Temporary files created by R markdown 35 | *.utf8.md 36 | *.knit.md 37 | 38 | # R Environment Variables 39 | .Renviron 40 | 41 | # Helper production folder (e.g. hex sticker, Rda etc.) 42 | 43 | helpers/* 44 | 45 | # Mac OS 46 | 47 | .DS_Store 48 | doc 49 | Meta 50 | /doc/ 51 | /Meta/ 52 | -------------------------------------------------------------------------------- /DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: theft 2 | Type: Package 3 | Title: Tools for Handling Extraction of Features from Time Series 4 | Version: 0.7.1 5 | Date: 2025-02-03 6 | Authors@R: c( 7 | person("Trent", "Henderson", email = "then6675@uni.sydney.edu.au", role = c("cre", "aut")), 8 | person("Annie", "Bryant", role = "ctb") 9 | ) 10 | Maintainer: Trent Henderson 11 | Description: Consolidates and calculates different sets of time-series features from multiple 12 | 'R' and 'Python' packages including 'Rcatch22' Henderson, T. (2021) , 13 | 'feasts' O'Hara-Wild, M., Hyndman, R., and Wang, E. (2021) , 14 | 'tsfeatures' Hyndman, R., Kang, Y., Montero-Manso, P., Talagala, T., Wang, E., Yang, Y., and O'Hara-Wild, M. (2020) 15 | , 'tsfresh' Christ, M., Braun, N., Neuffer, J., 16 | and Kempa-Liehr A.W. (2018) , 'TSFEL' Barandas, M., et al. (2020) 17 | , and 'Kats' Facebook Infrastructure Data Science (2021) 18 | . 19 | BugReports: https://github.com/hendersontrent/theft/issues 20 | License: MIT + file LICENSE 21 | Encoding: UTF-8 22 | LazyData: true 23 | Depends: 24 | R (>= 3.5.0) 25 | Imports: 26 | utils, 27 | rlang, 28 | dplyr, 29 | tidyr, 30 | purrr, 31 | tibble, 32 | tsibble, 33 | fabletools, 34 | tsfeatures, 35 | feasts, 36 | Rcatch22, 37 | reticulate, 38 | R.matlab 39 | Suggests: 40 | lifecycle, 41 | cachem, 42 | bslib, 43 | knitr, 44 | markdown, 45 | rmarkdown, 46 | pkgdown, 47 | testthat 48 | RoxygenNote: 7.2.3 49 | VignetteBuilder: knitr 50 | URL: https://hendersontrent.github.io/theft/ 51 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | YEAR: 2022 2 | COPYRIGHT HOLDER: Trent Henderson -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # MIT License 2 | 3 | Copyright (c) 2022 Trent Henderson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /NAMESPACE: -------------------------------------------------------------------------------- 1 | # Generated by roxygen2: do not edit by hand 2 | 3 | export(calculate_features) 4 | export(init_theft) 5 | export(install_kats) 6 | export(install_python_pkgs) 7 | export(install_tsfel) 8 | export(install_tsfresh) 9 | export(process_hctsa_file) 10 | import(Rcatch22) 11 | import(dplyr) 12 | import(feasts) 13 | import(tibble) 14 | import(tsibble) 15 | importFrom(R.matlab,readMat) 16 | importFrom(fabletools,feature_set) 17 | importFrom(fabletools,features) 18 | importFrom(purrr,map_df) 19 | importFrom(reticulate,import) 20 | importFrom(reticulate,use_virtualenv) 21 | importFrom(reticulate,virtualenv_create) 22 | importFrom(reticulate,virtualenv_install) 23 | importFrom(rlang,.data) 24 | importFrom(tibble,as_tibble) 25 | importFrom(tidyr,gather) 26 | importFrom(tidyr,pivot_longer) 27 | importFrom(tidyr,unnest_wider) 28 | importFrom(tsfeatures,ac_9) 29 | importFrom(tsfeatures,acf_features) 30 | importFrom(tsfeatures,arch_stat) 31 | importFrom(tsfeatures,autocorr_features) 32 | importFrom(tsfeatures,binarize_mean) 33 | importFrom(tsfeatures,compengine) 34 | importFrom(tsfeatures,crossing_points) 35 | importFrom(tsfeatures,dist_features) 36 | importFrom(tsfeatures,embed2_incircle) 37 | importFrom(tsfeatures,entropy) 38 | importFrom(tsfeatures,firstmin_ac) 39 | importFrom(tsfeatures,firstzero_ac) 40 | importFrom(tsfeatures,flat_spots) 41 | importFrom(tsfeatures,fluctanal_prop_r1) 42 | importFrom(tsfeatures,heterogeneity) 43 | importFrom(tsfeatures,histogram_mode) 44 | importFrom(tsfeatures,holt_parameters) 45 | importFrom(tsfeatures,hurst) 46 | importFrom(tsfeatures,hw_parameters) 47 | importFrom(tsfeatures,localsimple_taures) 48 | importFrom(tsfeatures,lumpiness) 49 | importFrom(tsfeatures,max_kl_shift) 50 | importFrom(tsfeatures,max_level_shift) 51 | importFrom(tsfeatures,max_var_shift) 52 | importFrom(tsfeatures,motiftwo_entro3) 53 | importFrom(tsfeatures,nonlinearity) 54 | importFrom(tsfeatures,outlierinclude_mdrmd) 55 | importFrom(tsfeatures,pacf_features) 56 | importFrom(tsfeatures,pred_features) 57 | importFrom(tsfeatures,sampen_first) 58 | importFrom(tsfeatures,sampenc) 59 | importFrom(tsfeatures,scal_features) 60 | importFrom(tsfeatures,spreadrandomlocal_meantaul) 61 | importFrom(tsfeatures,stability) 62 | importFrom(tsfeatures,station_features) 63 | importFrom(tsfeatures,std1st_der) 64 | importFrom(tsfeatures,stl_features) 65 | importFrom(tsfeatures,trev_num) 66 | importFrom(tsfeatures,tsfeatures) 67 | importFrom(tsfeatures,walker_propcross) 68 | importFrom(utils,packageVersion) 69 | -------------------------------------------------------------------------------- /R/check_vector_quality.R: -------------------------------------------------------------------------------- 1 | #' Check for presence of NAs and non-numerics in a vector 2 | #' 3 | #' @param x input \code{vector} 4 | #' @return \code{Boolean} of whether the data is good to extract features on or not 5 | #' @author Trent Henderson 6 | #' 7 | 8 | check_vector_quality <- function(x){ 9 | return(!anyNA(x) && is.numeric(x)) 10 | } 11 | -------------------------------------------------------------------------------- /R/data.R: -------------------------------------------------------------------------------- 1 | #' All features available in theft in tidy format 2 | #' 3 | #' The variables include: 4 | #' 5 | #' @format A tidy data frame with 2 variables: 6 | #' \describe{ 7 | #' \item{feature_set}{Name of the set the feature is from} 8 | #' \item{feature}{Name of the feature} 9 | #' } 10 | #' 11 | "feature_list" 12 | 13 | 14 | #' Sample of randomly-generated time series to produce function tests and vignettes 15 | #' 16 | #' The variables include: 17 | #' 18 | #' @format A tidy data frame with 4 variables: 19 | #' \describe{ 20 | #' \item{id}{Unique identifier for the time series} 21 | #' \item{timepoint}{Time index} 22 | #' \item{values}{Value} 23 | #' \item{process}{Group label for the type of time series} 24 | #' } 25 | #' 26 | "simData" 27 | -------------------------------------------------------------------------------- /R/init_theft.R: -------------------------------------------------------------------------------- 1 | #' Communicate to R the Python virtual environment containing the relevant libraries for calculating features 2 | #' 3 | #' @importFrom reticulate use_virtualenv import 4 | #' 5 | #' @param venv \code{character} specifying the name of the to the Python virtual environment where \code{"tsfresh"}, \code{"TSFEL"}, and/or \code{"Kats"} are installed 6 | #' @return no return value; called for side effects 7 | #' @author Trent Henderson 8 | #' @export 9 | #' @examples 10 | #' \dontrun{ 11 | #' install_python_pkgs("theft-test") 12 | #' init_theft("theft-test") 13 | #' } 14 | #' 15 | 16 | init_theft <- function(venv){ 17 | reticulate::use_virtualenv(venv) 18 | tsfresh <- reticulate::import("tsfresh") 19 | tsfel <- reticulate::import("tsfel") 20 | kats <- reticulate::import("kats") 21 | } 22 | -------------------------------------------------------------------------------- /R/installs.R: -------------------------------------------------------------------------------- 1 | #' Download and install tsfresh, TSFEL, and Kats from Python into a new virtual environment 2 | #' 3 | #' @importFrom reticulate virtualenv_create virtualenv_install 4 | #' 5 | #' @param venv \code{character} specifying the name of the new virtual environment to create 6 | #' @param python \code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended 7 | #' @return no return value; called for side effects 8 | #' @author Trent Henderson 9 | #' @export 10 | #' @examples 11 | #' \dontrun{ 12 | #' install_python_pkgs("theft-test", "/usr/local/bin/python3.10") 13 | #' } 14 | #' 15 | install_python_pkgs <- function(venv, python){ 16 | reticulate::virtualenv_create(venv, python) 17 | reticulate::virtualenv_install(venv, "tsfel") 18 | reticulate::virtualenv_install(venv, "tsfresh") 19 | reticulate::virtualenv_install(venv, "git+https://github.com/hendersontrent/theft-kats.git") 20 | reticulate::virtualenv_install(venv, "scipy==1.14.0") 21 | reticulate::virtualenv_install(venv, "packaging==21.3") 22 | reticulate::virtualenv_install(venv, "numpy==1.26") 23 | } 24 | 25 | #' Download and install tsfresh from Python into a new virtual environment 26 | #' 27 | #' @importFrom reticulate virtualenv_create virtualenv_install 28 | #' 29 | #' @param venv \code{character} specifying the name of the new virtual environment to create 30 | #' @param python \code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended 31 | #' @return no return value; called for side effects 32 | #' @author Trent Henderson 33 | #' @export 34 | #' @examples 35 | #' \dontrun{ 36 | #' install_tsfresh("theft-test", "/usr/local/bin/python3.10") 37 | #' } 38 | #' 39 | install_tsfresh <- function(venv, python){ 40 | reticulate::virtualenv_create(venv, python) 41 | reticulate::virtualenv_install(venv, "tsfresh") 42 | reticulate::virtualenv_install(venv, "scipy==1.14.0") 43 | reticulate::virtualenv_install(venv, "packaging==21.3") 44 | reticulate::virtualenv_install(venv, "numpy==1.26") 45 | } 46 | 47 | #' Download and install TSFEL from Python into a new virtual environment 48 | #' 49 | #' @importFrom reticulate virtualenv_create virtualenv_install 50 | #' 51 | #' @param venv \code{character} specifying the name of the new virtual environment to create 52 | #' @param python \code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended 53 | #' @return no return value; called for side effects 54 | #' @author Trent Henderson 55 | #' @export 56 | #' @examples 57 | #' \dontrun{ 58 | #' install_tsfel("theft-test", "/usr/local/bin/python3.10") 59 | #' } 60 | #' 61 | install_tsfel <- function(venv, python){ 62 | reticulate::virtualenv_create(venv, python) 63 | reticulate::virtualenv_install(venv, "tsfel") 64 | reticulate::virtualenv_install(venv, "scipy==1.14.0") 65 | reticulate::virtualenv_install(venv, "packaging==21.3") 66 | reticulate::virtualenv_install(venv, "numpy==1.26") 67 | } 68 | 69 | #' Download and install Kats from Python into a new virtual environment 70 | #' 71 | #' @importFrom reticulate virtualenv_create virtualenv_install 72 | #' 73 | #' @param venv \code{character} specifying the name of the new virtual environment to create 74 | #' @param python \code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended 75 | #' @return no return value; called for side effects 76 | #' @author Trent Henderson 77 | #' @export 78 | #' @examples 79 | #' \dontrun{ 80 | #' install_kats("theft-test", "/usr/local/bin/python3.10") 81 | #' } 82 | #' 83 | install_kats <- function(venv, python){ 84 | reticulate::virtualenv_create(venv, python) 85 | reticulate::virtualenv_install(venv, "git+https://github.com/hendersontrent/theft-kats.git") 86 | reticulate::virtualenv_install(venv, "scipy==1.14.0") 87 | reticulate::virtualenv_install(venv, "packaging==21.3") 88 | reticulate::virtualenv_install(venv, "numpy==1.26") 89 | } 90 | -------------------------------------------------------------------------------- /R/process_hctsa_file.R: -------------------------------------------------------------------------------- 1 | #---------------- Helper function ------------------ 2 | 3 | hctsa_iterator <- function(labels, keywords, timeSeriesData, x){ 4 | 5 | tmp <- timeSeriesData[[x]][[1]] 6 | tmp <- as.data.frame(tmp) 7 | 8 | tmp <- tmp %>% 9 | dplyr::rename(values = .data$V1) %>% 10 | dplyr::mutate(timepoint = dplyr::row_number()) %>% 11 | dplyr::mutate(group = keywords[x], 12 | id = labels[x]) 13 | 14 | return(tmp) 15 | } 16 | 17 | #---------------- Core function ------------------ 18 | 19 | #' Load in hctsa formatted MATLAB files of time series data into a tidy format ready for feature extraction 20 | #' 21 | #' @importFrom rlang .data 22 | #' @importFrom R.matlab readMat 23 | #' @importFrom purrr map_df 24 | #' @import dplyr 25 | #' @param data \code{string} specifying the filepath to the \code{MATLAB} file to parse 26 | #' @return an object of class \code{data.frame} in tidy format 27 | #' @author Trent Henderson 28 | #' @export 29 | #' 30 | 31 | process_hctsa_file <- function(data){ 32 | 33 | if(!is.character(data)){ 34 | stop("data should be a string specifying the filepath to the MATLAB file to parse") 35 | } 36 | 37 | # Read MATLAB file into list 38 | 39 | d <- R.matlab::readMat(data) 40 | theNames <- names(d) 41 | correctNames <- c("timeSeriesData", "labels", "keywords") 42 | 43 | if(length(theNames) != 3){ 44 | stop("3 variables should be 'timeSeriesData', 'labels', and 'keywords'.") 45 | } 46 | 47 | if(setequal(theNames, correctNames) == FALSE){ 48 | stop("3 variables should be 'timeSeriesData', 'labels', and 'keywords'.") 49 | } 50 | 51 | # Parse into single tidy dataframe 52 | 53 | keywords <- as.vector(do.call(rbind, d$keywords)) 54 | labels <- as.vector(do.call(rbind, d$labels)) 55 | timeSeriesData <- d$timeSeriesData 56 | 57 | myData <- 1:length(timeSeriesData) %>% 58 | purrr::map_df(~ hctsa_iterator(labels, keywords, timeSeriesData, .x)) 59 | 60 | if(!is.numeric(myData$values)){ 61 | stop("Non-numerics identified in values.") 62 | } 63 | 64 | return(myData) 65 | } 66 | -------------------------------------------------------------------------------- /R/theft.R: -------------------------------------------------------------------------------- 1 | #' 2 | #' @docType package 3 | #' @aliases theft-package 4 | #' @name theft 5 | #' @title Tools for Handling Extraction of Features from Time-series 6 | #' 7 | #' @description Tools for Handling Extraction of Features from Time-series 8 | #' 9 | #' @importFrom utils packageVersion 10 | #' @importFrom rlang .data 11 | #' @import Rcatch22 12 | #' @importFrom tsfeatures lumpiness stability max_level_shift max_var_shift max_kl_shift crossing_points flat_spots hurst compengine autocorr_features pred_features station_features dist_features scal_features embed2_incircle firstzero_ac ac_9 firstmin_ac trev_num motiftwo_entro3 binarize_mean walker_propcross localsimple_taures sampen_first sampenc std1st_der spreadrandomlocal_meantaul histogram_mode outlierinclude_mdrmd fluctanal_prop_r1 entropy tsfeatures stl_features acf_features pacf_features holt_parameters hw_parameters heterogeneity nonlinearity arch_stat 13 | #' @import feasts 14 | #' @import tsibble 15 | #' @importFrom tidyr gather unnest_wider pivot_longer 16 | #' @importFrom fabletools features feature_set 17 | #' @import tibble 18 | #' @importFrom R.matlab readMat 19 | #' @importFrom reticulate virtualenv_create virtualenv_install use_virtualenv import 20 | #' @import dplyr 21 | #' @importFrom purrr map_df 22 | NULL 23 | -------------------------------------------------------------------------------- /R/zzz.R: -------------------------------------------------------------------------------- 1 | 2 | .onAttach <- function(libname, pkgname) { 3 | packageStartupMessage("This is version ", utils::packageVersion(pkgname), 4 | " of ", pkgname, ". All analysis and visualisation functions (plus a host of new ones!) have been moved to the {theftdlc} package\nand subsequently renamed and refactored.\nYou can install {theftdlc} via install.packages('theftdlc').\nPlease see https://hendersontrent.github.io/theftdlc/ for more.") 5 | } 6 | -------------------------------------------------------------------------------- /README.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | output: rmarkdown::github_document 3 | --- 4 | 5 | # theft 6 | 7 | [![CRAN version](https://www.r-pkg.org/badges/version/theft)](https://www.r-pkg.org/pkg/theft) 8 | [![CRAN RStudio mirror downloads](https://cranlogs.r-pkg.org/badges/theft)](https://www.r-pkg.org/pkg/theft) 9 | [![DOI](https://zenodo.org/badge/351259952.svg)](https://zenodo.org/badge/latestdoi/351259952) 10 | 11 | Tools for Handling Extraction of Features from Time series (theft) 12 | 13 | ```{r, include = FALSE} 14 | knitr::opts_chunk$set( 15 | comment = NA, fig.width = 12, fig.height = 8, cache = FALSE) 16 | ``` 17 | 18 | ## Installation 19 | 20 | You can install the stable version of `theft` from CRAN: 21 | 22 | ```{r eval = FALSE} 23 | install.packages("theft") 24 | ``` 25 | 26 | You can install the development version of `theft` from GitHub using the following: 27 | 28 | ```{r eval = FALSE} 29 | devtools::install_github("hendersontrent/theft") 30 | ``` 31 | 32 | Please also check out our paper [Feature-Based Time-Series Analysis in R using the theft Package](https://arxiv.org/abs/2208.06146) which discusses the motivation and theoretical underpinnings of `theft` and walks through all of its functionality using the [Bonn EEG dataset](https://pubmed.ncbi.nlm.nih.gov/11736210/) --- a well-studied neuroscience dataset. 33 | 34 | ## General purpose 35 | 36 | `theft` is a software package for R that facilitates user-friendly access to a consistent interface for the extraction of time-series features. The package provides a single point of access to $>1200$ time-series features from a range of existing R and Python packages. The packages which `theft` 'steals' features from currently are: 37 | 38 | * [catch22](https://link.springer.com/article/10.1007/s10618-019-00647-x) (R; [see `Rcatch22` for the native implementation on CRAN](https://github.com/hendersontrent/Rcatch22)) 39 | * [feasts](https://feasts.tidyverts.org) (R) 40 | * [tsfeatures](https://github.com/robjhyndman/tsfeatures) (R) 41 | * [Kats](https://facebookresearch.github.io/Kats/) (Python) 42 | * [tsfresh](https://tsfresh.com) (Python) 43 | * [TSFEL](https://tsfel.readthedocs.io/en/latest/) (Python) 44 | 45 | Users can also calculate their own individual features or sets of features too! 46 | 47 | Note that `Kats`, `tsfresh` and `TSFEL` are Python packages. `theft` has built-in functionality for helping you install these libraries---all you need to do is install Python on your machine (preferably Python >=3.10). If you wish to access the Python feature sets, please run `?install_python_pkgs` in R after downloading `theft` or consult the vignette in the package for more information. For a comprehensive comparison of these six feature sets across a range of domains (including computation speed, within-set feature composition, and between-set feature correlations), please refer to the paper [An Empirical Evaluation of Time-Series Feature Sets](https://ieeexplore.ieee.org/document/9679937). 48 | 49 | As of `v0.6.1`, users can also supply their own features to `theft` (see the vignette for more information)! 50 | 51 | ## Package extensibility 52 | 53 | The companion package [`theftdlc`](https://github.com/hendersontrent/theftdlc) ('`theft` downloadable content'---just like you get [DLCs and expansions](https://en.bandainamcoent.eu/elden-ring/elden-ring/shadow-of-the-erdtree) for video games) contains an extensive suite of functions for analysing, interpreting, and visualising time-series features calculated from `theft`. Collectively, these packages are referred to as the '`theft` ecosystem'. 54 | 55 | Hex stickers of the theft and theftdlc packages for R 56 | 57 | A high-level overview of how the `theft` ecosystem for R is typically accessed by users is shown below. Note that prior to `v0.6.1` of, many of the `theftdlc` functions were contained in `theft` but under other names. To ensure the `theft` ecosystem is as user-friendly as possible and can scale to meet future demands, `theft` has been refactored to be just feature extraction, while `theftdlc` handles all the analysis of the extracted features. The deprecated names---such as `tsfeature_classifier()` being the outdated version of `classify()`---are also still available for now in `theftdlc`. 58 | 59 | Schematic of the theft ecosystem in R 60 | 61 | Many more functions and options for customisation are available within the packages and users are encouraged to explore the vignettes and helper files for more information. 62 | 63 | ## Quick tour 64 | 65 | `theft` and `theftdlc` combine to create an intuitive and efficient tidy feature-based workflow. Here is an example of a single code chunk that calculates features using [`catch22`](https://github.com/hendersontrent/Rcatch22) and a custom set of mean and standard deviation, and projects the feature space into an interpretable two-dimensional space using principal components analysis: 66 | 67 | ```{r, message = FALSE, warning = FALSE, fig.height=6, fig.width=6} 68 | library(dplyr) 69 | library(theft) 70 | library(theftdlc) 71 | 72 | calculate_features(data = theft::simData, 73 | group_var = "process", 74 | feature_set = "catch22", 75 | features = list("mean" = mean, "sd" = sd)) %>% 76 | project(norm_method = "RobustSigmoid", 77 | unit_int = TRUE, 78 | low_dim_method = "PCA") %>% 79 | plot() 80 | ``` 81 | 82 | In that example, `calculate_features` comes from `theft`, while `project` and the `plot` generic come from `theftdlc`. 83 | 84 | Similarly, we can perform time-series classification using a similar simple workflow to compare the performance of `catch22` against our custom set of the first two moments of the distribution: 85 | 86 | ```{r, message = FALSE, warning = FALSE} 87 | calculate_features(data = theft::simData, 88 | group_var = "process", 89 | feature_set = "catch22", 90 | features = list("mean" = mean, "sd" = sd)) %>% 91 | classify(by_set = TRUE, 92 | n_resamples = 5, 93 | use_null = TRUE) %>% 94 | compare_features(by_set = TRUE, 95 | hypothesis = "null") %>% 96 | head() 97 | ``` 98 | 99 | In this example, `classify` and `compare_features` come from `theftdlc`. 100 | 101 | Please see the vignette for more information and the full functionality of both packages. 102 | 103 | ## Citation 104 | 105 | If you use `theft` or `theftdlc` in your own work, please cite both the paper: 106 | 107 | T. Henderson and Ben D. Fulcher. [Feature-Based Time-Series Analysis in R using the theft Package](https://arxiv.org/abs/2208.06146). arXiv, (2022). 108 | 109 | and the software: 110 | 111 | ```{r, echo = FALSE} 112 | citation("theft") 113 | citation("theftdlc") 114 | ``` 115 | -------------------------------------------------------------------------------- /README_files/figure-gfm/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/README_files/figure-gfm/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /_pkgdown.yml: -------------------------------------------------------------------------------- 1 | url: https://hendersontrent.github.io/theft/ 2 | template: 3 | bootstrap: 5 4 | bootswatch: flatly 5 | 6 | -------------------------------------------------------------------------------- /data-raw/simData.R: -------------------------------------------------------------------------------- 1 | #' Helper function to add information to data frame 2 | #' @param df \code{data.frame} containing simulated time series 3 | #' @param id_num \code{integer} denoting id of the time series 4 | #' @param process \code{character} denoting the data generating process 5 | #' @return \code{data.frame} with time series information with additional columns 6 | #' @author Trent Henderson 7 | #' 8 | 9 | add_info <- function(df, id_num, process){ 10 | tmp <- df 11 | tmp$timepoint <- seq.int(nrow(tmp)) 12 | tmp$id <- paste0(process, "_", id_num) 13 | tmp$process <- process 14 | return(tmp) 15 | } 16 | 17 | 18 | #' Function to simulate statistical processes needed to calculate time-series features on 19 | #' @importFrom stats rnorm arima.sim 20 | #' @import dplyr 21 | #' @param ts_length \code{integer} denoting the time-series length to produce. Defaults to \code{1000} 22 | #' @param num_ts \code{integer} denoting the number of time series to generate for each \code{process}. Defaults to \code{30} 23 | #' @param process \code{character} or \code{character vector} denoting the statistical process to simulate. Defaults to \code{"Gaussian Noise"} 24 | #' @return \code{data.frame} with the simulated time-series process values 25 | #' @author Trent Henderson 26 | #' 27 | 28 | simulation_engine <- function(ts_length = 1000, num_ts = 30, 29 | process = c("Gaussian Noise", "Noisy Sinusoid", "Random Walk", 30 | "AR(1)", "MA(1)", "ARMA(1,1)")){ 31 | 32 | process <- match.arg(process) 33 | 34 | #---------- Main calcs --------------- 35 | 36 | storage <- list() 37 | 38 | for(i in 1:num_ts){ 39 | 40 | set.seed(i) 41 | 42 | if(process == "Gaussian Noise"){ 43 | outData <- data.frame(values = stats::rnorm(ts_length, mean = 0, sd = 1)) 44 | outData <- add_info(outData, i, process) 45 | } 46 | 47 | if(process == "Noisy Sinusoid"){ 48 | n <- seq(from = 1, to = ts_length, by = 1) 49 | outData <- data.frame(values = sin(n) + stats::rnorm(ts_length, mean = 0, sd = 0.25)) 50 | outData <- add_info(outData, i, process) 51 | } 52 | 53 | if(process == "Random Walk"){ 54 | outData <- data.frame(values = cumsum(stats::rnorm(ts_length, mean = 0, sd = 1))) 55 | outData <- add_info(outData, i, process) 56 | } 57 | 58 | if(process == "AR(1)"){ 59 | themod <- list(order = c(1, 0, 0), ar = 0.4) 60 | outData <- data.frame(values = c(stats::arima.sim(n = ts_length, model = themod, sd = 0.1))) 61 | outData <- add_info(outData, i, process) 62 | } 63 | 64 | if(process == "MA(1)"){ 65 | themod <- list(order = c(0, 0, 1), ma = 0.4) 66 | outData <- data.frame(values = c(stats::arima.sim(n = ts_length, model = themod, sd = 0.1))) 67 | outData <- add_info(outData, i, process) 68 | } 69 | 70 | if(process == "ARMA(1,1)"){ 71 | themod <- list(order = c(1, 0, 1), ar = 0.4, ma = 0.4) 72 | outData <- data.frame(values = c(5 + stats::arima.sim(n = ts_length, model = themod))) 73 | outData <- add_info(outData, i, process) 74 | } 75 | storage[[i]] <- outData 76 | } 77 | 78 | outData <- do.call("rbind", storage) 79 | return(outData) 80 | } 81 | 82 | # Run the function 83 | 84 | storage <- list() 85 | 86 | for(i in c("Gaussian Noise", "Noisy Sinusoid", "Random Walk","AR(1)", "MA(1)", "ARMA(1,1)")){ 87 | tmp <- simulation_engine(80, 30, i) 88 | storage[[i]] <- tmp 89 | } 90 | 91 | simData <- do.call("rbind", storage) 92 | 93 | # Save output to package 94 | 95 | write.csv(simData, "data-raw/simData.csv") 96 | usethis::use_data(simData, overwrite = TRUE) 97 | -------------------------------------------------------------------------------- /data/feature_list.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/data/feature_list.rda -------------------------------------------------------------------------------- /data/simData.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/data/simData.rda -------------------------------------------------------------------------------- /docs/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Page not found (404) • theft 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | Skip to contents 28 | 29 | 30 |
67 |
68 |
72 | 73 | Content not found. Please use links in the navbar. 74 | 75 |
76 |
77 | 78 | 79 |
83 | 84 | 89 | 90 |
91 |
92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /docs/LICENSE-text.html: -------------------------------------------------------------------------------- 1 | 2 | License • theft 6 | Skip to contents 7 | 8 | 9 |
41 |
42 |
46 | 47 |
YEAR: 2022
48 | COPYRIGHT HOLDER: Trent Henderson
49 | 
50 | 51 |
52 | 53 | 54 |
57 | 58 | 62 | 63 |
64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /docs/LICENSE.html: -------------------------------------------------------------------------------- 1 | 2 | MIT License • theft 6 | Skip to contents 7 | 8 | 9 |
41 |
42 |
46 | 47 |
48 | 49 |

Copyright (c) 2022 Trent Henderson

50 |

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

57 |

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

59 |

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

66 |
67 | 68 |
69 | 70 | 71 |
74 | 75 | 79 | 80 |
81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /docs/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /docs/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /docs/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /docs/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /docs/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /docs/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/articles/FeatureFeatureCorrelationPlot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/FeatureFeatureCorrelationPlot.png -------------------------------------------------------------------------------- /docs/articles/FeatureSetResultsPlot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/FeatureSetResultsPlot.png -------------------------------------------------------------------------------- /docs/articles/ViolinPlots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/ViolinPlots.png -------------------------------------------------------------------------------- /docs/articles/images/workflow-graphic2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/images/workflow-graphic2.png -------------------------------------------------------------------------------- /docs/articles/index.html: -------------------------------------------------------------------------------- 1 | 2 | Articles • theft 6 | Skip to contents 7 | 8 | 9 |
41 |
42 |
45 | 46 |
47 |

All vignettes

48 |

49 | 50 |
Introduction to theft
51 |
52 |
53 |
54 | 55 | 56 |
59 | 60 | 64 | 65 |
66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /docs/articles/theft_files/crosstalk-1.1.0.1/css/crosstalk.css: -------------------------------------------------------------------------------- 1 | /* Adjust margins outwards, so column contents line up with the edges of the 2 | parent of container-fluid. */ 3 | .container-fluid.crosstalk-bscols { 4 | margin-left: -30px; 5 | margin-right: -30px; 6 | white-space: normal; 7 | } 8 | 9 | /* But don't adjust the margins outwards if we're directly under the body, 10 | i.e. we were the top-level of something at the console. */ 11 | body > .container-fluid.crosstalk-bscols { 12 | margin-left: auto; 13 | margin-right: auto; 14 | } 15 | 16 | .crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column { 17 | display: inline-block; 18 | padding-right: 12px; 19 | vertical-align: top; 20 | } 21 | 22 | @media only screen and (max-width:480px) { 23 | .crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column { 24 | display: block; 25 | padding-right: inherit; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-11-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-12-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-12-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-13-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-13-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-14-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-14-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-15-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-15-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-16-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-16-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-17-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-17-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-18-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-18-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-19-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-19-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-20-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-20-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-21-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-21-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-22-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-22-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-23-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-23-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-24-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-24-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-26-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-26-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-27-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-27-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-8-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/theft_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/theft_files/plotly-htmlwidgets-css-1.52.2/plotly-htmlwidgets.css: -------------------------------------------------------------------------------- 1 | /* 2 | just here so that plotly works 3 | correctly with ioslides. 4 | see https://github.com/ropensci/plotly/issues/463 5 | */ 6 | 7 | slide:not(.current) .plotly.html-widget{ 8 | display: none; 9 | } 10 | -------------------------------------------------------------------------------- /docs/articles/workflow-graphic2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/workflow-graphic2.png -------------------------------------------------------------------------------- /docs/articles/workflow-graphic_v05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/articles/workflow-graphic_v05.png -------------------------------------------------------------------------------- /docs/authors.html: -------------------------------------------------------------------------------- 1 | 2 | Authors and Citation • theft 6 | Skip to contents 7 | 8 | 9 |
41 |
42 |
45 | 46 |
47 |

Authors

48 | 49 |
  • 50 |

    Trent Henderson. Maintainer, author. 51 |

    52 |
  • 53 |
  • 54 |

    Annie Bryant. Contributor. 55 |

    56 |
  • 57 |
58 | 59 |
60 |

Citation

61 |

Source: DESCRIPTION

62 | 63 |

Henderson T (2025). 64 | theft: Tools for Handling Extraction of Features from Time Series. 65 | R package version 0.7.1, https://hendersontrent.github.io/theft/. 66 |

67 |
@Manual{,
68 |   title = {theft: Tools for Handling Extraction of Features from Time Series},
69 |   author = {Trent Henderson},
70 |   year = {2025},
71 |   note = {R package version 0.7.1},
72 |   url = {https://hendersontrent.github.io/theft/},
73 | }
74 |
75 |
77 | 78 | 79 |
82 | 83 | 87 | 88 |
89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /docs/bootstrap-toc.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) 3 | * Copyright 2015 Aidan Feldman 4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ 5 | 6 | /* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */ 7 | 8 | /* All levels of nav */ 9 | nav[data-toggle='toc'] .nav > li > a { 10 | display: block; 11 | padding: 4px 20px; 12 | font-size: 13px; 13 | font-weight: 500; 14 | color: #767676; 15 | } 16 | nav[data-toggle='toc'] .nav > li > a:hover, 17 | nav[data-toggle='toc'] .nav > li > a:focus { 18 | padding-left: 19px; 19 | color: #563d7c; 20 | text-decoration: none; 21 | background-color: transparent; 22 | border-left: 1px solid #563d7c; 23 | } 24 | nav[data-toggle='toc'] .nav > .active > a, 25 | nav[data-toggle='toc'] .nav > .active:hover > a, 26 | nav[data-toggle='toc'] .nav > .active:focus > a { 27 | padding-left: 18px; 28 | font-weight: bold; 29 | color: #563d7c; 30 | background-color: transparent; 31 | border-left: 2px solid #563d7c; 32 | } 33 | 34 | /* Nav: second level (shown on .active) */ 35 | nav[data-toggle='toc'] .nav .nav { 36 | display: none; /* Hide by default, but at >768px, show it */ 37 | padding-bottom: 10px; 38 | } 39 | nav[data-toggle='toc'] .nav .nav > li > a { 40 | padding-top: 1px; 41 | padding-bottom: 1px; 42 | padding-left: 30px; 43 | font-size: 12px; 44 | font-weight: normal; 45 | } 46 | nav[data-toggle='toc'] .nav .nav > li > a:hover, 47 | nav[data-toggle='toc'] .nav .nav > li > a:focus { 48 | padding-left: 29px; 49 | } 50 | nav[data-toggle='toc'] .nav .nav > .active > a, 51 | nav[data-toggle='toc'] .nav .nav > .active:hover > a, 52 | nav[data-toggle='toc'] .nav .nav > .active:focus > a { 53 | padding-left: 28px; 54 | font-weight: 500; 55 | } 56 | 57 | /* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */ 58 | nav[data-toggle='toc'] .nav > .active > ul { 59 | display: block; 60 | } 61 | -------------------------------------------------------------------------------- /docs/bootstrap-toc.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) 3 | * Copyright 2015 Aidan Feldman 4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ 5 | (function() { 6 | 'use strict'; 7 | 8 | window.Toc = { 9 | helpers: { 10 | // return all matching elements in the set, or their descendants 11 | findOrFilter: function($el, selector) { 12 | // http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/ 13 | // http://stackoverflow.com/a/12731439/358804 14 | var $descendants = $el.find(selector); 15 | return $el.filter(selector).add($descendants).filter(':not([data-toc-skip])'); 16 | }, 17 | 18 | generateUniqueIdBase: function(el) { 19 | var text = $(el).text(); 20 | var anchor = text.trim().toLowerCase().replace(/[^A-Za-z0-9]+/g, '-'); 21 | return anchor || el.tagName.toLowerCase(); 22 | }, 23 | 24 | generateUniqueId: function(el) { 25 | var anchorBase = this.generateUniqueIdBase(el); 26 | for (var i = 0; ; i++) { 27 | var anchor = anchorBase; 28 | if (i > 0) { 29 | // add suffix 30 | anchor += '-' + i; 31 | } 32 | // check if ID already exists 33 | if (!document.getElementById(anchor)) { 34 | return anchor; 35 | } 36 | } 37 | }, 38 | 39 | generateAnchor: function(el) { 40 | if (el.id) { 41 | return el.id; 42 | } else { 43 | var anchor = this.generateUniqueId(el); 44 | el.id = anchor; 45 | return anchor; 46 | } 47 | }, 48 | 49 | createNavList: function() { 50 | return $(''); 51 | }, 52 | 53 | createChildNavList: function($parent) { 54 | var $childList = this.createNavList(); 55 | $parent.append($childList); 56 | return $childList; 57 | }, 58 | 59 | generateNavEl: function(anchor, text) { 60 | var $a = $(''); 61 | $a.attr('href', '#' + anchor); 62 | $a.text(text); 63 | var $li = $('
  • '); 64 | $li.append($a); 65 | return $li; 66 | }, 67 | 68 | generateNavItem: function(headingEl) { 69 | var anchor = this.generateAnchor(headingEl); 70 | var $heading = $(headingEl); 71 | var text = $heading.data('toc-text') || $heading.text(); 72 | return this.generateNavEl(anchor, text); 73 | }, 74 | 75 | // Find the first heading level (`

    `, then `

    `, etc.) that has more than one element. Defaults to 1 (for `

    `). 76 | getTopLevel: function($scope) { 77 | for (var i = 1; i <= 6; i++) { 78 | var $headings = this.findOrFilter($scope, 'h' + i); 79 | if ($headings.length > 1) { 80 | return i; 81 | } 82 | } 83 | 84 | return 1; 85 | }, 86 | 87 | // returns the elements for the top level, and the next below it 88 | getHeadings: function($scope, topLevel) { 89 | var topSelector = 'h' + topLevel; 90 | 91 | var secondaryLevel = topLevel + 1; 92 | var secondarySelector = 'h' + secondaryLevel; 93 | 94 | return this.findOrFilter($scope, topSelector + ',' + secondarySelector); 95 | }, 96 | 97 | getNavLevel: function(el) { 98 | return parseInt(el.tagName.charAt(1), 10); 99 | }, 100 | 101 | populateNav: function($topContext, topLevel, $headings) { 102 | var $context = $topContext; 103 | var $prevNav; 104 | 105 | var helpers = this; 106 | $headings.each(function(i, el) { 107 | var $newNav = helpers.generateNavItem(el); 108 | var navLevel = helpers.getNavLevel(el); 109 | 110 | // determine the proper $context 111 | if (navLevel === topLevel) { 112 | // use top level 113 | $context = $topContext; 114 | } else if ($prevNav && $context === $topContext) { 115 | // create a new level of the tree and switch to it 116 | $context = helpers.createChildNavList($prevNav); 117 | } // else use the current $context 118 | 119 | $context.append($newNav); 120 | 121 | $prevNav = $newNav; 122 | }); 123 | }, 124 | 125 | parseOps: function(arg) { 126 | var opts; 127 | if (arg.jquery) { 128 | opts = { 129 | $nav: arg 130 | }; 131 | } else { 132 | opts = arg; 133 | } 134 | opts.$scope = opts.$scope || $(document.body); 135 | return opts; 136 | } 137 | }, 138 | 139 | // accepts a jQuery object, or an options object 140 | init: function(opts) { 141 | opts = this.helpers.parseOps(opts); 142 | 143 | // ensure that the data attribute is in place for styling 144 | opts.$nav.attr('data-toggle', 'toc'); 145 | 146 | var $topContext = this.helpers.createChildNavList(opts.$nav); 147 | var topLevel = this.helpers.getTopLevel(opts.$scope); 148 | var $headings = this.helpers.getHeadings(opts.$scope, topLevel); 149 | this.helpers.populateNav($topContext, topLevel, $headings); 150 | } 151 | }; 152 | 153 | $(function() { 154 | $('nav[data-toggle="toc"]').each(function(i, el) { 155 | var $nav = $(el); 156 | Toc.init($nav); 157 | }); 158 | }); 159 | })(); 160 | -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/font.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Lato'; 3 | font-style: italic; 4 | font-weight: 400; 5 | font-display: swap; 6 | src: url(fonts/S6u8w4BMUTPHjxswWA.woff) format('woff'); 7 | } 8 | @font-face { 9 | font-family: 'Lato'; 10 | font-style: normal; 11 | font-weight: 400; 12 | font-display: swap; 13 | src: url(fonts/S6uyw4BMUTPHvxo.woff) format('woff'); 14 | } 15 | @font-face { 16 | font-family: 'Lato'; 17 | font-style: normal; 18 | font-weight: 700; 19 | font-display: swap; 20 | src: url(fonts/S6u9w4BMUTPHh6UVeww.woff) format('woff'); 21 | } 22 | -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/4iCs6KVjbNBYlgo6ew.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/4iCs6KVjbNBYlgo6ew.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/4iCs6KVjbNBYlgoKfw7w.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/4iCs6KVjbNBYlgoKfw7w.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/4iCv6KVjbNBYlgoCxCvTtA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/4iCv6KVjbNBYlgoCxCvTtA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/4iCv6KVjbNBYlgoCxCvjsGyL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/4iCv6KVjbNBYlgoCxCvjsGyL.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/CSR64z1Qlv-GDxkbKVQ_TOQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/CSR64z1Qlv-GDxkbKVQ_TOQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/JTURjIg1_i6t8kCHKm45_ZpC7g0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/JTURjIg1_i6t8kCHKm45_ZpC7g0.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/JTURjIg1_i6t8kCHKm45_dJE7g0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/JTURjIg1_i6t8kCHKm45_dJE7g0.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/JTUSjIg1_i6t8kCHKm45xW0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/JTUSjIg1_i6t8kCHKm45xW0.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmEU9vAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmEU9vAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmSU5vAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmSU5vAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmWUlvAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOlCnqEu92Fr1MmWUlvAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOmCnqEu92Fr1Me5g.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOmCnqEu92Fr1Me5g.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/KFOmCnqEu92Fr1Mu4mxM.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/KFOmCnqEu92Fr1Mu4mxM.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6u8w4BMUTPHjxsAXC-s.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6u8w4BMUTPHjxsAXC-s.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6u8w4BMUTPHjxswWA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6u8w4BMUTPHjxswWA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh6UVSwiPHw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh6UVSwiPHw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh6UVeww.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh6UVeww.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh7USSwiPHw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh7USSwiPHw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh7USeww.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6u9w4BMUTPHh7USeww.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6uyw4BMUTPHjx4wWA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6uyw4BMUTPHjx4wWA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/S6uyw4BMUTPHvxo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/S6uyw4BMUTPHvxo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/XRXV3I6Li01BKof4MQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/XRXV3I6Li01BKof4MQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/XRXW3I6Li01BKofA6sKkZQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/XRXW3I6Li01BKofA6sKkZQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/XRXW3I6Li01BKofAjsOkZQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/XRXW3I6Li01BKofAjsOkZQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/pe03MImSLYBIv1o4X1M8cc9iB_5p.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/pe03MImSLYBIv1o4X1M8cc9iB_5p.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/pe0qMImSLYBIv1o4X1M8cfe5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/pe0qMImSLYBIv1o4X1M8cfe5.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.0/fonts/q5uGsou0JOdh94bfvQlr.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.0/fonts/q5uGsou0JOdh94bfvQlr.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/font.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Lato'; 3 | font-style: italic; 4 | font-weight: 400; 5 | font-display: swap; 6 | src: url(fonts/S6u8w4BMUTPHjxswWA.woff) format('woff'); 7 | } 8 | @font-face { 9 | font-family: 'Lato'; 10 | font-style: normal; 11 | font-weight: 400; 12 | font-display: swap; 13 | src: url(fonts/S6uyw4BMUTPHvxo.woff) format('woff'); 14 | } 15 | @font-face { 16 | font-family: 'Lato'; 17 | font-style: normal; 18 | font-weight: 700; 19 | font-display: swap; 20 | src: url(fonts/S6u9w4BMUTPHh6UVeww.woff) format('woff'); 21 | } 22 | -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/4iCs6KVjbNBYlgo6ew.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/4iCs6KVjbNBYlgo6ew.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/4iCs6KVjbNBYlgoKfw7w.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/4iCs6KVjbNBYlgoKfw7w.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/4iCv6KVjbNBYlgoCxCvTtA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/4iCv6KVjbNBYlgoCxCvTtA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/4iCv6KVjbNBYlgoCxCvjsGyL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/4iCv6KVjbNBYlgoCxCvjsGyL.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/CSR64z1Qlv-GDxkbKVQ_TOQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/CSR64z1Qlv-GDxkbKVQ_TOQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/JTURjIg1_i6t8kCHKm45_ZpC7g0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/JTURjIg1_i6t8kCHKm45_ZpC7g0.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/JTURjIg1_i6t8kCHKm45_dJE7g0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/JTURjIg1_i6t8kCHKm45_dJE7g0.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/JTUSjIg1_i6t8kCHKm45xW0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/JTUSjIg1_i6t8kCHKm45xW0.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmEU9vAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmEU9vAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmSU5vAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmSU5vAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmWUlvAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOlCnqEu92Fr1MmWUlvAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOmCnqEu92Fr1Me5g.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOmCnqEu92Fr1Me5g.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/KFOmCnqEu92Fr1Mu4mxM.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/KFOmCnqEu92Fr1Mu4mxM.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6u8w4BMUTPHjxsAXC-s.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6u8w4BMUTPHjxsAXC-s.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6u8w4BMUTPHjxswWA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6u8w4BMUTPHjxswWA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh6UVSwiPHw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh6UVSwiPHw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh6UVeww.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh6UVeww.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh7USSwiPHw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh7USSwiPHw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh7USeww.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6u9w4BMUTPHh7USeww.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6uyw4BMUTPHjx4wWA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6uyw4BMUTPHjx4wWA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/S6uyw4BMUTPHvxo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/S6uyw4BMUTPHvxo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/XRXV3I6Li01BKof4MQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/XRXV3I6Li01BKof4MQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/XRXW3I6Li01BKofA6sKkZQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/XRXW3I6Li01BKofA6sKkZQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/XRXW3I6Li01BKofAjsOkZQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/XRXW3I6Li01BKofAjsOkZQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/pe03MImSLYBIv1o4X1M8cc9iB_5p.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/pe03MImSLYBIv1o4X1M8cc9iB_5p.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/pe0qMImSLYBIv1o4X1M8cfe5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/pe0qMImSLYBIv1o4X1M8cfe5.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.1.3/fonts/q5uGsou0JOdh94bfvQlr.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.1.3/fonts/q5uGsou0JOdh94bfvQlr.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/font.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Lato'; 3 | font-style: italic; 4 | font-weight: 400; 5 | font-display: swap; 6 | src: url(fonts/S6u8w4BMUTPHjxswWA.woff) format('woff'); 7 | } 8 | @font-face { 9 | font-family: 'Lato'; 10 | font-style: normal; 11 | font-weight: 400; 12 | font-display: swap; 13 | src: url(fonts/S6uyw4BMUTPHvxo.woff) format('woff'); 14 | } 15 | @font-face { 16 | font-family: 'Lato'; 17 | font-style: normal; 18 | font-weight: 700; 19 | font-display: swap; 20 | src: url(fonts/S6u9w4BMUTPHh6UVeww.woff) format('woff'); 21 | } 22 | -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVs9pbCIPrc.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrc.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/1adeadb2fe618c5ed46221f15e12b9c8.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/1adeadb2fe618c5ed46221f15e12b9c8.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/4iCs6KVjbNBYlgo6ew.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/4iCs6KVjbNBYlgo6ew.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/4iCs6KVjbNBYlgoKfw7w.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/4iCs6KVjbNBYlgoKfw7w.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/4iCv6KVjbNBYlgoCxCvTtA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/4iCv6KVjbNBYlgoCxCvTtA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/4iCv6KVjbNBYlgoCxCvjsGyL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/4iCv6KVjbNBYlgoCxCvjsGyL.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7j.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3aPA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7j.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNRevw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvaNA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/CSR64z1Qlv-GDxkbKVQ_TOQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/CSR64z1Qlv-GDxkbKVQ_TOQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKSw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Ew9.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Ew9.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew9.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew9.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w9.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w9.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmEU9vAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmEU9vAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmSU5vAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmSU5vAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmWUlvAA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOlCnqEu92Fr1MmWUlvAA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOmCnqEu92Fr1Me5g.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOmCnqEu92Fr1Me5g.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/KFOmCnqEu92Fr1Mu4mxM.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/KFOmCnqEu92Fr1Mu4mxM.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhL.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6u8w4BMUTPHjxsAXC-s.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6u8w4BMUTPHjxsAXC-s.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6u8w4BMUTPHjxswWA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6u8w4BMUTPHjxswWA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh6UVSwiPHw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh6UVSwiPHw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh6UVeww.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh6UVeww.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh7USSwiPHw.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh7USSwiPHw.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh7USeww.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6u9w4BMUTPHh7USeww.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6uyw4BMUTPHjx4wWA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6uyw4BMUTPHjx4wWA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/S6uyw4BMUTPHvxo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/S6uyw4BMUTPHvxo.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZs.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDFwmRTA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDFwmRTA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDGUmRTA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDGUmRTA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDLshRTA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/XRXI3I6Li01BKofiOc5wtlZ2di8HDLshRTA.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/a98f7a7574819ba83bec6279a2cecd95.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/a98f7a7574819ba83bec6279a2cecd95.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk5hkaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0Rk8ZkaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjWVAexg.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memQYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWq8tWZ0Pw86hd0RkyFjaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1x4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0C4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVQ.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0C4k.woff -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.2.2/fonts/q5uGsou0JOdh94bfvQlr.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/deps/bootstrap-5.2.2/fonts/q5uGsou0JOdh94bfvQlr.woff -------------------------------------------------------------------------------- /docs/deps/data-deps.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/docsearch.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | // register a handler to move the focus to the search bar 4 | // upon pressing shift + "/" (i.e. "?") 5 | $(document).on('keydown', function(e) { 6 | if (e.shiftKey && e.keyCode == 191) { 7 | e.preventDefault(); 8 | $("#search-input").focus(); 9 | } 10 | }); 11 | 12 | $(document).ready(function() { 13 | // do keyword highlighting 14 | /* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */ 15 | var mark = function() { 16 | 17 | var referrer = document.URL ; 18 | var paramKey = "q" ; 19 | 20 | if (referrer.indexOf("?") !== -1) { 21 | var qs = referrer.substr(referrer.indexOf('?') + 1); 22 | var qs_noanchor = qs.split('#')[0]; 23 | var qsa = qs_noanchor.split('&'); 24 | var keyword = ""; 25 | 26 | for (var i = 0; i < qsa.length; i++) { 27 | var currentParam = qsa[i].split('='); 28 | 29 | if (currentParam.length !== 2) { 30 | continue; 31 | } 32 | 33 | if (currentParam[0] == paramKey) { 34 | keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20")); 35 | } 36 | } 37 | 38 | if (keyword !== "") { 39 | $(".contents").unmark({ 40 | done: function() { 41 | $(".contents").mark(keyword); 42 | } 43 | }); 44 | } 45 | } 46 | }; 47 | 48 | mark(); 49 | }); 50 | }); 51 | 52 | /* Search term highlighting ------------------------------*/ 53 | 54 | function matchedWords(hit) { 55 | var words = []; 56 | 57 | var hierarchy = hit._highlightResult.hierarchy; 58 | // loop to fetch from lvl0, lvl1, etc. 59 | for (var idx in hierarchy) { 60 | words = words.concat(hierarchy[idx].matchedWords); 61 | } 62 | 63 | var content = hit._highlightResult.content; 64 | if (content) { 65 | words = words.concat(content.matchedWords); 66 | } 67 | 68 | // return unique words 69 | var words_uniq = [...new Set(words)]; 70 | return words_uniq; 71 | } 72 | 73 | function updateHitURL(hit) { 74 | 75 | var words = matchedWords(hit); 76 | var url = ""; 77 | 78 | if (hit.anchor) { 79 | url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor; 80 | } else { 81 | url = hit.url + '?q=' + escape(words.join(" ")); 82 | } 83 | 84 | return url; 85 | } 86 | -------------------------------------------------------------------------------- /docs/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/favicon-16x16.png -------------------------------------------------------------------------------- /docs/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/favicon-32x32.png -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/favicon.ico -------------------------------------------------------------------------------- /docs/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /docs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/logo.png -------------------------------------------------------------------------------- /docs/pkgdown.js: -------------------------------------------------------------------------------- 1 | /* http://gregfranko.com/blog/jquery-best-practices/ */ 2 | (function($) { 3 | $(function() { 4 | 5 | $('nav.navbar').headroom(); 6 | 7 | Toc.init({ 8 | $nav: $("#toc"), 9 | $scope: $("main h2, main h3, main h4, main h5, main h6") 10 | }); 11 | 12 | if ($('#toc').length) { 13 | $('body').scrollspy({ 14 | target: '#toc', 15 | offset: $("nav.navbar").outerHeight() + 1 16 | }); 17 | } 18 | 19 | // Activate popovers 20 | $('[data-bs-toggle="popover"]').popover({ 21 | container: 'body', 22 | html: true, 23 | trigger: 'focus', 24 | placement: "top", 25 | sanitize: false, 26 | }); 27 | 28 | $('[data-bs-toggle="tooltip"]').tooltip(); 29 | 30 | /* Clipboard --------------------------*/ 31 | 32 | function changeTooltipMessage(element, msg) { 33 | var tooltipOriginalTitle=element.getAttribute('data-original-title'); 34 | element.setAttribute('data-original-title', msg); 35 | $(element).tooltip('show'); 36 | element.setAttribute('data-original-title', tooltipOriginalTitle); 37 | } 38 | 39 | if(ClipboardJS.isSupported()) { 40 | $(document).ready(function() { 41 | var copyButton = ""; 42 | 43 | $("div.sourceCode").addClass("hasCopyButton"); 44 | 45 | // Insert copy buttons: 46 | $(copyButton).prependTo(".hasCopyButton"); 47 | 48 | // Initialize tooltips: 49 | $('.btn-copy-ex').tooltip({container: 'body'}); 50 | 51 | // Initialize clipboard: 52 | var clipboard = new ClipboardJS('[data-clipboard-copy]', { 53 | text: function(trigger) { 54 | return trigger.parentNode.textContent.replace(/\n#>[^\n]*/g, ""); 55 | } 56 | }); 57 | 58 | clipboard.on('success', function(e) { 59 | changeTooltipMessage(e.trigger, 'Copied!'); 60 | e.clearSelection(); 61 | }); 62 | 63 | clipboard.on('error', function() { 64 | changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy'); 65 | }); 66 | 67 | }); 68 | } 69 | 70 | /* Search marking --------------------------*/ 71 | var url = new URL(window.location.href); 72 | var toMark = url.searchParams.get("q"); 73 | var mark = new Mark("div.col-md-9"); 74 | if (toMark) { 75 | mark.mark(toMark, { 76 | accuracy: { 77 | value: "complementary", 78 | limiters: [",", ".", ":", "/"], 79 | } 80 | }); 81 | } 82 | 83 | /* Search --------------------------*/ 84 | /* Adapted from https://github.com/rstudio/bookdown/blob/2d692ba4b61f1e466c92e78fd712b0ab08c11d31/inst/resources/bs4_book/bs4_book.js#L25 */ 85 | // Initialise search index on focus 86 | var fuse; 87 | $("#search-input").focus(async function(e) { 88 | if (fuse) { 89 | return; 90 | } 91 | 92 | $(e.target).addClass("loading"); 93 | var response = await fetch($("#search-input").data("search-index")); 94 | var data = await response.json(); 95 | 96 | var options = { 97 | keys: ["what", "text", "code"], 98 | ignoreLocation: true, 99 | threshold: 0.1, 100 | includeMatches: true, 101 | includeScore: true, 102 | }; 103 | fuse = new Fuse(data, options); 104 | 105 | $(e.target).removeClass("loading"); 106 | }); 107 | 108 | // Use algolia autocomplete 109 | var options = { 110 | autoselect: true, 111 | debug: true, 112 | hint: false, 113 | minLength: 2, 114 | }; 115 | var q; 116 | async function searchFuse(query, callback) { 117 | await fuse; 118 | 119 | var items; 120 | if (!fuse) { 121 | items = []; 122 | } else { 123 | q = query; 124 | var results = fuse.search(query, { limit: 20 }); 125 | items = results 126 | .filter((x) => x.score <= 0.75) 127 | .map((x) => x.item); 128 | if (items.length === 0) { 129 | items = [{dir:"Sorry 😿",previous_headings:"",title:"No results found.",what:"No results found.",path:window.location.href}]; 130 | } 131 | } 132 | callback(items); 133 | } 134 | $("#search-input").autocomplete(options, [ 135 | { 136 | name: "content", 137 | source: searchFuse, 138 | templates: { 139 | suggestion: (s) => { 140 | if (s.title == s.what) { 141 | return `${s.dir} >
    ${s.title}
    `; 142 | } else if (s.previous_headings == "") { 143 | return `${s.dir} >
    ${s.title}
    > ${s.what}`; 144 | } else { 145 | return `${s.dir} >
    ${s.title}
    > ${s.previous_headings} > ${s.what}`; 146 | } 147 | }, 148 | }, 149 | }, 150 | ]).on('autocomplete:selected', function(event, s) { 151 | window.location.href = s.path + "?q=" + q + "#" + s.id; 152 | }); 153 | }); 154 | })(window.jQuery || window.$) 155 | 156 | 157 | -------------------------------------------------------------------------------- /docs/pkgdown.yml: -------------------------------------------------------------------------------- 1 | pandoc: '3.2' 2 | pkgdown: 2.0.2 3 | pkgdown_sha: ~ 4 | articles: 5 | theft: theft.html 6 | last_built: 2025-02-03T10:02Z 7 | urls: 8 | reference: https://hendersontrent.github.io/theft/reference 9 | article: https://hendersontrent.github.io/theft/articles 10 | 11 | -------------------------------------------------------------------------------- /docs/reference/Rplot001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/Rplot001.png -------------------------------------------------------------------------------- /docs/reference/Rplot002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/Rplot002.png -------------------------------------------------------------------------------- /docs/reference/compute_top_features-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/compute_top_features-1.png -------------------------------------------------------------------------------- /docs/reference/compute_top_features-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/compute_top_features-2.png -------------------------------------------------------------------------------- /docs/reference/demo_multi_outputs.html: -------------------------------------------------------------------------------- 1 | 2 | Computed values for multi-feature classification results for use in vignette — demo_multi_outputs • theft 6 | Skip to contents 7 | 8 | 9 |
    41 |
    42 |
    47 | 48 |
    49 |

    Format is:

    50 |
    51 | 52 |
    53 |

    Usage

    54 |
    demo_multi_outputs
    55 |
    56 | 57 |
    58 |

    Format

    59 |

    A list object

    FeatureSetResultsPlot
    60 |

    ggplot comparing feature set classification accuracy

    61 | 62 |
    TestStatistics
    63 |

    data.frame of test statistics

    64 | 65 |
    RawClassificationResults
    66 |

    data.frame of raw classification accuracy

    67 | 68 | 69 |
    70 | 71 |
    73 | 74 | 75 |
    78 | 79 | 83 | 84 |
    85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /docs/reference/demo_outputs.html: -------------------------------------------------------------------------------- 1 | 2 | Computed values for top features results for use in vignette — demo_outputs • theft 6 | Skip to contents 7 | 8 | 9 |
    41 |
    42 |
    47 | 48 |
    49 |

    Format is:

    50 |
    51 | 52 |
    53 |

    Usage

    54 |
    demo_outputs
    55 |
    56 | 57 |
    58 |

    Format

    59 |

    A list object

    ResultsTable
    60 |

    data.frame of results for top features

    61 | 62 |
    FeatureFeatureCorrelationPlot
    63 |

    ggplot heatmap of feature-feature correlation matrix

    64 | 65 |
    ViolinPlots
    66 |

    ggplot of distributions rendered as violins for top features

    67 | 68 | 69 |
    70 | 71 |
    73 | 74 | 75 |
    78 | 79 | 83 | 84 |
    85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /docs/reference/feature_list.html: -------------------------------------------------------------------------------- 1 | 2 | All features available in theft in tidy format — feature_list • theft 6 | Skip to contents 7 | 8 | 9 |
    41 |
    42 |
    47 | 48 |
    49 |

    The variables include:

    50 |
    51 | 52 |
    53 |

    Usage

    54 |
    feature_list
    55 |
    56 | 57 |
    58 |

    Format

    59 |

    A tidy data frame with 2 variables:

    feature_set
    60 |

    Name of the set the feature is from

    61 | 62 |
    feature
    63 |

    Name of the feature

    64 | 65 | 66 |
    67 | 68 |
    70 | 71 | 72 |
    75 | 76 | 80 | 81 |
    82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /docs/reference/figures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/figures/logo.png -------------------------------------------------------------------------------- /docs/reference/figures/theft-ecosystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/figures/theft-ecosystem.png -------------------------------------------------------------------------------- /docs/reference/figures/theft-packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/figures/theft-packages.png -------------------------------------------------------------------------------- /docs/reference/plot_all_features-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/plot_all_features-1.png -------------------------------------------------------------------------------- /docs/reference/plot_feature_correlations-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/plot_feature_correlations-1.png -------------------------------------------------------------------------------- /docs/reference/plot_feature_matrix-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/plot_feature_matrix-1.png -------------------------------------------------------------------------------- /docs/reference/plot_low_dimension-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/plot_low_dimension-1.png -------------------------------------------------------------------------------- /docs/reference/plot_quality_matrix-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/plot_quality_matrix-1.png -------------------------------------------------------------------------------- /docs/reference/plot_ts_correlations-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/docs/reference/plot_ts_correlations-1.png -------------------------------------------------------------------------------- /docs/reference/theft.html: -------------------------------------------------------------------------------- 1 | 2 | Tools for Handling Extraction of Features from Time-series — theft • theft 6 | Skip to contents 7 | 8 | 9 |
    41 |
    42 |
    47 | 48 |
    49 |

    Tools for Handling Extraction of Features from Time-series

    50 |
    51 | 52 | 53 | 54 |
    55 | 56 | 57 |
    60 | 61 | 65 | 66 |
    67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /docs/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://hendersontrent.github.io/theft/404.html 5 | 6 | 7 | https://hendersontrent.github.io/theft/LICENSE-text.html 8 | 9 | 10 | https://hendersontrent.github.io/theft/LICENSE.html 11 | 12 | 13 | https://hendersontrent.github.io/theft/articles/index.html 14 | 15 | 16 | https://hendersontrent.github.io/theft/articles/theft.html 17 | 18 | 19 | https://hendersontrent.github.io/theft/authors.html 20 | 21 | 22 | https://hendersontrent.github.io/theft/index.html 23 | 24 | 25 | https://hendersontrent.github.io/theft/reference/calculate_features.html 26 | 27 | 28 | https://hendersontrent.github.io/theft/reference/calculate_interval.html 29 | 30 | 31 | https://hendersontrent.github.io/theft/reference/check_vector_quality.html 32 | 33 | 34 | https://hendersontrent.github.io/theft/reference/compare_features.html 35 | 36 | 37 | https://hendersontrent.github.io/theft/reference/compute_top_features.html 38 | 39 | 40 | https://hendersontrent.github.io/theft/reference/demo_multi_outputs.html 41 | 42 | 43 | https://hendersontrent.github.io/theft/reference/demo_outputs.html 44 | 45 | 46 | https://hendersontrent.github.io/theft/reference/feature_list.html 47 | 48 | 49 | https://hendersontrent.github.io/theft/reference/filter_duplicates.html 50 | 51 | 52 | https://hendersontrent.github.io/theft/reference/filter_good_features.html 53 | 54 | 55 | https://hendersontrent.github.io/theft/reference/find_good_features.html 56 | 57 | 58 | https://hendersontrent.github.io/theft/reference/fit_models.html 59 | 60 | 61 | https://hendersontrent.github.io/theft/reference/fit_multi_feature_classifier.html 62 | 63 | 64 | https://hendersontrent.github.io/theft/reference/fit_multivariable_classifier.html 65 | 66 | 67 | https://hendersontrent.github.io/theft/reference/fit_single_feature_classifier.html 68 | 69 | 70 | https://hendersontrent.github.io/theft/reference/fit_univariable_classifier.html 71 | 72 | 73 | https://hendersontrent.github.io/theft/reference/get_rescale_vals.html 74 | 75 | 76 | https://hendersontrent.github.io/theft/reference/index.html 77 | 78 | 79 | https://hendersontrent.github.io/theft/reference/init_theft.html 80 | 81 | 82 | https://hendersontrent.github.io/theft/reference/install_kats.html 83 | 84 | 85 | https://hendersontrent.github.io/theft/reference/install_python_pkgs.html 86 | 87 | 88 | https://hendersontrent.github.io/theft/reference/install_tsfel.html 89 | 90 | 91 | https://hendersontrent.github.io/theft/reference/install_tsfresh.html 92 | 93 | 94 | https://hendersontrent.github.io/theft/reference/make_title.html 95 | 96 | 97 | https://hendersontrent.github.io/theft/reference/maxabs_scaler.html 98 | 99 | 100 | https://hendersontrent.github.io/theft/reference/minmax_scaler.html 101 | 102 | 103 | https://hendersontrent.github.io/theft/reference/normalise.html 104 | 105 | 106 | https://hendersontrent.github.io/theft/reference/normalise_feature_frame.html 107 | 108 | 109 | https://hendersontrent.github.io/theft/reference/normalise_feature_vector.html 110 | 111 | 112 | https://hendersontrent.github.io/theft/reference/normalize_feature_frame.html 113 | 114 | 115 | https://hendersontrent.github.io/theft/reference/normalize_feature_vector.html 116 | 117 | 118 | https://hendersontrent.github.io/theft/reference/plot.feature_calculations.html 119 | 120 | 121 | https://hendersontrent.github.io/theft/reference/plot.low_dimension.html 122 | 123 | 124 | https://hendersontrent.github.io/theft/reference/plot_all_features.html 125 | 126 | 127 | https://hendersontrent.github.io/theft/reference/plot_feature_correlations.html 128 | 129 | 130 | https://hendersontrent.github.io/theft/reference/plot_feature_matrix.html 131 | 132 | 133 | https://hendersontrent.github.io/theft/reference/plot_low_dimension.html 134 | 135 | 136 | https://hendersontrent.github.io/theft/reference/plot_quality_matrix.html 137 | 138 | 139 | https://hendersontrent.github.io/theft/reference/plot_ts_correlations.html 140 | 141 | 142 | https://hendersontrent.github.io/theft/reference/process_hctsa_file.html 143 | 144 | 145 | https://hendersontrent.github.io/theft/reference/reduce_dims.html 146 | 147 | 148 | https://hendersontrent.github.io/theft/reference/resample_data.html 149 | 150 | 151 | https://hendersontrent.github.io/theft/reference/resampled_ttest.html 152 | 153 | 154 | https://hendersontrent.github.io/theft/reference/rescale_zscore.html 155 | 156 | 157 | https://hendersontrent.github.io/theft/reference/robustsigmoid_scaler.html 158 | 159 | 160 | https://hendersontrent.github.io/theft/reference/select_k_best.html 161 | 162 | 163 | https://hendersontrent.github.io/theft/reference/select_stat_cols.html 164 | 165 | 166 | https://hendersontrent.github.io/theft/reference/sigmoid_scaler.html 167 | 168 | 169 | https://hendersontrent.github.io/theft/reference/simData.html 170 | 171 | 172 | https://hendersontrent.github.io/theft/reference/stat_test.html 173 | 174 | 175 | https://hendersontrent.github.io/theft/reference/theft.html 176 | 177 | 178 | https://hendersontrent.github.io/theft/reference/tsfeature_classifier.html 179 | 180 | 181 | https://hendersontrent.github.io/theft/reference/zscore_scaler.html 182 | 183 | 184 | -------------------------------------------------------------------------------- /inst/python/kats_calculator.py: -------------------------------------------------------------------------------- 1 | #--------------------------------------- 2 | # This script sets out to define a call 3 | # to {Kats} to calculate all available 4 | # features on a given input time series 5 | #--------------------------------------- 6 | 7 | #--------------------------------------- 8 | # Author: Trent Henderson, 24 June 2021 9 | #--------------------------------------- 10 | 11 | def kats_calculator(timepoints, values): 12 | 13 | import pandas as pd 14 | from kats.consts import TimeSeriesData 15 | from kats.tsfeatures.tsfeatures import TsFeatures 16 | 17 | # Transform data to correct object 18 | 19 | data = pd.DataFrame({'time':timepoints, 'value':values}) 20 | data['time'] = pd.to_datetime(data['time']) 21 | data['time'] = [x.date() for x in data.time] 22 | data = TimeSeriesData(data) 23 | 24 | # Instantiate TsFeatures 25 | 26 | model = TsFeatures() 27 | 28 | # Run calculations 29 | 30 | extracted_features = model.transform(data) 31 | 32 | return extracted_features 33 | -------------------------------------------------------------------------------- /inst/python/tsfel_calculator.py: -------------------------------------------------------------------------------- 1 | #--------------------------------------- 2 | # This script sets out to define a call 3 | # to {TSFEL} to calculate all available 4 | # features on a given input time series 5 | #--------------------------------------- 6 | 7 | #--------------------------------------- 8 | # Author: Trent Henderson, 19 April 2021 9 | #--------------------------------------- 10 | 11 | def tsfel_calculator(x): 12 | 13 | import tsfel 14 | 15 | # Instantiate calculation configuration 16 | 17 | cfg_file = tsfel.get_features_by_domain() 18 | 19 | # Produce calculations 20 | 21 | extracted_features = tsfel.time_series_features_extractor(cfg_file, x, verbose=0) 22 | 23 | return extracted_features 24 | -------------------------------------------------------------------------------- /inst/python/tsfresh_calculator.py: -------------------------------------------------------------------------------- 1 | #--------------------------------------- 2 | # This script sets out to define a call 3 | # to {tsfresh} to calculate all available 4 | # features on a given input time series 5 | #--------------------------------------- 6 | 7 | #--------------------------------------- 8 | # Author: Trent Henderson, 15 April 2021 9 | #--------------------------------------- 10 | 11 | def tsfresh_calculator(timeseries, column_id, column_sort, cleanup, classes = None): 12 | 13 | from tsfresh import extract_features 14 | from tsfresh import extract_relevant_features 15 | import pandas as pd 16 | 17 | if cleanup == "Yes": 18 | y = pd.Series(classes['group'].values, index=classes['id']) 19 | extracted_features = extract_relevant_features(timeseries, y, column_id = column_id, column_sort = column_sort) 20 | else: 21 | extracted_features = extract_features(timeseries, column_id = column_id, column_sort = column_sort) 22 | 23 | return extracted_features 24 | -------------------------------------------------------------------------------- /man/calculate_features.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/calculate_features.R 3 | \name{calculate_features} 4 | \alias{calculate_features} 5 | \title{Compute features on an input time series dataset} 6 | \usage{ 7 | calculate_features( 8 | data, 9 | id_var = "id", 10 | time_var = "timepoint", 11 | values_var = "values", 12 | group_var = NULL, 13 | feature_set = c("catch22", "feasts", "tsfeatures", "Kats", "tsfresh", "TSFEL"), 14 | catch24 = FALSE, 15 | tsfresh_cleanup = FALSE, 16 | features = NULL, 17 | seed = 123 18 | ) 19 | } 20 | \arguments{ 21 | \item{data}{\code{data.frame} with at least 4 columns: id variable, group variable, time variable, value variable} 22 | 23 | \item{id_var}{\code{character} specifying the ID variable to identify each time series. Defaults to \code{"id"}} 24 | 25 | \item{time_var}{\code{character} specifying the time index variable. Defaults to \code{"timepoint"}} 26 | 27 | \item{values_var}{\code{character} specifying the values variable. Defaults to \code{"values"}} 28 | 29 | \item{group_var}{\code{character} specifying the grouping variable that each unique series sits under (if one exists). Defaults to \code{NULL}} 30 | 31 | \item{feature_set}{\code{character} or \code{vector} of \code{character} denoting the set of time-series features to calculate. Defaults to \code{"catch22"}} 32 | 33 | \item{catch24}{\code{Boolean} specifying whether to compute \code{catch24} in addition to \code{catch22} if \code{catch22} is one of the feature sets selected. Defaults to \code{FALSE}} 34 | 35 | \item{tsfresh_cleanup}{\code{Boolean} specifying whether to use the in-built \code{tsfresh} relevant feature filter or not. Defaults to \code{FALSE}} 36 | 37 | \item{features}{named \code{list} containing a set of user-supplied functions to calculate on \code{data}. Each function should take a single argument which is the time series. Defaults to \code{NULL} for no manually-specified features. Each list entry must have a name as \code{calculate_features} looks for these to name the features. If you don't want to use the existing feature sets and only compute those passed to \code{features}, set \code{feature_set = NULL}} 38 | 39 | \item{seed}{\code{integer} denoting a fixed number for R's random number generator to ensure reproducibility. Defaults to \code{123}} 40 | } 41 | \value{ 42 | object of class \code{feature_calculations} that contains the summary statistics for each feature 43 | } 44 | \description{ 45 | Compute features on an input time series dataset 46 | } 47 | \examples{ 48 | featMat <- calculate_features(data = simData, 49 | id_var = "id", 50 | time_var = "timepoint", 51 | values_var = "values", 52 | group_var = "process", 53 | feature_set = "catch22", 54 | seed = 123) 55 | 56 | } 57 | \author{ 58 | Trent Henderson 59 | } 60 | -------------------------------------------------------------------------------- /man/check_vector_quality.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/check_vector_quality.R 3 | \name{check_vector_quality} 4 | \alias{check_vector_quality} 5 | \title{Check for presence of NAs and non-numerics in a vector} 6 | \usage{ 7 | check_vector_quality(x) 8 | } 9 | \arguments{ 10 | \item{x}{input \code{vector}} 11 | } 12 | \value{ 13 | \code{Boolean} of whether the data is good to extract features on or not 14 | } 15 | \description{ 16 | Check for presence of NAs and non-numerics in a vector 17 | } 18 | \author{ 19 | Trent Henderson 20 | } 21 | -------------------------------------------------------------------------------- /man/feature_list.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/data.R 3 | \docType{data} 4 | \name{feature_list} 5 | \alias{feature_list} 6 | \title{All features available in theft in tidy format} 7 | \format{ 8 | A tidy data frame with 2 variables: 9 | \describe{ 10 | \item{feature_set}{Name of the set the feature is from} 11 | \item{feature}{Name of the feature} 12 | } 13 | } 14 | \usage{ 15 | feature_list 16 | } 17 | \description{ 18 | The variables include: 19 | } 20 | \keyword{datasets} 21 | -------------------------------------------------------------------------------- /man/figures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/man/figures/logo.png -------------------------------------------------------------------------------- /man/figures/theft-ecosystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/man/figures/theft-ecosystem.png -------------------------------------------------------------------------------- /man/figures/theft-packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/man/figures/theft-packages.png -------------------------------------------------------------------------------- /man/init_theft.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/init_theft.R 3 | \name{init_theft} 4 | \alias{init_theft} 5 | \title{Communicate to R the Python virtual environment containing the relevant libraries for calculating features} 6 | \usage{ 7 | init_theft(venv) 8 | } 9 | \arguments{ 10 | \item{venv}{\code{character} specifying the name of the to the Python virtual environment where \code{"tsfresh"}, \code{"TSFEL"}, and/or \code{"Kats"} are installed} 11 | } 12 | \value{ 13 | no return value; called for side effects 14 | } 15 | \description{ 16 | Communicate to R the Python virtual environment containing the relevant libraries for calculating features 17 | } 18 | \examples{ 19 | \dontrun{ 20 | install_python_pkgs("theft-test") 21 | init_theft("theft-test") 22 | } 23 | 24 | } 25 | \author{ 26 | Trent Henderson 27 | } 28 | -------------------------------------------------------------------------------- /man/install_kats.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/installs.R 3 | \name{install_kats} 4 | \alias{install_kats} 5 | \title{Download and install Kats from Python into a new virtual environment} 6 | \usage{ 7 | install_kats(venv, python) 8 | } 9 | \arguments{ 10 | \item{venv}{\code{character} specifying the name of the new virtual environment to create} 11 | 12 | \item{python}{\code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended} 13 | } 14 | \value{ 15 | no return value; called for side effects 16 | } 17 | \description{ 18 | Download and install Kats from Python into a new virtual environment 19 | } 20 | \examples{ 21 | \dontrun{ 22 | install_kats("theft-test", "/usr/local/bin/python3.10") 23 | } 24 | 25 | } 26 | \author{ 27 | Trent Henderson 28 | } 29 | -------------------------------------------------------------------------------- /man/install_python_pkgs.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/installs.R 3 | \name{install_python_pkgs} 4 | \alias{install_python_pkgs} 5 | \title{Download and install tsfresh, TSFEL, and Kats from Python into a new virtual environment} 6 | \usage{ 7 | install_python_pkgs(venv, python) 8 | } 9 | \arguments{ 10 | \item{venv}{\code{character} specifying the name of the new virtual environment to create} 11 | 12 | \item{python}{\code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended} 13 | } 14 | \value{ 15 | no return value; called for side effects 16 | } 17 | \description{ 18 | Download and install tsfresh, TSFEL, and Kats from Python into a new virtual environment 19 | } 20 | \examples{ 21 | \dontrun{ 22 | install_python_pkgs("theft-test", "/usr/local/bin/python3.10") 23 | } 24 | 25 | } 26 | \author{ 27 | Trent Henderson 28 | } 29 | -------------------------------------------------------------------------------- /man/install_tsfel.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/installs.R 3 | \name{install_tsfel} 4 | \alias{install_tsfel} 5 | \title{Download and install TSFEL from Python into a new virtual environment} 6 | \usage{ 7 | install_tsfel(venv, python) 8 | } 9 | \arguments{ 10 | \item{venv}{\code{character} specifying the name of the new virtual environment to create} 11 | 12 | \item{python}{\code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended} 13 | } 14 | \value{ 15 | no return value; called for side effects 16 | } 17 | \description{ 18 | Download and install TSFEL from Python into a new virtual environment 19 | } 20 | \examples{ 21 | \dontrun{ 22 | install_tsfel("theft-test", "/usr/local/bin/python3.10") 23 | } 24 | 25 | } 26 | \author{ 27 | Trent Henderson 28 | } 29 | -------------------------------------------------------------------------------- /man/install_tsfresh.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/installs.R 3 | \name{install_tsfresh} 4 | \alias{install_tsfresh} 5 | \title{Download and install tsfresh from Python into a new virtual environment} 6 | \usage{ 7 | install_tsfresh(venv, python) 8 | } 9 | \arguments{ 10 | \item{venv}{\code{character} specifying the name of the new virtual environment to create} 11 | 12 | \item{python}{\code{character} specifying the filepath to the Python interpreter to use. Python 3.10 is recommended} 13 | } 14 | \value{ 15 | no return value; called for side effects 16 | } 17 | \description{ 18 | Download and install tsfresh from Python into a new virtual environment 19 | } 20 | \examples{ 21 | \dontrun{ 22 | install_tsfresh("theft-test", "/usr/local/bin/python3.10") 23 | } 24 | 25 | } 26 | \author{ 27 | Trent Henderson 28 | } 29 | -------------------------------------------------------------------------------- /man/process_hctsa_file.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/process_hctsa_file.R 3 | \name{process_hctsa_file} 4 | \alias{process_hctsa_file} 5 | \title{Load in hctsa formatted MATLAB files of time series data into a tidy format ready for feature extraction} 6 | \usage{ 7 | process_hctsa_file(data) 8 | } 9 | \arguments{ 10 | \item{data}{\code{string} specifying the filepath to the \code{MATLAB} file to parse} 11 | } 12 | \value{ 13 | an object of class \code{data.frame} in tidy format 14 | } 15 | \description{ 16 | Load in hctsa formatted MATLAB files of time series data into a tidy format ready for feature extraction 17 | } 18 | \author{ 19 | Trent Henderson 20 | } 21 | -------------------------------------------------------------------------------- /man/simData.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/data.R 3 | \docType{data} 4 | \name{simData} 5 | \alias{simData} 6 | \title{Sample of randomly-generated time series to produce function tests and vignettes} 7 | \format{ 8 | A tidy data frame with 4 variables: 9 | \describe{ 10 | \item{id}{Unique identifier for the time series} 11 | \item{timepoint}{Time index} 12 | \item{values}{Value} 13 | \item{process}{Group label for the type of time series} 14 | } 15 | } 16 | \usage{ 17 | simData 18 | } 19 | \description{ 20 | The variables include: 21 | } 22 | \keyword{datasets} 23 | -------------------------------------------------------------------------------- /man/theft.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/theft.R 3 | \docType{package} 4 | \name{theft} 5 | \alias{theft} 6 | \alias{theft-package} 7 | \title{Tools for Handling Extraction of Features from Time-series} 8 | \description{ 9 | Tools for Handling Extraction of Features from Time-series 10 | } 11 | -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /pkgdown/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /pkgdown/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /pkgdown/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /pkgdown/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hendersontrent/theft/6f2e3094984799f909a6d4e252d0ea8e4d5b836a/pkgdown/favicon/favicon.ico -------------------------------------------------------------------------------- /tests/testthat.R: -------------------------------------------------------------------------------- 1 | library(testthat) 2 | library(theft) 3 | 4 | test_check("theft") 5 | -------------------------------------------------------------------------------- /tests/testthat/helper-core_data.R: -------------------------------------------------------------------------------- 1 | library(theft) 2 | tmp <- theft::simData 3 | tmp <- tmp[tmp$process %in% c("Gaussian Noise", "AR(1)"), ] 4 | 5 | feature_matrix <- calculate_features(data = tmp, 6 | id_var = "id", 7 | time_var = "timepoint", 8 | values_var = "values", 9 | group_var = "process", 10 | feature_set = "catch22", 11 | catch24 = FALSE) 12 | -------------------------------------------------------------------------------- /tests/testthat/test-calculate_features.R: -------------------------------------------------------------------------------- 1 | context("test-calculate_features") 2 | 3 | test_that("catch22 feature calculation", { 4 | 5 | expect_equal(22 * length(unique(tmp$id)), nrow(feature_matrix)) 6 | }) 7 | 8 | test_that("feasts feature calculation", { 9 | 10 | skip_on_cran() 11 | 12 | features_feasts <- calculate_features(data = tmp, 13 | id_var = "id", 14 | time_var = "timepoint", 15 | values_var = "values", 16 | group_var = "process", 17 | feature_set = "feasts") 18 | 19 | expect_equal(43 * length(unique(tmp$id)), nrow(features_feasts)) 20 | }) 21 | 22 | test_that("custom feature calculation", { 23 | 24 | features_custom <- calculate_features(data = tmp, 25 | group_var = "process", 26 | feature_set = NULL, 27 | features = list("mean" = mean, "sd" = sd)) 28 | 29 | expect_equal(2 * length(unique(tmp$id)), nrow(features_custom)) 30 | }) 31 | -------------------------------------------------------------------------------- /theft.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | BuildType: Package 16 | PackageUseDevtools: Yes 17 | PackageInstallArgs: --no-multiarch --with-keep.source 18 | --------------------------------------------------------------------------------