Full Code of zysyyz/Signxx for AI

master 86e979f4ae6a cached
1051 files
20.9 MB
5.6M tokens
6837 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (23,369K chars total). Download the full file to get everything.
Repository: zysyyz/Signxx
Branch: master
Commit: 86e979f4ae6a
Files: 1051
Total size: 20.9 MB

Directory structure:
gitextract_5gj8aafz/

├── .htaccess
├── Application/
│   ├── Common/
│   │   ├── Conf/
│   │   │   ├── config.php
│   │   │   └── index.html
│   │   ├── Controller/
│   │   │   └── BaseController.class.php
│   │   └── index.html
│   ├── Home/
│   │   ├── Common/
│   │   │   ├── Des/
│   │   │   │   └── DES.php
│   │   │   ├── Email/
│   │   │   │   └── email.class.php
│   │   │   ├── Rsa/
│   │   │   │   ├── BigInteger.php
│   │   │   │   └── rsa.php
│   │   │   └── index.html
│   │   ├── Conf/
│   │   │   ├── config.php
│   │   │   └── index.html
│   │   ├── Controller/
│   │   │   ├── AuthController.class.php
│   │   │   ├── BatchoperaController.class.php
│   │   │   ├── ChangesoftController.class.php
│   │   │   ├── ContactController.class.php
│   │   │   ├── CreatecodeController.class.php
│   │   │   ├── ForgetController.class.php
│   │   │   ├── IndexController.class.php
│   │   │   ├── LoginController.class.php
│   │   │   ├── ManagecodeController.class.php
│   │   │   ├── ManagesoftController.class.php
│   │   │   ├── ModifypasswordController.class.php
│   │   │   ├── NoticeController.class.php
│   │   │   ├── RecommendController.class.php
│   │   │   ├── RegController.class.php
│   │   │   ├── SupportController.class.php
│   │   │   └── index.html
│   │   ├── Model/
│   │   │   └── index.html
│   │   ├── Tool/
│   │   │   ├── HJCTool.class.php
│   │   │   └── Secret.class.php
│   │   ├── View/
│   │   │   ├── 20170117.log
│   │   │   ├── 20170117_offline.log
│   │   │   ├── Batchopera/
│   │   │   │   └── index.html
│   │   │   ├── Changesoft/
│   │   │   │   └── index.html
│   │   │   ├── Common/
│   │   │   │   ├── Navigation.html
│   │   │   │   └── Sidebar.html
│   │   │   ├── Contact/
│   │   │   │   └── index.html
│   │   │   ├── Createcode/
│   │   │   │   └── index.html
│   │   │   ├── Forget/
│   │   │   │   └── index.html
│   │   │   ├── Index/
│   │   │   │   └── index.html
│   │   │   ├── Login/
│   │   │   │   └── index.html
│   │   │   ├── Managecode/
│   │   │   │   ├── codedetail.html
│   │   │   │   └── index.html
│   │   │   ├── Managesoft/
│   │   │   │   └── index.html
│   │   │   ├── Modifypassword/
│   │   │   │   └── index.html
│   │   │   ├── Notice/
│   │   │   │   └── index.html
│   │   │   ├── Recommend/
│   │   │   │   └── index.html
│   │   │   ├── Reg/
│   │   │   │   └── index.html
│   │   │   ├── Support/
│   │   │   │   └── index.html
│   │   │   └── index.html
│   │   └── index.html
│   ├── Index/
│   │   ├── Common/
│   │   │   └── index.html
│   │   ├── Conf/
│   │   │   ├── config.php
│   │   │   └── index.html
│   │   ├── Controller/
│   │   │   ├── IndexController.class.php
│   │   │   ├── IntroController.class.php
│   │   │   ├── SdkController.class.php
│   │   │   └── index.html
│   │   ├── Model/
│   │   │   └── index.html
│   │   ├── View/
│   │   │   ├── Common/
│   │   │   │   └── bottom.html
│   │   │   ├── Index/
│   │   │   │   └── index.html
│   │   │   ├── Intro/
│   │   │   │   └── index.html
│   │   │   └── Sdk/
│   │   │       ├── 20161213.log
│   │   │       ├── index.html
│   │   │       └── phpwind/
│   │   │           ├── Application/
│   │   │           │   ├── Common/
│   │   │           │   │   ├── Conf/
│   │   │           │   │   │   ├── config.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Controller/
│   │   │           │   │   │   └── BaseController.class.php
│   │   │           │   │   └── index.html
│   │   │           │   ├── Home/
│   │   │           │   │   ├── Common/
│   │   │           │   │   │   ├── Des/
│   │   │           │   │   │   │   └── DES.php
│   │   │           │   │   │   ├── Email/
│   │   │           │   │   │   │   └── email.class.php
│   │   │           │   │   │   ├── Rsa/
│   │   │           │   │   │   │   ├── BigInteger.php
│   │   │           │   │   │   │   └── rsa.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Conf/
│   │   │           │   │   │   ├── config.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Controller/
│   │   │           │   │   │   ├── AuthController.class.php
│   │   │           │   │   │   ├── BatchoperaController.class.php
│   │   │           │   │   │   ├── ChangesoftController.class.php
│   │   │           │   │   │   ├── ContactController.class.php
│   │   │           │   │   │   ├── CreatecodeController.class.php
│   │   │           │   │   │   ├── ForgetController.class.php
│   │   │           │   │   │   ├── IndexController.class.php
│   │   │           │   │   │   ├── LoginController.class.php
│   │   │           │   │   │   ├── ManagecodeController.class.php
│   │   │           │   │   │   ├── ManagesoftController.class.php
│   │   │           │   │   │   ├── ModifypasswordController.class.php
│   │   │           │   │   │   ├── NoticeController.class.php
│   │   │           │   │   │   ├── RecommendController.class.php
│   │   │           │   │   │   ├── RegController.class.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Model/
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Tool/
│   │   │           │   │   │   ├── HJCTool.class.php
│   │   │           │   │   │   └── Secret.class.php
│   │   │           │   │   ├── View/
│   │   │           │   │   │   ├── Batchopera/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Changesoft/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Common/
│   │   │           │   │   │   │   ├── Navigation.html
│   │   │           │   │   │   │   └── Sidebar.html
│   │   │           │   │   │   ├── Contact/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Createcode/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Forget/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Index/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Login/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Managecode/
│   │   │           │   │   │   │   ├── codedetail.html
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Managesoft/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Modifypassword/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Notice/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Recommend/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Reg/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   └── index.html
│   │   │           │   │   └── index.html
│   │   │           │   ├── Index/
│   │   │           │   │   ├── Common/
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Conf/
│   │   │           │   │   │   ├── config.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Controller/
│   │   │           │   │   │   ├── IndexController.class.php
│   │   │           │   │   │   ├── IntroController.class.php
│   │   │           │   │   │   ├── SdkController.class.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Model/
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── View/
│   │   │           │   │   │   ├── Common/
│   │   │           │   │   │   │   └── bottom.html
│   │   │           │   │   │   ├── Index/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Intro/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   └── Sdk/
│   │   │           │   │   │       └── index.html
│   │   │           │   │   └── index.html
│   │   │           │   ├── Runtime/
│   │   │           │   │   ├── Cache/
│   │   │           │   │   │   ├── Home/
│   │   │           │   │   │   │   ├── 06ef0777486b95c53697451727fb2559.php
│   │   │           │   │   │   │   ├── 16012e40a7f6b510e9943e72b2944ba3.php
│   │   │           │   │   │   │   ├── 2a94b8bda04ff446dcedd42276fc99ee.php
│   │   │           │   │   │   │   ├── 37463860a5957117a109995a25189f7b.php
│   │   │           │   │   │   │   ├── 3d6919c87dcf7f6dc5dd93550a60805c.php
│   │   │           │   │   │   │   ├── 51be2cf80887e4b3f7c7b5f2580b7741.php
│   │   │           │   │   │   │   ├── 5a2799c2daf86e72afb6e10b79abf938.php
│   │   │           │   │   │   │   ├── 5b6adcb62ad2b5dfc2abc2cd5e11dc99.php
│   │   │           │   │   │   │   ├── 7fb85fe909f9e7c2807e96ab6513ce43.php
│   │   │           │   │   │   │   ├── 93e4a3a9c66f040f231c73f2286359f2.php
│   │   │           │   │   │   │   ├── 9d0babcb361c76b4b54c521c429b1099.php
│   │   │           │   │   │   │   ├── a04edf75bfbc138def13a449e9662905.php
│   │   │           │   │   │   │   ├── d8343976f86a51d40bd311b0f544aaf0.php
│   │   │           │   │   │   │   └── f732a99cc83d472785d17a30d8704609.php
│   │   │           │   │   │   └── Index/
│   │   │           │   │   │       ├── 336eda2ba27f284d77868f4fbe143861.php
│   │   │           │   │   │       ├── 5f343310d4a83e1c2f6d4e5a6181e90a.php
│   │   │           │   │   │       └── 6e2d0af3fe39b09386af2f6295df327a.php
│   │   │           │   │   ├── Data/
│   │   │           │   │   │   ├── _fields/
│   │   │           │   │   │   │   ├── cloud.cloud_notice.php
│   │   │           │   │   │   │   ├── cloud.cloud_regcode.php
│   │   │           │   │   │   │   ├── cloud.cloud_software.php
│   │   │           │   │   │   │   ├── cloud.cloud_trial.php
│   │   │           │   │   │   │   ├── cloud.cloud_user.php
│   │   │           │   │   │   │   └── cms.cms_manage.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Logs/
│   │   │           │   │   │   ├── Common/
│   │   │           │   │   │   │   └── 16_11_30.log
│   │   │           │   │   │   ├── Home/
│   │   │           │   │   │   │   ├── 16_09_29.log
│   │   │           │   │   │   │   ├── 16_09_30.log
│   │   │           │   │   │   │   ├── 16_10_01.log
│   │   │           │   │   │   │   ├── 16_10_02.log
│   │   │           │   │   │   │   ├── 16_10_09.log
│   │   │           │   │   │   │   ├── 16_10_13.log
│   │   │           │   │   │   │   ├── 16_10_18.log
│   │   │           │   │   │   │   ├── 16_10_25.log
│   │   │           │   │   │   │   ├── 16_11_08.log
│   │   │           │   │   │   │   ├── 16_11_13.log
│   │   │           │   │   │   │   ├── 16_11_17.log
│   │   │           │   │   │   │   ├── 16_11_20.log
│   │   │           │   │   │   │   ├── 16_11_28.log
│   │   │           │   │   │   │   ├── 16_12_01.log
│   │   │           │   │   │   │   ├── 16_12_02.log
│   │   │           │   │   │   │   ├── 16_12_06.log
│   │   │           │   │   │   │   └── 16_12_12.log
│   │   │           │   │   │   └── Index/
│   │   │           │   │   │       ├── 16_09_29.log
│   │   │           │   │   │       ├── 16_09_30.log
│   │   │           │   │   │       ├── 16_10_01.log
│   │   │           │   │   │       ├── 16_10_02.log
│   │   │           │   │   │       ├── 16_10_03.log
│   │   │           │   │   │       ├── 16_10_04.log
│   │   │           │   │   │       ├── 16_10_05.log
│   │   │           │   │   │       ├── 16_10_06.log
│   │   │           │   │   │       ├── 16_10_07.log
│   │   │           │   │   │       ├── 16_10_08.log
│   │   │           │   │   │       ├── 16_10_09.log
│   │   │           │   │   │       ├── 16_10_10.log
│   │   │           │   │   │       ├── 16_10_11.log
│   │   │           │   │   │       ├── 16_10_12.log
│   │   │           │   │   │       ├── 16_10_13.log
│   │   │           │   │   │       ├── 16_10_14.log
│   │   │           │   │   │       ├── 16_10_15.log
│   │   │           │   │   │       ├── 16_10_16.log
│   │   │           │   │   │       ├── 16_10_17.log
│   │   │           │   │   │       ├── 16_10_18.log
│   │   │           │   │   │       ├── 16_10_19.log
│   │   │           │   │   │       ├── 16_10_20.log
│   │   │           │   │   │       ├── 16_10_21.log
│   │   │           │   │   │       ├── 16_10_22.log
│   │   │           │   │   │       ├── 16_10_23.log
│   │   │           │   │   │       ├── 16_10_24.log
│   │   │           │   │   │       ├── 16_10_25.log
│   │   │           │   │   │       ├── 16_10_26.log
│   │   │           │   │   │       ├── 16_10_27.log
│   │   │           │   │   │       ├── 16_10_28.log
│   │   │           │   │   │       ├── 16_10_29.log
│   │   │           │   │   │       ├── 16_10_30.log
│   │   │           │   │   │       ├── 16_10_31.log
│   │   │           │   │   │       ├── 16_11_01.log
│   │   │           │   │   │       ├── 16_11_02.log
│   │   │           │   │   │       ├── 16_11_03.log
│   │   │           │   │   │       ├── 16_11_04.log
│   │   │           │   │   │       ├── 16_11_05.log
│   │   │           │   │   │       ├── 16_11_06.log
│   │   │           │   │   │       ├── 16_11_07.log
│   │   │           │   │   │       ├── 16_11_08.log
│   │   │           │   │   │       ├── 16_11_09.log
│   │   │           │   │   │       ├── 16_11_10.log
│   │   │           │   │   │       ├── 16_11_11.log
│   │   │           │   │   │       ├── 16_11_12.log
│   │   │           │   │   │       ├── 16_11_13.log
│   │   │           │   │   │       ├── 16_11_14.log
│   │   │           │   │   │       ├── 16_11_15.log
│   │   │           │   │   │       ├── 16_11_16.log
│   │   │           │   │   │       ├── 16_11_17.log
│   │   │           │   │   │       ├── 16_11_18.log
│   │   │           │   │   │       ├── 16_11_19.log
│   │   │           │   │   │       ├── 16_11_20.log
│   │   │           │   │   │       ├── 16_11_21.log
│   │   │           │   │   │       ├── 16_11_22.log
│   │   │           │   │   │       ├── 16_11_23.log
│   │   │           │   │   │       ├── 16_11_24.log
│   │   │           │   │   │       ├── 16_11_25.log
│   │   │           │   │   │       ├── 16_11_26.log
│   │   │           │   │   │       ├── 16_11_27.log
│   │   │           │   │   │       ├── 16_11_28.log
│   │   │           │   │   │       ├── 16_11_29.log
│   │   │           │   │   │       ├── 16_11_30.log
│   │   │           │   │   │       ├── 16_12_01.log
│   │   │           │   │   │       ├── 16_12_02.log
│   │   │           │   │   │       ├── 16_12_03.log
│   │   │           │   │   │       ├── 16_12_04.log
│   │   │           │   │   │       ├── 16_12_05.log
│   │   │           │   │   │       ├── 16_12_06.log
│   │   │           │   │   │       ├── 16_12_07.log
│   │   │           │   │   │       ├── 16_12_08.log
│   │   │           │   │   │       ├── 16_12_09.log
│   │   │           │   │   │       ├── 16_12_10.log
│   │   │           │   │   │       ├── 16_12_11.log
│   │   │           │   │   │       ├── 16_12_12.log
│   │   │           │   │   │       ├── 16_12_13.log
│   │   │           │   │   │       ├── 16_12_14.log
│   │   │           │   │   │       ├── 16_12_15.log
│   │   │           │   │   │       ├── 16_12_16.log
│   │   │           │   │   │       ├── 16_12_17.log
│   │   │           │   │   │       ├── 16_12_18.log
│   │   │           │   │   │       ├── 16_12_19.log
│   │   │           │   │   │       └── 16_12_20.log
│   │   │           │   │   ├── common~runtime.php
│   │   │           │   │   └── index.html
│   │   │           │   └── index.html
│   │   │           ├── Public/
│   │   │           │   ├── css/
│   │   │           │   │   ├── a100e2e6.app.css
│   │   │           │   │   ├── common.css
│   │   │           │   │   └── index.css
│   │   │           │   └── js/
│   │   │           │       ├── common.js
│   │   │           │       └── index.js
│   │   │           ├── ThinkPHP/
│   │   │           │   ├── Common/
│   │   │           │   │   └── functions.php
│   │   │           │   ├── Conf/
│   │   │           │   │   ├── convention.php
│   │   │           │   │   └── debug.php
│   │   │           │   ├── LICENSE.txt
│   │   │           │   ├── Lang/
│   │   │           │   │   ├── en-us.php
│   │   │           │   │   ├── pt-br.php
│   │   │           │   │   ├── zh-cn.php
│   │   │           │   │   └── zh-tw.php
│   │   │           │   ├── Library/
│   │   │           │   │   ├── Behavior/
│   │   │           │   │   │   ├── AgentCheckBehavior.class.php
│   │   │           │   │   │   ├── BorisBehavior.class.php
│   │   │           │   │   │   ├── BrowserCheckBehavior.class.php
│   │   │           │   │   │   ├── BuildLiteBehavior.class.php
│   │   │           │   │   │   ├── CheckActionRouteBehavior.class.php
│   │   │           │   │   │   ├── CheckLangBehavior.class.php
│   │   │           │   │   │   ├── ChromeShowPageTraceBehavior.class.php
│   │   │           │   │   │   ├── ContentReplaceBehavior.class.php
│   │   │           │   │   │   ├── CronRunBehavior.class.php
│   │   │           │   │   │   ├── FireShowPageTraceBehavior.class.php
│   │   │           │   │   │   ├── ParseTemplateBehavior.class.php
│   │   │           │   │   │   ├── ReadHtmlCacheBehavior.class.php
│   │   │           │   │   │   ├── RobotCheckBehavior.class.php
│   │   │           │   │   │   ├── ShowPageTraceBehavior.class.php
│   │   │           │   │   │   ├── ShowRuntimeBehavior.class.php
│   │   │           │   │   │   ├── TokenBuildBehavior.class.php
│   │   │           │   │   │   ├── UpgradeNoticeBehavior.class.php
│   │   │           │   │   │   └── WriteHtmlCacheBehavior.class.php
│   │   │           │   │   ├── Org/
│   │   │           │   │   │   ├── Net/
│   │   │           │   │   │   │   ├── Http.class.php
│   │   │           │   │   │   │   └── IpLocation.class.php
│   │   │           │   │   │   └── Util/
│   │   │           │   │   │       ├── ArrayList.class.php
│   │   │           │   │   │       ├── CodeSwitch.class.php
│   │   │           │   │   │       ├── Date.class.php
│   │   │           │   │   │       ├── Rbac.class.php
│   │   │           │   │   │       ├── Stack.class.php
│   │   │           │   │   │       └── String.class.php
│   │   │           │   │   ├── Think/
│   │   │           │   │   │   ├── App.class.php
│   │   │           │   │   │   ├── Auth.class.php
│   │   │           │   │   │   ├── Behavior.class.php
│   │   │           │   │   │   ├── Build.class.php
│   │   │           │   │   │   ├── Cache/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Apachenote.class.php
│   │   │           │   │   │   │       ├── Apc.class.php
│   │   │           │   │   │   │       ├── Db.class.php
│   │   │           │   │   │   │       ├── Eaccelerator.class.php
│   │   │           │   │   │   │       ├── File.class.php
│   │   │           │   │   │   │       ├── Memcache.class.php
│   │   │           │   │   │   │       ├── Memcached.class.php
│   │   │           │   │   │   │       ├── Memcachesae.class.php
│   │   │           │   │   │   │       ├── Redis.class.php
│   │   │           │   │   │   │       ├── Shmop.class.php
│   │   │           │   │   │   │       ├── Sqlite.class.php
│   │   │           │   │   │   │       ├── Wincache.class.php
│   │   │           │   │   │   │       └── Xcache.class.php
│   │   │           │   │   │   ├── Cache.class.php
│   │   │           │   │   │   ├── Controller/
│   │   │           │   │   │   │   ├── HproseController.class.php
│   │   │           │   │   │   │   ├── JsonRpcController.class.php
│   │   │           │   │   │   │   ├── RestController.class.php
│   │   │           │   │   │   │   ├── RpcController.class.php
│   │   │           │   │   │   │   └── YarController.class.php
│   │   │           │   │   │   ├── Controller.class.php
│   │   │           │   │   │   ├── Crypt/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Base64.class.php
│   │   │           │   │   │   │       ├── Crypt.class.php
│   │   │           │   │   │   │       ├── Des.class.php
│   │   │           │   │   │   │       ├── Think.class.php
│   │   │           │   │   │   │       └── Xxtea.class.php
│   │   │           │   │   │   ├── Crypt.class.php
│   │   │           │   │   │   ├── Db/
│   │   │           │   │   │   │   ├── Driver/
│   │   │           │   │   │   │   │   ├── Firebird.class.php
│   │   │           │   │   │   │   │   ├── Mongo.class.php
│   │   │           │   │   │   │   │   ├── Mysql.class.php
│   │   │           │   │   │   │   │   ├── Oracle.class.php
│   │   │           │   │   │   │   │   ├── Pgsql.class.php
│   │   │           │   │   │   │   │   ├── Sqlite.class.php
│   │   │           │   │   │   │   │   └── Sqlsrv.class.php
│   │   │           │   │   │   │   ├── Driver.class.php
│   │   │           │   │   │   │   └── Lite.class.php
│   │   │           │   │   │   ├── Db.class.php
│   │   │           │   │   │   ├── Dispatcher.class.php
│   │   │           │   │   │   ├── Exception.class.php
│   │   │           │   │   │   ├── Hook.class.php
│   │   │           │   │   │   ├── Image/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── GIF.class.php
│   │   │           │   │   │   │       ├── Gd.class.php
│   │   │           │   │   │   │       └── Imagick.class.php
│   │   │           │   │   │   ├── Image.class.php
│   │   │           │   │   │   ├── Log/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── File.class.php
│   │   │           │   │   │   │       └── Sae.class.php
│   │   │           │   │   │   ├── Log.class.php
│   │   │           │   │   │   ├── Model/
│   │   │           │   │   │   │   ├── AdvModel.class.php
│   │   │           │   │   │   │   ├── MergeModel.class.php
│   │   │           │   │   │   │   ├── MongoModel.class.php
│   │   │           │   │   │   │   ├── RelationModel.class.php
│   │   │           │   │   │   │   └── ViewModel.class.php
│   │   │           │   │   │   ├── Model.class.php
│   │   │           │   │   │   ├── Page.class.php
│   │   │           │   │   │   ├── Route.class.php
│   │   │           │   │   │   ├── Session/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Db.class.php
│   │   │           │   │   │   │       ├── Memcache.class.php
│   │   │           │   │   │   │       └── Mysqli.class.php
│   │   │           │   │   │   ├── Storage/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── File.class.php
│   │   │           │   │   │   │       └── Sae.class.php
│   │   │           │   │   │   ├── Storage.class.php
│   │   │           │   │   │   ├── Template/
│   │   │           │   │   │   │   ├── Driver/
│   │   │           │   │   │   │   │   ├── Ease.class.php
│   │   │           │   │   │   │   │   ├── Lite.class.php
│   │   │           │   │   │   │   │   ├── Mobile.class.php
│   │   │           │   │   │   │   │   ├── Smart.class.php
│   │   │           │   │   │   │   │   └── Smarty.class.php
│   │   │           │   │   │   │   ├── TagLib/
│   │   │           │   │   │   │   │   ├── Cx.class.php
│   │   │           │   │   │   │   │   └── Html.class.php
│   │   │           │   │   │   │   └── TagLib.class.php
│   │   │           │   │   │   ├── Template.class.php
│   │   │           │   │   │   ├── Think.class.php
│   │   │           │   │   │   ├── Upload/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Bcs/
│   │   │           │   │   │   │       │   ├── bcs.class.php
│   │   │           │   │   │   │       │   ├── mimetypes.class.php
│   │   │           │   │   │   │       │   └── requestcore.class.php
│   │   │           │   │   │   │       ├── Bcs.class.php
│   │   │           │   │   │   │       ├── Ftp.class.php
│   │   │           │   │   │   │       ├── Local.class.php
│   │   │           │   │   │   │       ├── Qiniu/
│   │   │           │   │   │   │       │   └── QiniuStorage.class.php
│   │   │           │   │   │   │       ├── Qiniu.class.php
│   │   │           │   │   │   │       ├── Sae.class.php
│   │   │           │   │   │   │       └── Upyun.class.php
│   │   │           │   │   │   ├── Upload.class.php
│   │   │           │   │   │   ├── Verify.class.php
│   │   │           │   │   │   └── View.class.php
│   │   │           │   │   └── Vendor/
│   │   │           │   │       ├── Boris/
│   │   │           │   │       │   ├── Boris.php
│   │   │           │   │       │   ├── CLIOptionsHandler.php
│   │   │           │   │       │   ├── ColoredInspector.php
│   │   │           │   │       │   ├── Config.php
│   │   │           │   │       │   ├── DumpInspector.php
│   │   │           │   │       │   ├── EvalWorker.php
│   │   │           │   │       │   ├── ExportInspector.php
│   │   │           │   │       │   ├── Inspector.php
│   │   │           │   │       │   ├── ReadlineClient.php
│   │   │           │   │       │   └── ShallowParser.php
│   │   │           │   │       ├── EaseTemplate/
│   │   │           │   │       │   ├── template.core.php
│   │   │           │   │       │   └── template.ease.php
│   │   │           │   │       ├── Hprose/
│   │   │           │   │       │   ├── HproseClassManager.php
│   │   │           │   │       │   ├── HproseClient.php
│   │   │           │   │       │   ├── HproseCommon.php
│   │   │           │   │       │   ├── HproseFormatter.php
│   │   │           │   │       │   ├── HproseHttpClient.php
│   │   │           │   │       │   ├── HproseHttpServer.php
│   │   │           │   │       │   ├── HproseIO.php
│   │   │           │   │       │   ├── HproseIOStream.php
│   │   │           │   │       │   ├── HproseReader.php
│   │   │           │   │       │   ├── HproseTags.php
│   │   │           │   │       │   └── HproseWriter.php
│   │   │           │   │       ├── README.txt
│   │   │           │   │       ├── SmartTemplate/
│   │   │           │   │       │   ├── class.smarttemplate.php
│   │   │           │   │       │   ├── class.smarttemplatedebugger.php
│   │   │           │   │       │   └── class.smarttemplateparser.php
│   │   │           │   │       ├── Smarty/
│   │   │           │   │       │   ├── Smarty.class.php
│   │   │           │   │       │   ├── SmartyBC.class.php
│   │   │           │   │       │   ├── debug.tpl
│   │   │           │   │       │   ├── plugins/
│   │   │           │   │       │   │   ├── block.textformat.php
│   │   │           │   │       │   │   ├── function.counter.php
│   │   │           │   │       │   │   ├── function.cycle.php
│   │   │           │   │       │   │   ├── function.fetch.php
│   │   │           │   │       │   │   ├── function.html_checkboxes.php
│   │   │           │   │       │   │   ├── function.html_image.php
│   │   │           │   │       │   │   ├── function.html_options.php
│   │   │           │   │       │   │   ├── function.html_radios.php
│   │   │           │   │       │   │   ├── function.html_select_date.php
│   │   │           │   │       │   │   ├── function.html_select_time.php
│   │   │           │   │       │   │   ├── function.html_table.php
│   │   │           │   │       │   │   ├── function.mailto.php
│   │   │           │   │       │   │   ├── function.math.php
│   │   │           │   │       │   │   ├── modifier.capitalize.php
│   │   │           │   │       │   │   ├── modifier.date_format.php
│   │   │           │   │       │   │   ├── modifier.debug_print_var.php
│   │   │           │   │       │   │   ├── modifier.escape.php
│   │   │           │   │       │   │   ├── modifier.regex_replace.php
│   │   │           │   │       │   │   ├── modifier.replace.php
│   │   │           │   │       │   │   ├── modifier.spacify.php
│   │   │           │   │       │   │   ├── modifier.truncate.php
│   │   │           │   │       │   │   ├── modifiercompiler.cat.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_characters.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_paragraphs.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_sentences.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_words.php
│   │   │           │   │       │   │   ├── modifiercompiler.default.php
│   │   │           │   │       │   │   ├── modifiercompiler.escape.php
│   │   │           │   │       │   │   ├── modifiercompiler.from_charset.php
│   │   │           │   │       │   │   ├── modifiercompiler.indent.php
│   │   │           │   │       │   │   ├── modifiercompiler.lower.php
│   │   │           │   │       │   │   ├── modifiercompiler.noprint.php
│   │   │           │   │       │   │   ├── modifiercompiler.string_format.php
│   │   │           │   │       │   │   ├── modifiercompiler.strip.php
│   │   │           │   │       │   │   ├── modifiercompiler.strip_tags.php
│   │   │           │   │       │   │   ├── modifiercompiler.to_charset.php
│   │   │           │   │       │   │   ├── modifiercompiler.unescape.php
│   │   │           │   │       │   │   ├── modifiercompiler.upper.php
│   │   │           │   │       │   │   ├── modifiercompiler.wordwrap.php
│   │   │           │   │       │   │   ├── outputfilter.trimwhitespace.php
│   │   │           │   │       │   │   ├── shared.escape_special_chars.php
│   │   │           │   │       │   │   ├── shared.literal_compiler_param.php
│   │   │           │   │       │   │   ├── shared.make_timestamp.php
│   │   │           │   │       │   │   ├── shared.mb_str_replace.php
│   │   │           │   │       │   │   ├── shared.mb_unicode.php
│   │   │           │   │       │   │   ├── shared.mb_wordwrap.php
│   │   │           │   │       │   │   └── variablefilter.htmlspecialchars.php
│   │   │           │   │       │   └── sysplugins/
│   │   │           │   │       │       ├── smarty_cacheresource.php
│   │   │           │   │       │       ├── smarty_cacheresource_custom.php
│   │   │           │   │       │       ├── smarty_cacheresource_keyvaluestore.php
│   │   │           │   │       │       ├── smarty_config_source.php
│   │   │           │   │       │       ├── smarty_internal_cacheresource_file.php
│   │   │           │   │       │       ├── smarty_internal_compile_append.php
│   │   │           │   │       │       ├── smarty_internal_compile_assign.php
│   │   │           │   │       │       ├── smarty_internal_compile_block.php
│   │   │           │   │       │       ├── smarty_internal_compile_break.php
│   │   │           │   │       │       ├── smarty_internal_compile_call.php
│   │   │           │   │       │       ├── smarty_internal_compile_capture.php
│   │   │           │   │       │       ├── smarty_internal_compile_config_load.php
│   │   │           │   │       │       ├── smarty_internal_compile_continue.php
│   │   │           │   │       │       ├── smarty_internal_compile_debug.php
│   │   │           │   │       │       ├── smarty_internal_compile_eval.php
│   │   │           │   │       │       ├── smarty_internal_compile_extends.php
│   │   │           │   │       │       ├── smarty_internal_compile_for.php
│   │   │           │   │       │       ├── smarty_internal_compile_foreach.php
│   │   │           │   │       │       ├── smarty_internal_compile_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_if.php
│   │   │           │   │       │       ├── smarty_internal_compile_include.php
│   │   │           │   │       │       ├── smarty_internal_compile_include_php.php
│   │   │           │   │       │       ├── smarty_internal_compile_insert.php
│   │   │           │   │       │       ├── smarty_internal_compile_ldelim.php
│   │   │           │   │       │       ├── smarty_internal_compile_nocache.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_block_plugin.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_function_plugin.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_modifier.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_object_block_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_object_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_print_expression.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_registered_block.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_registered_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_special_variable.php
│   │   │           │   │       │       ├── smarty_internal_compile_rdelim.php
│   │   │           │   │       │       ├── smarty_internal_compile_section.php
│   │   │           │   │       │       ├── smarty_internal_compile_setfilter.php
│   │   │           │   │       │       ├── smarty_internal_compile_while.php
│   │   │           │   │       │       ├── smarty_internal_compilebase.php
│   │   │           │   │       │       ├── smarty_internal_config.php
│   │   │           │   │       │       ├── smarty_internal_config_file_compiler.php
│   │   │           │   │       │       ├── smarty_internal_configfilelexer.php
│   │   │           │   │       │       ├── smarty_internal_configfileparser.php
│   │   │           │   │       │       ├── smarty_internal_data.php
│   │   │           │   │       │       ├── smarty_internal_debug.php
│   │   │           │   │       │       ├── smarty_internal_filter_handler.php
│   │   │           │   │       │       ├── smarty_internal_function_call_handler.php
│   │   │           │   │       │       ├── smarty_internal_get_include_path.php
│   │   │           │   │       │       ├── smarty_internal_nocache_insert.php
│   │   │           │   │       │       ├── smarty_internal_parsetree.php
│   │   │           │   │       │       ├── smarty_internal_resource_eval.php
│   │   │           │   │       │       ├── smarty_internal_resource_extends.php
│   │   │           │   │       │       ├── smarty_internal_resource_file.php
│   │   │           │   │       │       ├── smarty_internal_resource_php.php
│   │   │           │   │       │       ├── smarty_internal_resource_registered.php
│   │   │           │   │       │       ├── smarty_internal_resource_stream.php
│   │   │           │   │       │       ├── smarty_internal_resource_string.php
│   │   │           │   │       │       ├── smarty_internal_smartytemplatecompiler.php
│   │   │           │   │       │       ├── smarty_internal_template.php
│   │   │           │   │       │       ├── smarty_internal_templatebase.php
│   │   │           │   │       │       ├── smarty_internal_templatecompilerbase.php
│   │   │           │   │       │       ├── smarty_internal_templatelexer.php
│   │   │           │   │       │       ├── smarty_internal_templateparser.php
│   │   │           │   │       │       ├── smarty_internal_utility.php
│   │   │           │   │       │       ├── smarty_internal_write_file.php
│   │   │           │   │       │       ├── smarty_resource.php
│   │   │           │   │       │       ├── smarty_resource_custom.php
│   │   │           │   │       │       ├── smarty_resource_recompiled.php
│   │   │           │   │       │       ├── smarty_resource_uncompiled.php
│   │   │           │   │       │       └── smarty_security.php
│   │   │           │   │       ├── TemplateLite/
│   │   │           │   │       │   ├── class.compiler.php
│   │   │           │   │       │   ├── class.config.php
│   │   │           │   │       │   ├── class.template.php
│   │   │           │   │       │   └── internal/
│   │   │           │   │       │       ├── compile.compile_config.php
│   │   │           │   │       │       ├── compile.compile_custom_block.php
│   │   │           │   │       │       ├── compile.compile_custom_function.php
│   │   │           │   │       │       ├── compile.compile_if.php
│   │   │           │   │       │       ├── compile.generate_compiler_debug_output.php
│   │   │           │   │       │       ├── compile.include.php
│   │   │           │   │       │       ├── compile.parse_is_expr.php
│   │   │           │   │       │       ├── compile.section_start.php
│   │   │           │   │       │       ├── debug.tpl
│   │   │           │   │       │       ├── template.build_dir.php
│   │   │           │   │       │       ├── template.config_loader.php
│   │   │           │   │       │       ├── template.destroy_dir.php
│   │   │           │   │       │       ├── template.fetch_compile_include.php
│   │   │           │   │       │       └── template.generate_debug_output.php
│   │   │           │   │       ├── jsonRPC/
│   │   │           │   │       │   ├── jsonRPCClient.php
│   │   │           │   │       │   └── jsonRPCServer.php
│   │   │           │   │       ├── phpRPC/
│   │   │           │   │       │   ├── bigint.php
│   │   │           │   │       │   ├── compat.php
│   │   │           │   │       │   ├── dhparams/
│   │   │           │   │       │   │   ├── 1024.dhp
│   │   │           │   │       │   │   ├── 128.dhp
│   │   │           │   │       │   │   ├── 1536.dhp
│   │   │           │   │       │   │   ├── 160.dhp
│   │   │           │   │       │   │   ├── 192.dhp
│   │   │           │   │       │   │   ├── 2048.dhp
│   │   │           │   │       │   │   ├── 256.dhp
│   │   │           │   │       │   │   ├── 3072.dhp
│   │   │           │   │       │   │   ├── 4096.dhp
│   │   │           │   │       │   │   ├── 512.dhp
│   │   │           │   │       │   │   ├── 768.dhp
│   │   │           │   │       │   │   └── 96.dhp
│   │   │           │   │       │   ├── dhparams.php
│   │   │           │   │       │   ├── pecl/
│   │   │           │   │       │   │   └── xxtea/
│   │   │           │   │       │   │       ├── CREDITS
│   │   │           │   │       │   │       ├── INSTALL
│   │   │           │   │       │   │       ├── LICENSE
│   │   │           │   │       │   │       ├── README
│   │   │           │   │       │   │       ├── config.m4
│   │   │           │   │       │   │       ├── config.w32
│   │   │           │   │       │   │       ├── php_xxtea.c
│   │   │           │   │       │   │       ├── php_xxtea.dsp
│   │   │           │   │       │   │       ├── php_xxtea.h
│   │   │           │   │       │   │       ├── php_xxtea.sln
│   │   │           │   │       │   │       ├── php_xxtea.vcproj
│   │   │           │   │       │   │       ├── test/
│   │   │           │   │       │   │       │   └── test.php
│   │   │           │   │       │   │       ├── xxtea.c
│   │   │           │   │       │   │       └── xxtea.h
│   │   │           │   │       │   ├── phprpc_client.php
│   │   │           │   │       │   ├── phprpc_date.php
│   │   │           │   │       │   ├── phprpc_server.php
│   │   │           │   │       │   └── xxtea.php
│   │   │           │   │       └── spyc/
│   │   │           │   │           ├── COPYING
│   │   │           │   │           ├── README.md
│   │   │           │   │           ├── Spyc.php
│   │   │           │   │           ├── composer.json
│   │   │           │   │           ├── examples/
│   │   │           │   │           │   ├── yaml-dump.php
│   │   │           │   │           │   └── yaml-load.php
│   │   │           │   │           ├── php4/
│   │   │           │   │           │   ├── 5to4.php
│   │   │           │   │           │   ├── spyc.php4
│   │   │           │   │           │   └── test.php4
│   │   │           │   │           ├── spyc.yaml
│   │   │           │   │           └── tests/
│   │   │           │   │               ├── DumpTest.php
│   │   │           │   │               ├── IndentTest.php
│   │   │           │   │               ├── ParseTest.php
│   │   │           │   │               ├── RoundTripTest.php
│   │   │           │   │               ├── comments.yaml
│   │   │           │   │               ├── failing1.yaml
│   │   │           │   │               ├── indent_1.yaml
│   │   │           │   │               └── quotes.yaml
│   │   │           │   ├── Mode/
│   │   │           │   │   ├── Api/
│   │   │           │   │   │   ├── App.class.php
│   │   │           │   │   │   ├── Controller.class.php
│   │   │           │   │   │   ├── Dispatcher.class.php
│   │   │           │   │   │   └── functions.php
│   │   │           │   │   ├── Lite/
│   │   │           │   │   │   ├── App.class.php
│   │   │           │   │   │   ├── Controller.class.php
│   │   │           │   │   │   ├── Dispatcher.class.php
│   │   │           │   │   │   ├── Model.class.php
│   │   │           │   │   │   ├── View.class.php
│   │   │           │   │   │   ├── convention.php
│   │   │           │   │   │   └── functions.php
│   │   │           │   │   ├── Sae/
│   │   │           │   │   │   └── convention.php
│   │   │           │   │   ├── api.php
│   │   │           │   │   ├── common.php
│   │   │           │   │   ├── lite.php
│   │   │           │   │   └── sae.php
│   │   │           │   ├── ThinkPHP.php
│   │   │           │   └── Tpl/
│   │   │           │       ├── dispatch_jump.tpl
│   │   │           │       ├── page_trace.tpl
│   │   │           │       └── think_exception.tpl
│   │   │           ├── baidu_verify_ltdJP8g59L.html
│   │   │           ├── file/
│   │   │           │   ├── 20161122.log
│   │   │           │   ├── 20161122_offline.log
│   │   │           │   ├── 20161123.log
│   │   │           │   ├── 20161123_offline.log
│   │   │           │   ├── 20161124.log
│   │   │           │   ├── 20161124_offline.log
│   │   │           │   ├── 20161125.log
│   │   │           │   ├── 20161125_offline.log
│   │   │           │   ├── 20161126.log
│   │   │           │   ├── 20161126_offline.log
│   │   │           │   ├── 20161127.log
│   │   │           │   ├── 20161127_offline.log
│   │   │           │   ├── 20161128.log
│   │   │           │   ├── 20161128_offline.log
│   │   │           │   ├── 20161129.log
│   │   │           │   ├── 20161129_offline.log
│   │   │           │   ├── 20161130.log
│   │   │           │   ├── 20161130_offline.log
│   │   │           │   ├── 20161201.log
│   │   │           │   ├── 20161201_offline.log
│   │   │           │   ├── 20161202.log
│   │   │           │   ├── 20161202_offline.log
│   │   │           │   ├── 20161203.log
│   │   │           │   ├── 20161203_offline.log
│   │   │           │   ├── 20161204.log
│   │   │           │   ├── 20161204_offline.log
│   │   │           │   ├── 20161205.log
│   │   │           │   ├── 20161205_offline.log
│   │   │           │   ├── 20161206.log
│   │   │           │   ├── 20161206_offline.log
│   │   │           │   ├── 20161207.log
│   │   │           │   ├── 20161207_offline.log
│   │   │           │   ├── 20161208.log
│   │   │           │   ├── 20161208_offline.log
│   │   │           │   ├── 20161209.log
│   │   │           │   ├── 20161209_offline.log
│   │   │           │   ├── 20161210.log
│   │   │           │   ├── 20161210_offline.log
│   │   │           │   ├── 20161211.log
│   │   │           │   ├── 20161211_offline.log
│   │   │           │   ├── 20161212.log
│   │   │           │   ├── 20161212_offline.log
│   │   │           │   ├── 20161213.log
│   │   │           │   ├── 20161213_offline.log
│   │   │           │   ├── 20161214.log
│   │   │           │   ├── 20161214_offline.log
│   │   │           │   ├── 20161215.log
│   │   │           │   ├── 20161215_offline.log
│   │   │           │   ├── 20161216.log
│   │   │           │   ├── 20161216_offline.log
│   │   │           │   ├── 20161217.log
│   │   │           │   ├── 20161217_offline.log
│   │   │           │   ├── 20161218.log
│   │   │           │   ├── 20161218_offline.log
│   │   │           │   ├── 20161219.log
│   │   │           │   ├── 20161219_offline.log
│   │   │           │   ├── 20161220.log
│   │   │           │   └── 20161220_offline.log
│   │   │           └── index.php
│   │   └── index.html
│   ├── Runtime/
│   │   ├── Data/
│   │   │   ├── _fields/
│   │   │   │   ├── cloud.cloud_software.php
│   │   │   │   ├── cloud.cloud_user.php
│   │   │   │   └── cms.cms_manage.php
│   │   │   └── index.html
│   │   └── index.html
│   └── index.html
├── LICENSE
├── Public/
│   ├── css/
│   │   ├── a100e2e6.app.css
│   │   ├── common.css
│   │   └── index.css
│   └── js/
│       ├── common.js
│       └── index.js
├── README.md
├── ThinkPHP/
│   ├── Common/
│   │   └── functions.php
│   ├── Conf/
│   │   ├── convention.php
│   │   └── debug.php
│   ├── LICENSE.txt
│   ├── Lang/
│   │   ├── en-us.php
│   │   ├── pt-br.php
│   │   ├── zh-cn.php
│   │   └── zh-tw.php
│   ├── Library/
│   │   ├── Behavior/
│   │   │   ├── AgentCheckBehavior.class.php
│   │   │   ├── BorisBehavior.class.php
│   │   │   ├── BrowserCheckBehavior.class.php
│   │   │   ├── BuildLiteBehavior.class.php
│   │   │   ├── CheckActionRouteBehavior.class.php
│   │   │   ├── CheckLangBehavior.class.php
│   │   │   ├── ChromeShowPageTraceBehavior.class.php
│   │   │   ├── ContentReplaceBehavior.class.php
│   │   │   ├── CronRunBehavior.class.php
│   │   │   ├── FireShowPageTraceBehavior.class.php
│   │   │   ├── ParseTemplateBehavior.class.php
│   │   │   ├── ReadHtmlCacheBehavior.class.php
│   │   │   ├── RobotCheckBehavior.class.php
│   │   │   ├── ShowPageTraceBehavior.class.php
│   │   │   ├── ShowRuntimeBehavior.class.php
│   │   │   ├── TokenBuildBehavior.class.php
│   │   │   ├── UpgradeNoticeBehavior.class.php
│   │   │   └── WriteHtmlCacheBehavior.class.php
│   │   ├── Org/
│   │   │   ├── Net/
│   │   │   │   ├── Http.class.php
│   │   │   │   └── IpLocation.class.php
│   │   │   └── Util/
│   │   │       ├── ArrayList.class.php
│   │   │       ├── CodeSwitch.class.php
│   │   │       ├── Date.class.php
│   │   │       ├── Rbac.class.php
│   │   │       ├── Stack.class.php
│   │   │       └── String.class.php
│   │   ├── Think/
│   │   │   ├── App.class.php
│   │   │   ├── Auth.class.php
│   │   │   ├── Behavior.class.php
│   │   │   ├── Build.class.php
│   │   │   ├── Cache/
│   │   │   │   └── Driver/
│   │   │   │       ├── Apachenote.class.php
│   │   │   │       ├── Apc.class.php
│   │   │   │       ├── Db.class.php
│   │   │   │       ├── Eaccelerator.class.php
│   │   │   │       ├── File.class.php
│   │   │   │       ├── Memcache.class.php
│   │   │   │       ├── Memcached.class.php
│   │   │   │       ├── Memcachesae.class.php
│   │   │   │       ├── Redis.class.php
│   │   │   │       ├── Shmop.class.php
│   │   │   │       ├── Sqlite.class.php
│   │   │   │       ├── Wincache.class.php
│   │   │   │       └── Xcache.class.php
│   │   │   ├── Cache.class.php
│   │   │   ├── Controller/
│   │   │   │   ├── HproseController.class.php
│   │   │   │   ├── JsonRpcController.class.php
│   │   │   │   ├── RestController.class.php
│   │   │   │   ├── RpcController.class.php
│   │   │   │   └── YarController.class.php
│   │   │   ├── Controller.class.php
│   │   │   ├── Crypt/
│   │   │   │   └── Driver/
│   │   │   │       ├── Base64.class.php
│   │   │   │       ├── Crypt.class.php
│   │   │   │       ├── Des.class.php
│   │   │   │       ├── Think.class.php
│   │   │   │       └── Xxtea.class.php
│   │   │   ├── Crypt.class.php
│   │   │   ├── Db/
│   │   │   │   ├── Driver/
│   │   │   │   │   ├── Firebird.class.php
│   │   │   │   │   ├── Mongo.class.php
│   │   │   │   │   ├── Mysql.class.php
│   │   │   │   │   ├── Oracle.class.php
│   │   │   │   │   ├── Pgsql.class.php
│   │   │   │   │   ├── Sqlite.class.php
│   │   │   │   │   └── Sqlsrv.class.php
│   │   │   │   ├── Driver.class.php
│   │   │   │   └── Lite.class.php
│   │   │   ├── Db.class.php
│   │   │   ├── Dispatcher.class.php
│   │   │   ├── Exception.class.php
│   │   │   ├── Hook.class.php
│   │   │   ├── Image/
│   │   │   │   └── Driver/
│   │   │   │       ├── GIF.class.php
│   │   │   │       ├── Gd.class.php
│   │   │   │       └── Imagick.class.php
│   │   │   ├── Image.class.php
│   │   │   ├── Log/
│   │   │   │   └── Driver/
│   │   │   │       ├── File.class.php
│   │   │   │       └── Sae.class.php
│   │   │   ├── Log.class.php
│   │   │   ├── Model/
│   │   │   │   ├── AdvModel.class.php
│   │   │   │   ├── MergeModel.class.php
│   │   │   │   ├── MongoModel.class.php
│   │   │   │   ├── RelationModel.class.php
│   │   │   │   └── ViewModel.class.php
│   │   │   ├── Model.class.php
│   │   │   ├── Page.class.php
│   │   │   ├── Route.class.php
│   │   │   ├── Session/
│   │   │   │   └── Driver/
│   │   │   │       ├── Db.class.php
│   │   │   │       ├── Memcache.class.php
│   │   │   │       └── Mysqli.class.php
│   │   │   ├── Storage/
│   │   │   │   └── Driver/
│   │   │   │       ├── File.class.php
│   │   │   │       └── Sae.class.php
│   │   │   ├── Storage.class.php
│   │   │   ├── Template/
│   │   │   │   ├── Driver/
│   │   │   │   │   ├── Ease.class.php
│   │   │   │   │   ├── Lite.class.php
│   │   │   │   │   ├── Mobile.class.php
│   │   │   │   │   ├── Smart.class.php
│   │   │   │   │   └── Smarty.class.php
│   │   │   │   ├── TagLib/
│   │   │   │   │   ├── Cx.class.php
│   │   │   │   │   └── Html.class.php
│   │   │   │   └── TagLib.class.php
│   │   │   ├── Template.class.php
│   │   │   ├── Think.class.php
│   │   │   ├── Upload/
│   │   │   │   └── Driver/
│   │   │   │       ├── Bcs/
│   │   │   │       │   ├── bcs.class.php
│   │   │   │       │   ├── mimetypes.class.php
│   │   │   │       │   └── requestcore.class.php
│   │   │   │       ├── Bcs.class.php
│   │   │   │       ├── Ftp.class.php
│   │   │   │       ├── Local.class.php
│   │   │   │       ├── Qiniu/
│   │   │   │       │   └── QiniuStorage.class.php
│   │   │   │       ├── Qiniu.class.php
│   │   │   │       ├── Sae.class.php
│   │   │   │       └── Upyun.class.php
│   │   │   ├── Upload.class.php
│   │   │   ├── Verify.class.php
│   │   │   └── View.class.php
│   │   └── Vendor/
│   │       ├── Boris/
│   │       │   ├── Boris.php
│   │       │   ├── CLIOptionsHandler.php
│   │       │   ├── ColoredInspector.php
│   │       │   ├── Config.php
│   │       │   ├── DumpInspector.php
│   │       │   ├── EvalWorker.php
│   │       │   ├── ExportInspector.php
│   │       │   ├── Inspector.php
│   │       │   ├── ReadlineClient.php
│   │       │   └── ShallowParser.php
│   │       ├── EaseTemplate/
│   │       │   ├── template.core.php
│   │       │   └── template.ease.php
│   │       ├── Hprose/
│   │       │   ├── HproseClassManager.php
│   │       │   ├── HproseClient.php
│   │       │   ├── HproseCommon.php
│   │       │   ├── HproseFormatter.php
│   │       │   ├── HproseHttpClient.php
│   │       │   ├── HproseHttpServer.php
│   │       │   ├── HproseIO.php
│   │       │   ├── HproseIOStream.php
│   │       │   ├── HproseReader.php
│   │       │   ├── HproseTags.php
│   │       │   └── HproseWriter.php
│   │       ├── README.txt
│   │       ├── SmartTemplate/
│   │       │   ├── class.smarttemplate.php
│   │       │   ├── class.smarttemplatedebugger.php
│   │       │   └── class.smarttemplateparser.php
│   │       ├── Smarty/
│   │       │   ├── Smarty.class.php
│   │       │   ├── SmartyBC.class.php
│   │       │   ├── debug.tpl
│   │       │   ├── plugins/
│   │       │   │   ├── block.textformat.php
│   │       │   │   ├── function.counter.php
│   │       │   │   ├── function.cycle.php
│   │       │   │   ├── function.fetch.php
│   │       │   │   ├── function.html_checkboxes.php
│   │       │   │   ├── function.html_image.php
│   │       │   │   ├── function.html_options.php
│   │       │   │   ├── function.html_radios.php
│   │       │   │   ├── function.html_select_date.php
│   │       │   │   ├── function.html_select_time.php
│   │       │   │   ├── function.html_table.php
│   │       │   │   ├── function.mailto.php
│   │       │   │   ├── function.math.php
│   │       │   │   ├── modifier.capitalize.php
│   │       │   │   ├── modifier.date_format.php
│   │       │   │   ├── modifier.debug_print_var.php
│   │       │   │   ├── modifier.escape.php
│   │       │   │   ├── modifier.regex_replace.php
│   │       │   │   ├── modifier.replace.php
│   │       │   │   ├── modifier.spacify.php
│   │       │   │   ├── modifier.truncate.php
│   │       │   │   ├── modifiercompiler.cat.php
│   │       │   │   ├── modifiercompiler.count_characters.php
│   │       │   │   ├── modifiercompiler.count_paragraphs.php
│   │       │   │   ├── modifiercompiler.count_sentences.php
│   │       │   │   ├── modifiercompiler.count_words.php
│   │       │   │   ├── modifiercompiler.default.php
│   │       │   │   ├── modifiercompiler.escape.php
│   │       │   │   ├── modifiercompiler.from_charset.php
│   │       │   │   ├── modifiercompiler.indent.php
│   │       │   │   ├── modifiercompiler.lower.php
│   │       │   │   ├── modifiercompiler.noprint.php
│   │       │   │   ├── modifiercompiler.string_format.php
│   │       │   │   ├── modifiercompiler.strip.php
│   │       │   │   ├── modifiercompiler.strip_tags.php
│   │       │   │   ├── modifiercompiler.to_charset.php
│   │       │   │   ├── modifiercompiler.unescape.php
│   │       │   │   ├── modifiercompiler.upper.php
│   │       │   │   ├── modifiercompiler.wordwrap.php
│   │       │   │   ├── outputfilter.trimwhitespace.php
│   │       │   │   ├── shared.escape_special_chars.php
│   │       │   │   ├── shared.literal_compiler_param.php
│   │       │   │   ├── shared.make_timestamp.php
│   │       │   │   ├── shared.mb_str_replace.php
│   │       │   │   ├── shared.mb_unicode.php
│   │       │   │   ├── shared.mb_wordwrap.php
│   │       │   │   └── variablefilter.htmlspecialchars.php
│   │       │   └── sysplugins/
│   │       │       ├── smarty_cacheresource.php
│   │       │       ├── smarty_cacheresource_custom.php
│   │       │       ├── smarty_cacheresource_keyvaluestore.php
│   │       │       ├── smarty_config_source.php
│   │       │       ├── smarty_internal_cacheresource_file.php
│   │       │       ├── smarty_internal_compile_append.php
│   │       │       ├── smarty_internal_compile_assign.php
│   │       │       ├── smarty_internal_compile_block.php
│   │       │       ├── smarty_internal_compile_break.php
│   │       │       ├── smarty_internal_compile_call.php
│   │       │       ├── smarty_internal_compile_capture.php
│   │       │       ├── smarty_internal_compile_config_load.php
│   │       │       ├── smarty_internal_compile_continue.php
│   │       │       ├── smarty_internal_compile_debug.php
│   │       │       ├── smarty_internal_compile_eval.php
│   │       │       ├── smarty_internal_compile_extends.php
│   │       │       ├── smarty_internal_compile_for.php
│   │       │       ├── smarty_internal_compile_foreach.php
│   │       │       ├── smarty_internal_compile_function.php
│   │       │       ├── smarty_internal_compile_if.php
│   │       │       ├── smarty_internal_compile_include.php
│   │       │       ├── smarty_internal_compile_include_php.php
│   │       │       ├── smarty_internal_compile_insert.php
│   │       │       ├── smarty_internal_compile_ldelim.php
│   │       │       ├── smarty_internal_compile_nocache.php
│   │       │       ├── smarty_internal_compile_private_block_plugin.php
│   │       │       ├── smarty_internal_compile_private_function_plugin.php
│   │       │       ├── smarty_internal_compile_private_modifier.php
│   │       │       ├── smarty_internal_compile_private_object_block_function.php
│   │       │       ├── smarty_internal_compile_private_object_function.php
│   │       │       ├── smarty_internal_compile_private_print_expression.php
│   │       │       ├── smarty_internal_compile_private_registered_block.php
│   │       │       ├── smarty_internal_compile_private_registered_function.php
│   │       │       ├── smarty_internal_compile_private_special_variable.php
│   │       │       ├── smarty_internal_compile_rdelim.php
│   │       │       ├── smarty_internal_compile_section.php
│   │       │       ├── smarty_internal_compile_setfilter.php
│   │       │       ├── smarty_internal_compile_while.php
│   │       │       ├── smarty_internal_compilebase.php
│   │       │       ├── smarty_internal_config.php
│   │       │       ├── smarty_internal_config_file_compiler.php
│   │       │       ├── smarty_internal_configfilelexer.php
│   │       │       ├── smarty_internal_configfileparser.php
│   │       │       ├── smarty_internal_data.php
│   │       │       ├── smarty_internal_debug.php
│   │       │       ├── smarty_internal_filter_handler.php
│   │       │       ├── smarty_internal_function_call_handler.php
│   │       │       ├── smarty_internal_get_include_path.php
│   │       │       ├── smarty_internal_nocache_insert.php
│   │       │       ├── smarty_internal_parsetree.php
│   │       │       ├── smarty_internal_resource_eval.php
│   │       │       ├── smarty_internal_resource_extends.php
│   │       │       ├── smarty_internal_resource_file.php
│   │       │       ├── smarty_internal_resource_php.php
│   │       │       ├── smarty_internal_resource_registered.php
│   │       │       ├── smarty_internal_resource_stream.php
│   │       │       ├── smarty_internal_resource_string.php
│   │       │       ├── smarty_internal_smartytemplatecompiler.php
│   │       │       ├── smarty_internal_template.php
│   │       │       ├── smarty_internal_templatebase.php
│   │       │       ├── smarty_internal_templatecompilerbase.php
│   │       │       ├── smarty_internal_templatelexer.php
│   │       │       ├── smarty_internal_templateparser.php
│   │       │       ├── smarty_internal_utility.php
│   │       │       ├── smarty_internal_write_file.php
│   │       │       ├── smarty_resource.php
│   │       │       ├── smarty_resource_custom.php
│   │       │       ├── smarty_resource_recompiled.php
│   │       │       ├── smarty_resource_uncompiled.php
│   │       │       └── smarty_security.php
│   │       ├── TemplateLite/
│   │       │   ├── class.compiler.php
│   │       │   ├── class.config.php
│   │       │   ├── class.template.php
│   │       │   └── internal/
│   │       │       ├── compile.compile_config.php
│   │       │       ├── compile.compile_custom_block.php
│   │       │       ├── compile.compile_custom_function.php
│   │       │       ├── compile.compile_if.php
│   │       │       ├── compile.generate_compiler_debug_output.php
│   │       │       ├── compile.include.php
│   │       │       ├── compile.parse_is_expr.php
│   │       │       ├── compile.section_start.php
│   │       │       ├── debug.tpl
│   │       │       ├── template.build_dir.php
│   │       │       ├── template.config_loader.php
│   │       │       ├── template.destroy_dir.php
│   │       │       ├── template.fetch_compile_include.php
│   │       │       └── template.generate_debug_output.php
│   │       ├── jsonRPC/
│   │       │   ├── jsonRPCClient.php
│   │       │   └── jsonRPCServer.php
│   │       ├── phpRPC/
│   │       │   ├── bigint.php
│   │       │   ├── compat.php
│   │       │   ├── dhparams/
│   │       │   │   ├── 1024.dhp
│   │       │   │   ├── 128.dhp
│   │       │   │   ├── 1536.dhp
│   │       │   │   ├── 160.dhp
│   │       │   │   ├── 192.dhp
│   │       │   │   ├── 2048.dhp
│   │       │   │   ├── 256.dhp
│   │       │   │   ├── 3072.dhp
│   │       │   │   ├── 4096.dhp
│   │       │   │   ├── 512.dhp
│   │       │   │   ├── 768.dhp
│   │       │   │   └── 96.dhp
│   │       │   ├── dhparams.php
│   │       │   ├── pecl/
│   │       │   │   └── xxtea/
│   │       │   │       ├── CREDITS
│   │       │   │       ├── INSTALL
│   │       │   │       ├── LICENSE
│   │       │   │       ├── README
│   │       │   │       ├── config.m4
│   │       │   │       ├── config.w32
│   │       │   │       ├── php_xxtea.c
│   │       │   │       ├── php_xxtea.dsp
│   │       │   │       ├── php_xxtea.h
│   │       │   │       ├── php_xxtea.sln
│   │       │   │       ├── php_xxtea.vcproj
│   │       │   │       ├── test/
│   │       │   │       │   └── test.php
│   │       │   │       ├── xxtea.c
│   │       │   │       └── xxtea.h
│   │       │   ├── phprpc_client.php
│   │       │   ├── phprpc_date.php
│   │       │   ├── phprpc_server.php
│   │       │   └── xxtea.php
│   │       └── spyc/
│   │           ├── COPYING
│   │           ├── README.md
│   │           ├── Spyc.php
│   │           ├── composer.json
│   │           ├── examples/
│   │           │   ├── yaml-dump.php
│   │           │   └── yaml-load.php
│   │           ├── php4/
│   │           │   ├── 5to4.php
│   │           │   ├── spyc.php4
│   │           │   └── test.php4
│   │           ├── spyc.yaml
│   │           └── tests/
│   │               ├── DumpTest.php
│   │               ├── IndentTest.php
│   │               ├── ParseTest.php
│   │               ├── RoundTripTest.php
│   │               ├── comments.yaml
│   │               ├── failing1.yaml
│   │               ├── indent_1.yaml
│   │               └── quotes.yaml
│   ├── Mode/
│   │   ├── Api/
│   │   │   ├── App.class.php
│   │   │   ├── Controller.class.php
│   │   │   ├── Dispatcher.class.php
│   │   │   └── functions.php
│   │   ├── Lite/
│   │   │   ├── App.class.php
│   │   │   ├── Controller.class.php
│   │   │   ├── Dispatcher.class.php
│   │   │   ├── Model.class.php
│   │   │   ├── View.class.php
│   │   │   ├── convention.php
│   │   │   └── functions.php
│   │   ├── Sae/
│   │   │   └── convention.php
│   │   ├── api.php
│   │   ├── common.php
│   │   ├── lite.php
│   │   └── sae.php
│   ├── ThinkPHP.php
│   └── Tpl/
│       ├── dispatch_jump.tpl
│       ├── page_trace.tpl
│       └── think_exception.tpl
├── index.php
└── 导入数据库/
    ├── cloud_2017-01-17.sql
    └── 请看.txt

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

================================================
FILE: .htaccess
================================================
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>


================================================
FILE: Application/Common/Conf/config.php
================================================
<?php
return array(//'配置项'=>'配置值'
    'MODULE_ALLOW_LIST'    =>    array('Home','Index'),
    'DEFAULT_MODULE'       =>    'Index',
    'URL_MODEL' => 2,
);

================================================
FILE: Application/Common/Conf/index.html
================================================
 

================================================
FILE: Application/Common/Controller/BaseController.class.php
================================================
<?php
// 所有控制器的父控制器

namespace Common\Controller;
use Home\Tool\HJCTool;
use Think\Controller;

class BaseController extends Controller {
    private $_currentPage = 1;
    private $_itemCountAPage = 10;
    private $_pageCount;
    private $_userId = -1;

    // 生成验证码图片
    public function getVerifyImg() {
        $config = array(
            'length' => 4, // 验证码位数
            'useNoise' => false, // 关闭验证码杂点
            'codeSet' => 'ABCDEFGHJKMNPRSTUVWXYZ',
        );
        $Verify = new \Think\Verify($config);
        $Verify->entry();
    }

    // 检测输入的验证码是否正确,$code为用户输入的验证码字符串
    public function check_verify($code, $id = ''){
        $verify = new \Think\Verify();
        return $verify->check($code, $id);
    }

    // 系统的empty如果是0也会当做空
    protected function isEmpty($str){
        return $str == '';
    }

    public function __construct() {
        parent::__construct();

        // 接口url不用判断登录
        if (strstr($_SERVER[REQUEST_URI], '/Home/Auth')) {
            return;
        }

        // 判断登录状态
        if (!$_SESSION['user']) {
            if (strstr($_SERVER[REQUEST_URI], '/Home/login') || strstr($_SERVER[REQUEST_URI], '/Home/reg') || strstr($_SERVER[REQUEST_URI], '/Home/forget')) {
            } else {
                $this->signout();
            }
        } else {
            // 超过多少分钟未操作,清除登录状态,跳登录页
            if ($_SESSION['last_logn_time']) {
                $minute = (time() - $_SESSION['last_logn_time']) / 60;
                if ($minute > 60) {
                    $this->signout();
                }
            }
            $_SESSION['last_logn_time'] = time();
        }

        // 显示用户名
        $this->assign('username', $_SESSION['user']);
    }

    // 退出登录
    protected function signout(){
        unset($_SESSION['user']);
        HJCTool::alertToLocation(null, '/Home/login');
    }

    // 获取用户id,保存到属性变量
    protected function getUserId(){
        if ($this->_userId != -1) return $this->_userId;

        $mysql_user = M('User');
        $user_ret = $mysql_user->query("SELECT * FROM cloud_user WHERE username = '" . $_SESSION['user'] . "'");
        if (!$user_ret) {
            $this->signout();
        }
        $this->_userId = $user_ret[0]['id'];
        return $this->_userId;
    }

    // 处理table和分页
    // $table_name 表名
    // $sql sql语句,传不传处理不一样
    protected function showTableAndPage($table_name, $sql) {
        // 先查询总数,计算出页数
        $mysql = M(ucfirst($table_name)); // 首字母大写

        // 拿到用户id,只查询该用户下的数据库
        if ($sql) {
            $ret = $mysql->query($sql);
        } else {
            $userId = $this->getUserId();
            $limitUserSql = " WHERE user_id = '$userId'";
            $ret = $mysql->query("SELECT * FROM cloud_" . $table_name . $limitUserSql);
        }

        $this->_pageCount = ceil(sizeof($ret) / $this->_itemCountAPage);

        // 正整数正则,判断传进来的页数是不是超过限制
        if ($this->isEmpty(I('get.page', '', '/^[1-9]\d*$/'))) {
            $this->_currentPage = 1;
        } else {
            // 超过最大页数
            if (I('get.page') > $this->_pageCount) {
                $this->_currentPage = $this->_pageCount;
            } else {
                $this->_currentPage = $_GET['page'];
            }
        }

        $onePageSql;
        if ($sql) {
            $onePageSql = $sql . " LIMIT " . (($this->_currentPage - 1) * $this->_itemCountAPage) . ", " . $this->_itemCountAPage;
        } else {
            $onePageSql = "SELECT * FROM cloud_" . $table_name . $limitUserSql . " LIMIT " . (($this->_currentPage - 1) * $this->_itemCountAPage) . ", " . $this->_itemCountAPage;
        }

        // table内容
        $list = $mysql->query($onePageSql);
        $this->assign('list', $list);

        // 第一页
        if ($this->_currentPage > 4) {
            $this->assign('firstbtn', "<li><a href='?page=1'>1</a></li><li class='disabled'><a>...</a></li>");
        }

        // 数字页
        $_pagelist = '';
        for ($i = 3; $i >= 1; $i--) {
            $_page = $this->_currentPage - $i;
            if ($_page < 1) continue;
            $_pagelist .= '<li><a href="?page=' . $_page . '">' . $_page . '</a></li>';
        }
        $_pagelist .= '<li class="active"><a href="#">' . $this->_currentPage . '</a></li>';
        for ($i = 1; $i <= 3; $i++) {
            $_page = $this->_currentPage + $i;
            if ($_page > $this->_pageCount) continue;
            $_pagelist .= '<li><a href="?page=' . $_page . '">' . $_page . '</a></li>';
        }
        $this->assign('pagelist', $_pagelist);

        // 最后一页
        if ($this->_pageCount - $this->_currentPage > 3) {
            $this->assign('lastbtn', "<li class='disabled'><a>...</a></li><li><a href='?page=" . $this->_pageCount . "'>" . ($this->_pageCount) . "</a></li>");
        }

        // 上一页
        if ($this->_currentPage <= 1) {
            $this->assign('prevbtn', "<li class='disabled'><a href='#'>上一页</a></li>");
        } else {
            $this->assign('prevbtn', "<li><a href='?page=" . ($this->_currentPage - 1) . "'><span>上一页</span></a></li>");
        }

        // 下一页
        if ($this->_currentPage >= $this->_pageCount) {
            $this->assign('nextbtn', "<li class='disabled'><a href='#'>下一页</a></li>");
        } else {
            $this->assign('nextbtn', "<li><a href='?page=" . ($this->_currentPage + 1) . "'><span>下一页</span></a></li>");
        }
    }

    // 获取软件列表
    protected function getSoftwareList() {
        $userId = $this->getUserId();

        $mysql_soft = M('Software');
        $soft_ret = $mysql_soft->query("SELECT * FROM cloud_software WHERE user_id = '" . $userId . "'");
        if (!$soft_ret) {
            return '';
        }
        return $soft_ret;
    }
}

================================================
FILE: Application/Common/index.html
================================================
 

================================================
FILE: Application/Home/Common/Des/DES.php
================================================
<?php

class DES
{
    public static function pkcs5_pad ($text, $blocksize) {
        $pad = $blocksize - (strlen($text) % $blocksize);
        return $text . str_repeat(chr($pad), $pad);
    }

    public static function pkcs5_unpad($text) {
        $pad = ord($text{strlen($text)-1});
        if ($pad > strlen($text)) {
            return false;
        }
        if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) {
            return false;
        }
        return substr($text, 0, -1 * $pad);
    }

    public static function encrypt($key, $data) {
        $size = mcrypt_get_block_size('des', 'ecb');
        $data = DES::pkcs5_pad($data, $size);
        $td = mcrypt_module_open('des', '', 'ecb', '');
        $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        @mcrypt_generic_init($td, $key, $iv);
        $data = mcrypt_generic($td, $data);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        return $data;
    }

    public static function decrypt($key, $data) {
        $td = mcrypt_module_open('des','','ecb','');
        $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        $ks = mcrypt_enc_get_key_size($td);
        @mcrypt_generic_init($td, $key, $iv);
        $decrypted = mdecrypt_generic($td, $data);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        $result = DES::pkcs5_unpad($decrypted);
        return $result;
    }
}


================================================
FILE: Application/Home/Common/Email/email.class.php
================================================
<?php
class smtp

{

/* Public Variables */

var $smtp_port;

var $time_out;

var $host_name;

var $log_file;

var $relay_host;

var $debug;

var $auth;

var $user;

var $pass;

/* Private Variables */ 
var $sock;

/* Constractor */

function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass)

{

$this->debug = FALSE;

$this->smtp_port = $smtp_port;

$this->relay_host = $relay_host;

$this->time_out = 30; //is used in fsockopen() 
#

$this->auth = $auth;//auth

$this->user = $user;

$this->pass = $pass;

#

$this->host_name = "localhost"; //is used in HELO command 
$this->log_file = "";

$this->sock = FALSE;

}

/* Main Function */

function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "")

{

$mail_from = $this->get_address($this->strip_comment($from));

$body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);

$header = "MIME-Version:1.0\r\n";

if($mailtype=="HTML"){

$header .= "Content-Type:text/html\r\n";

}

$header .= "To: ".$to."\r\n";

if ($cc != "") {

$header .= "Cc: ".$cc."\r\n";

}

$header .= "From: $from<".$from.">\r\n";

$header .= "Subject: ".$subject."\r\n";

$header .= $additional_headers;

$header .= "Date: ".date("r")."\r\n";

$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";

list($msec, $sec) = explode(" ", microtime());

$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">\r\n";

$TO = explode(",", $this->strip_comment($to));

if ($cc != "") {

$TO = array_merge($TO, explode(",", $this->strip_comment($cc)));

}

if ($bcc != "") {

$TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));

}

$sent = TRUE;

foreach ($TO as $rcpt_to) {

$rcpt_to = $this->get_address($rcpt_to);

if (!$this->smtp_sockopen($rcpt_to)) {

$this->log_write("Error: Cannot send email to ".$rcpt_to."\n");

$sent = FALSE;

continue;

}

if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) {

$this->log_write("E-mail has been sent to <".$rcpt_to.">\n");

} else {

$this->log_write("Error: Cannot send email to <".$rcpt_to.">\n");

$sent = FALSE;

}

fclose($this->sock);

$this->log_write("Disconnected from remote host\n");

}

return $sent;

}

/* Private Functions */

function smtp_send($helo, $from, $to, $header, $body = "")

{

if (!$this->smtp_putcmd("HELO", $helo)) {

return $this->smtp_error("sending HELO command");

}

#auth

if($this->auth){

if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) {

return $this->smtp_error("sending HELO command");

}

if (!$this->smtp_putcmd("", base64_encode($this->pass))) {

return $this->smtp_error("sending HELO command");

}

}

#

if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">")) {

return $this->smtp_error("sending MAIL FROM command");

}

if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) {

return $this->smtp_error("sending RCPT TO command");

}

if (!$this->smtp_putcmd("DATA")) {

return $this->smtp_error("sending DATA command");

}

if (!$this->smtp_message($header, $body)) {

return $this->smtp_error("sending message");

}

if (!$this->smtp_eom()) {

return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]");

}

if (!$this->smtp_putcmd("QUIT")) {

return $this->smtp_error("sending QUIT command");

}

return TRUE;

}

function smtp_sockopen($address)

{

if ($this->relay_host == "") {

return $this->smtp_sockopen_mx($address);

} else {

return $this->smtp_sockopen_relay();

}

}

function smtp_sockopen_relay()

{

$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n");

$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);

if (!($this->sock && $this->smtp_ok())) {

$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n");

$this->log_write("Error: ".$errstr." (".$errno.")\n");

return FALSE;

}

$this->log_write("Connected to relay host ".$this->relay_host."\n");

return TRUE;;

}

function smtp_sockopen_mx($address)

{

$domain = ereg_replace("^.+@([^@]+)$", "\1", $address);

if (!@getmxrr($domain, $MXHOSTS)) {

$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n");

return FALSE;

}
//专注与php学习 http://www.daixiaorui.com 欢迎您的访问

foreach ($MXHOSTS as $host) {

$this->log_write("Trying to ".$host.":".$this->smtp_port."\n");

$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);

if (!($this->sock && $this->smtp_ok())) {

$this->log_write("Warning: Cannot connect to mx host ".$host."\n");

$this->log_write("Error: ".$errstr." (".$errno.")\n");

continue;

}

$this->log_write("Connected to mx host ".$host."\n");

return TRUE;

}

$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n");

return FALSE;

}

function smtp_message($header, $body)

{

fputs($this->sock, $header."\r\n".$body);

$this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> "));

return TRUE;

}

function smtp_eom()

{

fputs($this->sock, "\r\n.\r\n");

$this->smtp_debug(". [EOM]\n");

return $this->smtp_ok();

}

function smtp_ok()

{

$response = str_replace("\r\n", "", fgets($this->sock, 512));

$this->smtp_debug($response."\n");

if (!ereg("^[23]", $response)) {

fputs($this->sock, "QUIT\r\n");

fgets($this->sock, 512);

$this->log_write("Error: Remote host returned \"".$response."\"\n");

return FALSE;

}

return TRUE;

}

function smtp_putcmd($cmd, $arg = "")

{

if ($arg != "") {

if($cmd=="") $cmd = $arg;

else $cmd = $cmd." ".$arg;

}

fputs($this->sock, $cmd."\r\n");

$this->smtp_debug("> ".$cmd."\n");

return $this->smtp_ok();

}

function smtp_error($string)

{

$this->log_write("Error: Error occurred while ".$string.".\n");

return FALSE;

}

function log_write($message)

{

$this->smtp_debug($message);

if ($this->log_file == "") {

return TRUE;

}

$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message;

if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) {

$this->smtp_debug("Warning: Cannot open log file \"".$this->log_file."\"\n");

return FALSE;;

}

flock($fp, LOCK_EX);

fputs($fp, $message);

fclose($fp);


return TRUE;

}


function strip_comment($address)

{

$comment = "\([^()]*\)";

while (ereg($comment, $address)) {

$address = ereg_replace($comment, "", $address);

}


return $address;

}


function get_address($address)

{

$address = ereg_replace("([ \t\r\n])+", "", $address);

$address = ereg_replace("^.*<(.+)>.*$", "\1", $address);

return $address;

}

function smtp_debug($message)

{

if ($this->debug) {

echo $message;

}

}

}

?>

================================================
FILE: Application/Home/Common/Rsa/BigInteger.php
================================================
<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
 
/**
 * Pure-PHP arbitrary precision integer arithmetic library.
 *
 * Supports base-2, base-10, base-16, and base-256 numbers.  Uses the GMP or BCMath extensions, if available,
 * and an internal implementation, otherwise.
 *
 * PHP versions 4 and 5
 *
 * {@internal (all DocBlock comments regarding implementation - such as the one that follows - refer to the
 * {@link MATH_BIGINTEGER_MODE_INTERNAL MATH_BIGINTEGER_MODE_INTERNAL} mode)
 *
 * Math_BigInteger uses base-2**26 to perform operations such as multiplication and division and
 * base-2**52 (ie. two base 2**26 digits) to perform addition and subtraction.  Because the largest possible
 * value when multiplying two base-2**26 numbers together is a base-2**52 number, double precision floating
 * point numbers - numbers that should be supported on most hardware and whose significand is 53 bits - are
 * used.  As a consequence, bitwise operators such as >> and << cannot be used, nor can the modulo operator %,
 * which only supports integers.  Although this fact will slow this library down, the fact that such a high
 * base is being used should more than compensate.
 *
 * When PHP version 6 is officially released, we'll be able to use 64-bit integers.  This should, once again,
 * allow bitwise operators, and will increase the maximum possible base to 2**31 (or 2**62 for addition /
 * subtraction).
 *
 * Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format.  ie.
 * (new Math_BigInteger(pow(2, 26)))->value = array(0, 1)
 *
 * Useful resources are as follows:
 *
 *  - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)}
 *  - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)}
 *  - Java's BigInteger classes.  See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip
 *
 * Here's an example of how to use this library:
 * <code>
 * <?php
 *    include('Math/BigInteger.php');
 *
 *    $a = new Math_BigInteger(2);
 *    $b = new Math_BigInteger(3);
 *
 *    $c = $a->add($b);
 *
 *    echo $c->toString(); // outputs 5
 * ?>
 * </code>
 *
 * LICENSE: This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA  02111-1307  USA
 *
 * @category   Math
 * @package    Math_BigInteger
 * @author     Jim Wigginton <terrafrost@php.net>
 * @copyright  MMVI Jim Wigginton
 * @license    http://www.gnu.org/licenses/lgpl.txt
 * @version    $Id: BigInteger.php,v 1.33 2010/03/22 22:32:03 terrafrost Exp $
 * @link       http://pear.php.net/package/Math_BigInteger
 */
 
/**#@+
 * Reduction constants
 *
 * @access private
 * @see Math_BigInteger::_reduce()
 */
/**
 * @see Math_BigInteger::_montgomery()
 * @see Math_BigInteger::_prepMontgomery()
 */
define('MATH_BIGINTEGER_MONTGOMERY', 0);
/**
 * @see Math_BigInteger::_barrett()
 */
define('MATH_BIGINTEGER_BARRETT', 1);
/**
 * @see Math_BigInteger::_mod2()
 */
define('MATH_BIGINTEGER_POWEROF2', 2);
/**
 * @see Math_BigInteger::_remainder()
 */
define('MATH_BIGINTEGER_CLASSIC', 3);
/**
 * @see Math_BigInteger::__clone()
 */
define('MATH_BIGINTEGER_NONE', 4);
/**#@-*/
 
/**#@+
 * Array constants
 *
 * Rather than create a thousands and thousands of new Math_BigInteger objects in repeated function calls to add() and
 * multiply() or whatever, we'll just work directly on arrays, taking them in as parameters and returning them.
 *
 * @access private
 */
/**
 * $result[MATH_BIGINTEGER_VALUE] contains the value.
 */
define('MATH_BIGINTEGER_VALUE', 0);
/**
 * $result[MATH_BIGINTEGER_SIGN] contains the sign.
 */
define('MATH_BIGINTEGER_SIGN', 1);
/**#@-*/
 
/**#@+
 * @access private
 * @see Math_BigInteger::_montgomery()
 * @see Math_BigInteger::_barrett()
 */
/**
 * Cache constants
 *
 * $cache[MATH_BIGINTEGER_VARIABLE] tells us whether or not the cached data is still valid.
 */
define('MATH_BIGINTEGER_VARIABLE', 0);
/**
 * $cache[MATH_BIGINTEGER_DATA] contains the cached data.
 */
define('MATH_BIGINTEGER_DATA', 1);
/**#@-*/
 
/**#@+
 * Mode constants.
 *
 * @access private
 * @see Math_BigInteger::Math_BigInteger()
 */
/**
 * To use the pure-PHP implementation
 */
define('MATH_BIGINTEGER_MODE_INTERNAL', 1);
/**
 * To use the BCMath library
 *
 * (if enabled; otherwise, the internal implementation will be used)
 */
define('MATH_BIGINTEGER_MODE_BCMATH', 2);
/**
 * To use the GMP library
 *
 * (if present; otherwise, either the BCMath or the internal implementation will be used)
 */
define('MATH_BIGINTEGER_MODE_GMP', 3);
/**#@-*/
 
/**
 * The largest digit that may be used in addition / subtraction
 *
 * (we do pow(2, 52) instead of using 4503599627370496, directly, because some PHP installations
 *  will truncate 4503599627370496)
 *
 * @access private
 */
define('MATH_BIGINTEGER_MAX_DIGIT52', pow(2, 52));
 
/**
 * Karatsuba Cutoff
 *
 * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication?
 *
 * @access private
 */
define('MATH_BIGINTEGER_KARATSUBA_CUTOFF', 25);
 
/**
 * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256
 * numbers.
 *
 * @author  Jim Wigginton <terrafrost@php.net>
 * @version 1.0.0RC4
 * @access  public
 * @package Math_BigInteger
 */
class Math_BigInteger {
    /**
     * Holds the BigInteger's value.
     *
     * @var Array
     * @access private
     */
    var $value;
 
    /**
     * Holds the BigInteger's magnitude.
     *
     * @var Boolean
     * @access private
     */
    var $is_negative = false;
 
    /**
     * Random number generator function
     *
     * @see setRandomGenerator()
     * @access private
     */
    var $generator = 'mt_rand';
 
    /**
     * Precision
     *
     * @see setPrecision()
     * @access private
     */
    var $precision = -1;
 
    /**
     * Precision Bitmask
     *
     * @see setPrecision()
     * @access private
     */
    var $bitmask = false;
 
    /**
     * Mode independant value used for serialization.
     *
     * If the bcmath or gmp extensions are installed $this->value will be a non-serializable resource, hence the need for
     * a variable that'll be serializable regardless of whether or not extensions are being used.  Unlike $this->value,
     * however, $this->hex is only calculated when $this->__sleep() is called.
     *
     * @see __sleep()
     * @see __wakeup()
     * @var String
     * @access private
     */
    var $hex;
 
    /**
     * Converts base-2, base-10, base-16, and binary strings (eg. base-256) to BigIntegers.
     *
     * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using
     * two's compliment.  The sole exception to this is -10, which is treated the same as 10 is.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('0x32', 16); // 50 in base-16
     *
     *    echo $a->toString(); // outputs 50
     * ?>
     * </code>
     *
     * @param optional $x base-10 number or base-$base number if $base set.
     * @param optional integer $base
     * @return Math_BigInteger
     * @access public
     */
    function Math_BigInteger($x = 0, $base = 10)
    {
        if ( !defined('MATH_BIGINTEGER_MODE') ) {
            switch (true) {
                case extension_loaded('gmp'):
                    define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP);
                    break;
                case extension_loaded('bcmath'):
                    define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH);
                    break;
                default:
                    define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL);
            }
        }
 
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                if (is_resource($x) && get_resource_type($x) == 'GMP integer') {
                    $this->value = $x;
                    return;
                }
                $this->value = gmp_init(0);
                break;
            case MATH_BIGINTEGER_MODE_BCMATH:
                $this->value = '0';
                break;
            default:
                $this->value = array();
        }
 
        if (empty($x)) {
            return;
        }
 
        switch ($base) {
            case -256:
                if (ord($x[0]) & 0x80) {
                    $x = ~$x;
                    $this->is_negative = true;
                }
            case  256:
                switch ( MATH_BIGINTEGER_MODE ) {
                    case MATH_BIGINTEGER_MODE_GMP:
                        $sign = $this->is_negative ? '-' : '';
                        $this->value = gmp_init($sign . '0x' . bin2hex($x));
                        break;
                    case MATH_BIGINTEGER_MODE_BCMATH:
                        // round $len to the nearest 4 (thanks, DavidMJ!)
                        $len = (strlen($x) + 3) & 0xFFFFFFFC;
 
                        $x = str_pad($x, $len, chr(0), STR_PAD_LEFT);
 
                        for ($i = 0; $i < $len; $i+= 4) {
                            $this->value = bcmul($this->value, '4294967296', 0); // 4294967296 == 2**32
                            $this->value = bcadd($this->value, 0x1000000 * ord($x[$i]) + ((ord($x[$i + 1]) << 16) | (ord($x[$i + 2]) << 8) | ord($x[$i + 3])), 0);
                        }
 
                        if ($this->is_negative) {
                            $this->value = '-' . $this->value;
                        }
 
                        break;
                    // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb)
                    default:
                        while (strlen($x)) {
                            $this->value[] = $this->_bytes2int($this->_base256_rshift($x, 26));
                        }
                }
 
                if ($this->is_negative) {
                    if (MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL) {
                        $this->is_negative = false;
                    }
                    $temp = $this->add(new Math_BigInteger('-1'));
                    $this->value = $temp->value;
                }
                break;
            case  16:
            case -16:
                if ($base > 0 && $x[0] == '-') {
                    $this->is_negative = true;
                    $x = substr($x, 1);
                }
 
                $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x);
 
                $is_negative = false;
                if ($base < 0 && hexdec($x[0]) >= 8) {
                    $this->is_negative = $is_negative = true;
                    $x = bin2hex(~pack('H*', $x));
                }
 
                switch ( MATH_BIGINTEGER_MODE ) {
                    case MATH_BIGINTEGER_MODE_GMP:
                        $temp = $this->is_negative ? '-0x' . $x : '0x' . $x;
                        $this->value = gmp_init($temp);
                        $this->is_negative = false;
                        break;
                    case MATH_BIGINTEGER_MODE_BCMATH:
                        $x = ( strlen($x) & 1 ) ? '0' . $x : $x;
                        $temp = new Math_BigInteger(pack('H*', $x), 256);
                        $this->value = $this->is_negative ? '-' . $temp->value : $temp->value;
                        $this->is_negative = false;
                        break;
                    default:
                        $x = ( strlen($x) & 1 ) ? '0' . $x : $x;
                        $temp = new Math_BigInteger(pack('H*', $x), 256);
                        $this->value = $temp->value;
                }
 
                if ($is_negative) {
                    $temp = $this->add(new Math_BigInteger('-1'));
                    $this->value = $temp->value;
                }
                break;
            case  10:
            case -10:
                $x = preg_replace('#^(-?[0-9]*).*#', '$1', $x);
 
                switch ( MATH_BIGINTEGER_MODE ) {
                    case MATH_BIGINTEGER_MODE_GMP:
                        $this->value = gmp_init($x);
                        break;
                    case MATH_BIGINTEGER_MODE_BCMATH:
                        // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different
                        // results then doing it on '-1' does (modInverse does $x[0])
                        $this->value = (string) $x;
                        break;
                    default:
                        $temp = new Math_BigInteger();
 
                        // array(10000000) is 10**7 in base-2**26.  10**7 is the closest to 2**26 we can get without passing it.
                        $multiplier = new Math_BigInteger();
                        $multiplier->value = array(10000000);
 
                        if ($x[0] == '-') {
                            $this->is_negative = true;
                            $x = substr($x, 1);
                        }
 
                        $x = str_pad($x, strlen($x) + (6 * strlen($x)) % 7, 0, STR_PAD_LEFT);
 
                        while (strlen($x)) {
                            $temp = $temp->multiply($multiplier);
                            $temp = $temp->add(new Math_BigInteger($this->_int2bytes(substr($x, 0, 7)), 256));
                            $x = substr($x, 7);
                        }
 
                        $this->value = $temp->value;
                }
                break;
            case  2: // base-2 support originally implemented by Lluis Pamies - thanks!
            case -2:
                if ($base > 0 && $x[0] == '-') {
                    $this->is_negative = true;
                    $x = substr($x, 1);
                }
 
                $x = preg_replace('#^([01]*).*#', '$1', $x);
                $x = str_pad($x, strlen($x) + (3 * strlen($x)) % 4, 0, STR_PAD_LEFT);
 
                $str = '0x';
                while (strlen($x)) {
                    $part = substr($x, 0, 4);
                    $str.= dechex(bindec($part));
                    $x = substr($x, 4);
                }
 
                if ($this->is_negative) {
                    $str = '-' . $str;
                }
 
                $temp = new Math_BigInteger($str, 8 * $base); // ie. either -16 or +16
                $this->value = $temp->value;
                $this->is_negative = $temp->is_negative;
 
                break;
            default:
                // base not supported, so we'll let $this == 0
        }
    }
 
    /**
     * Converts a BigInteger to a byte string (eg. base-256).
     *
     * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
     * saved as two's compliment.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('65');
     *
     *    echo $a->toBytes(); // outputs chr(65)
     * ?>
     * </code>
     *
     * @param Boolean $twos_compliment
     * @return String
     * @access public
     * @internal Converts a base-2**26 number to base-2**8
     */
    function toBytes($twos_compliment = false)
    {
        if ($twos_compliment) {
            $comparison = $this->compare(new Math_BigInteger());
            if ($comparison == 0) {
                return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
            }
 
            $temp = $comparison < 0 ? $this->add(new Math_BigInteger(1)) : $this->copy();
            $bytes = $temp->toBytes();
 
            if (empty($bytes)) { // eg. if the number we're trying to convert is -1
                $bytes = chr(0);
            }
 
            if (ord($bytes[0]) & 0x80) {
                $bytes = chr(0) . $bytes;
            }
 
            return $comparison < 0 ? ~$bytes : $bytes;
        }
 
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                if (gmp_cmp($this->value, gmp_init(0)) == 0) {
                    return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
                }
 
                $temp = gmp_strval(gmp_abs($this->value), 16);
                $temp = ( strlen($temp) & 1 ) ? '0' . $temp : $temp;
                $temp = pack('H*', $temp);
 
                return $this->precision > 0 ?
                    substr(str_pad($temp, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) :
                    ltrim($temp, chr(0));
            case MATH_BIGINTEGER_MODE_BCMATH:
                if ($this->value === '0') {
                    return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
                }
 
                $value = '';
                $current = $this->value;
 
                if ($current[0] == '-') {
                    $current = substr($current, 1);
                }
 
                while (bccomp($current, '0', 0) > 0) {
                    $temp = bcmod($current, '16777216');
                    $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value;
                    $current = bcdiv($current, '16777216', 0);
                }
 
                return $this->precision > 0 ?
                    substr(str_pad($value, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) :
                    ltrim($value, chr(0));
        }
 
        if (!count($this->value)) {
            return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
        }
        $result = $this->_int2bytes($this->value[count($this->value) - 1]);
 
        $temp = $this->copy();
 
        for ($i = count($temp->value) - 2; $i >= 0; --$i) {
            $temp->_base256_lshift($result, 26);
            $result = $result | str_pad($temp->_int2bytes($temp->value[$i]), strlen($result), chr(0), STR_PAD_LEFT);
        }
 
        return $this->precision > 0 ?
            str_pad(substr($result, -(($this->precision + 7) >> 3)), ($this->precision + 7) >> 3, chr(0), STR_PAD_LEFT) :
            $result;
    }
 
    /**
     * Converts a BigInteger to a hex string (eg. base-16)).
     *
     * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
     * saved as two's compliment.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('65');
     *
     *    echo $a->toHex(); // outputs '41'
     * ?>
     * </code>
     *
     * @param Boolean $twos_compliment
     * @return String
     * @access public
     * @internal Converts a base-2**26 number to base-2**8
     */
    function toHex($twos_compliment = false)
    {
        return bin2hex($this->toBytes($twos_compliment));
    }
 
    /**
     * Converts a BigInteger to a bit string (eg. base-2).
     *
     * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
     * saved as two's compliment.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('65');
     *
     *    echo $a->toBits(); // outputs '1000001'
     * ?>
     * </code>
     *
     * @param Boolean $twos_compliment
     * @return String
     * @access public
     * @internal Converts a base-2**26 number to base-2**2
     */
    function toBits($twos_compliment = false)
    {
        $hex = $this->toHex($twos_compliment);
        $bits = '';
        for ($i = 0; $i < strlen($hex); $i+=8) {
            $bits.= str_pad(decbin(hexdec(substr($hex, $i, 8))), 32, '0', STR_PAD_LEFT);
        }
        return $this->precision > 0 ? substr($bits, -$this->precision) : ltrim($bits, '0');
    }
 
    /**
     * Converts a BigInteger to a base-10 number.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('50');
     *
     *    echo $a->toString(); // outputs 50
     * ?>
     * </code>
     *
     * @return String
     * @access public
     * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10)
     */
    function toString()
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                return gmp_strval($this->value);
            case MATH_BIGINTEGER_MODE_BCMATH:
                if ($this->value === '0') {
                    return '0';
                }
 
                return ltrim($this->value, '0');
        }
 
        if (!count($this->value)) {
            return '0';
        }
 
        $temp = $this->copy();
        $temp->is_negative = false;
 
        $divisor = new Math_BigInteger();
        $divisor->value = array(10000000); // eg. 10**7
        $result = '';
        while (count($temp->value)) {
            list($temp, $mod) = $temp->divide($divisor);
            $result = str_pad(isset($mod->value[0]) ? $mod->value[0] : '', 7, '0', STR_PAD_LEFT) . $result;
        }
        $result = ltrim($result, '0');
        if (empty($result)) {
            $result = '0';
        }
 
        if ($this->is_negative) {
            $result = '-' . $result;
        }
 
        return $result;
    }
 
    /**
     * Copy an object
     *
     * PHP5 passes objects by reference while PHP4 passes by value.  As such, we need a function to guarantee
     * that all objects are passed by value, when appropriate.  More information can be found here:
     *
     * {@link http://php.net/language.oop5.basic#51624}
     *
     * @access public
     * @see __clone()
     * @return Math_BigInteger
     */
    function copy()
    {
        $temp = new Math_BigInteger();
        $temp->value = $this->value;
        $temp->is_negative = $this->is_negative;
        $temp->generator = $this->generator;
        $temp->precision = $this->precision;
        $temp->bitmask = $this->bitmask;
        return $temp;
    }
 
    /**
     *  __toString() magic method
     *
     * Will be called, automatically, if you're supporting just PHP5.  If you're supporting PHP4, you'll need to call
     * toString().
     *
     * @access public
     * @internal Implemented per a suggestion by Techie-Michael - thanks!
     */
    function __toString()
    {
        return $this->toString();
    }
 
    /**
     * __clone() magic method
     *
     * Although you can call Math_BigInteger::__toString() directly in PHP5, you cannot call Math_BigInteger::__clone()
     * directly in PHP5.  You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5
     * only syntax of $y = clone $x.  As such, if you're trying to write an application that works on both PHP4 and PHP5,
     * call Math_BigInteger::copy(), instead.
     *
     * @access public
     * @see copy()
     * @return Math_BigInteger
     */
    function __clone()
    {
        return $this->copy();
    }
 
    /**
     *  __sleep() magic method
     *
     * Will be called, automatically, when serialize() is called on a Math_BigInteger object.
     *
     * @see __wakeup()
     * @access public
     */
    function __sleep()
    {
        $this->hex = $this->toHex(true);
        $vars = array('hex');
        if ($this->generator != 'mt_rand') {
            $vars[] = 'generator';
        }
        if ($this->precision > 0) {
            $vars[] = 'precision';
        }
        return $vars;
       
    }
 
    /**
     *  __wakeup() magic method
     *
     * Will be called, automatically, when unserialize() is called on a Math_BigInteger object.
     *
     * @see __sleep()
     * @access public
     */
    function __wakeup()
    {
        $temp = new Math_BigInteger($this->hex, -16);
        $this->value = $temp->value;
        $this->is_negative = $temp->is_negative;
        $this->setRandomGenerator($this->generator);
        if ($this->precision > 0) {
            // recalculate $this->bitmask
            $this->setPrecision($this->precision);
        }
    }
 
    /**
     * Adds two BigIntegers.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('10');
     *    $b = new Math_BigInteger('20');
     *
     *    $c = $a->add($b);
     *
     *    echo $c->toString(); // outputs 30
     * ?>
     * </code>
     *
     * @param Math_BigInteger $y
     * @return Math_BigInteger
     * @access public
     * @internal Performs base-2**52 addition
     */
    function add($y)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_add($this->value, $y->value);
 
                return $this->_normalize($temp);
            case MATH_BIGINTEGER_MODE_BCMATH:
                $temp = new Math_BigInteger();
                $temp->value = bcadd($this->value, $y->value, 0);
 
                return $this->_normalize($temp);
        }
 
        $temp = $this->_add($this->value, $this->is_negative, $y->value, $y->is_negative);
 
        $result = new Math_BigInteger();
        $result->value = $temp[MATH_BIGINTEGER_VALUE];
        $result->is_negative = $temp[MATH_BIGINTEGER_SIGN];
 
        return $this->_normalize($result);
    }
 
    /**
     * Performs addition.
     *
     * @param Array $x_value
     * @param Boolean $x_negative
     * @param Array $y_value
     * @param Boolean $y_negative
     * @return Array
     * @access private
     */
    function _add($x_value, $x_negative, $y_value, $y_negative)
    {
        $x_size = count($x_value);
        $y_size = count($y_value);
 
        if ($x_size == 0) {
            return array(
                MATH_BIGINTEGER_VALUE => $y_value,
                MATH_BIGINTEGER_SIGN => $y_negative
            );
        } else if ($y_size == 0) {
            return array(
                MATH_BIGINTEGER_VALUE => $x_value,
                MATH_BIGINTEGER_SIGN => $x_negative
            );
        }
 
        // subtract, if appropriate
        if ( $x_negative != $y_negative ) {
            if ( $x_value == $y_value ) {
                return array(
                    MATH_BIGINTEGER_VALUE => array(),
                    MATH_BIGINTEGER_SIGN => false
                );
            }
 
            $temp = $this->_subtract($x_value, false, $y_value, false);
            $temp[MATH_BIGINTEGER_SIGN] = $this->_compare($x_value, false, $y_value, false) > 0 ?
                                          $x_negative : $y_negative;
 
            return $temp;
        }
 
        if ($x_size < $y_size) {
            $size = $x_size;
            $value = $y_value;
        } else {
            $size = $y_size;
            $value = $x_value;
        }
 
        $value[] = 0; // just in case the carry adds an extra digit
 
        $carry = 0;
        for ($i = 0, $j = 1; $j < $size; $i+=2, $j+=2) {
            $sum = $x_value[$j] * 0x4000000 + $x_value[$i] + $y_value[$j] * 0x4000000 + $y_value[$i] + $carry;
            $carry = $sum >= MATH_BIGINTEGER_MAX_DIGIT52; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1
            $sum = $carry ? $sum - MATH_BIGINTEGER_MAX_DIGIT52 : $sum;
 
            $temp = (int) ($sum / 0x4000000);
 
            $value[$i] = (int) ($sum - 0x4000000 * $temp); // eg. a faster alternative to fmod($sum, 0x4000000)
            $value[$j] = $temp;
        }
 
        if ($j == $size) { // ie. if $y_size is odd
            $sum = $x_value[$i] + $y_value[$i] + $carry;
            $carry = $sum >= 0x4000000;
            $value[$i] = $carry ? $sum - 0x4000000 : $sum;
            ++$i; // ie. let $i = $j since we've just done $value[$i]
        }
 
        if ($carry) {
            for (; $value[$i] == 0x3FFFFFF; ++$i) {
                $value[$i] = 0;
            }
            ++$value[$i];
        }
 
        return array(
            MATH_BIGINTEGER_VALUE => $this->_trim($value),
            MATH_BIGINTEGER_SIGN => $x_negative
        );
    }
 
    /**
     * Subtracts two BigIntegers.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('10');
     *    $b = new Math_BigInteger('20');
     *
     *    $c = $a->subtract($b);
     *
     *    echo $c->toString(); // outputs -10
     * ?>
     * </code>
     *
     * @param Math_BigInteger $y
     * @return Math_BigInteger
     * @access public
     * @internal Performs base-2**52 subtraction
     */
    function subtract($y)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_sub($this->value, $y->value);
 
                return $this->_normalize($temp);
            case MATH_BIGINTEGER_MODE_BCMATH:
                $temp = new Math_BigInteger();
                $temp->value = bcsub($this->value, $y->value, 0);
 
                return $this->_normalize($temp);
        }
 
        $temp = $this->_subtract($this->value, $this->is_negative, $y->value, $y->is_negative);
 
        $result = new Math_BigInteger();
        $result->value = $temp[MATH_BIGINTEGER_VALUE];
        $result->is_negative = $temp[MATH_BIGINTEGER_SIGN];
 
        return $this->_normalize($result);
    }
 
    /**
     * Performs subtraction.
     *
     * @param Array $x_value
     * @param Boolean $x_negative
     * @param Array $y_value
     * @param Boolean $y_negative
     * @return Array
     * @access private
     */
    function _subtract($x_value, $x_negative, $y_value, $y_negative)
    {
        $x_size = count($x_value);
        $y_size = count($y_value);
 
        if ($x_size == 0) {
            return array(
                MATH_BIGINTEGER_VALUE => $y_value,
                MATH_BIGINTEGER_SIGN => !$y_negative
            );
        } else if ($y_size == 0) {
            return array(
                MATH_BIGINTEGER_VALUE => $x_value,
                MATH_BIGINTEGER_SIGN => $x_negative
            );
        }
 
        // add, if appropriate (ie. -$x - +$y or +$x - -$y)
        if ( $x_negative != $y_negative ) {
            $temp = $this->_add($x_value, false, $y_value, false);
            $temp[MATH_BIGINTEGER_SIGN] = $x_negative;
 
            return $temp;
        }
 
        $diff = $this->_compare($x_value, $x_negative, $y_value, $y_negative);
 
        if ( !$diff ) {
            return array(
                MATH_BIGINTEGER_VALUE => array(),
                MATH_BIGINTEGER_SIGN => false
            );
        }
 
        // switch $x and $y around, if appropriate.
        if ( (!$x_negative && $diff < 0) || ($x_negative && $diff > 0) ) {
            $temp = $x_value;
            $x_value = $y_value;
            $y_value = $temp;
 
            $x_negative = !$x_negative;
 
            $x_size = count($x_value);
            $y_size = count($y_value);
        }
 
        // at this point, $x_value should be at least as big as - if not bigger than - $y_value
 
        $carry = 0;
        for ($i = 0, $j = 1; $j < $y_size; $i+=2, $j+=2) {
            $sum = $x_value[$j] * 0x4000000 + $x_value[$i] - $y_value[$j] * 0x4000000 - $y_value[$i] - $carry;
            $carry = $sum < 0; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1
            $sum = $carry ? $sum + MATH_BIGINTEGER_MAX_DIGIT52 : $sum;
 
            $temp = (int) ($sum / 0x4000000);
 
            $x_value[$i] = (int) ($sum - 0x4000000 * $temp);
            $x_value[$j] = $temp;
        }
 
        if ($j == $y_size) { // ie. if $y_size is odd
            $sum = $x_value[$i] - $y_value[$i] - $carry;
            $carry = $sum < 0;
            $x_value[$i] = $carry ? $sum + 0x4000000 : $sum;
            ++$i;
        }
 
        if ($carry) {
            for (; !$x_value[$i]; ++$i) {
                $x_value[$i] = 0x3FFFFFF;
            }
            --$x_value[$i];
        }
 
        return array(
            MATH_BIGINTEGER_VALUE => $this->_trim($x_value),
            MATH_BIGINTEGER_SIGN => $x_negative
        );
    }
 
    /**
     * Multiplies two BigIntegers
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('10');
     *    $b = new Math_BigInteger('20');
     *
     *    $c = $a->multiply($b);
     *
     *    echo $c->toString(); // outputs 200
     * ?>
     * </code>
     *
     * @param Math_BigInteger $x
     * @return Math_BigInteger
     * @access public
     */
    function multiply($x)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_mul($this->value, $x->value);
 
                return $this->_normalize($temp);
            case MATH_BIGINTEGER_MODE_BCMATH:
                $temp = new Math_BigInteger();
                $temp->value = bcmul($this->value, $x->value, 0);
 
                return $this->_normalize($temp);
        }
 
        $temp = $this->_multiply($this->value, $this->is_negative, $x->value, $x->is_negative);
 
        $product = new Math_BigInteger();
        $product->value = $temp[MATH_BIGINTEGER_VALUE];
        $product->is_negative = $temp[MATH_BIGINTEGER_SIGN];
 
        return $this->_normalize($product);
    }
 
    /**
     * Performs multiplication.
     *
     * @param Array $x_value
     * @param Boolean $x_negative
     * @param Array $y_value
     * @param Boolean $y_negative
     * @return Array
     * @access private
     */
    function _multiply($x_value, $x_negative, $y_value, $y_negative)
    {
        //if ( $x_value == $y_value ) {
        //    return array(
        //        MATH_BIGINTEGER_VALUE => $this->_square($x_value),
        //        MATH_BIGINTEGER_SIGN => $x_sign != $y_value
        //    );
        //}
 
        $x_length = count($x_value);
        $y_length = count($y_value);
 
        if ( !$x_length || !$y_length ) { // a 0 is being multiplied
            return array(
                MATH_BIGINTEGER_VALUE => array(),
                MATH_BIGINTEGER_SIGN => false
            );
        }
 
        return array(
            MATH_BIGINTEGER_VALUE => min($x_length, $y_length) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ?
                $this->_trim($this->_regularMultiply($x_value, $y_value)) :
                $this->_trim($this->_karatsuba($x_value, $y_value)),
            MATH_BIGINTEGER_SIGN => $x_negative != $y_negative
        );
    }
 
    /**
     * Performs long multiplication on two BigIntegers
     *
     * Modeled after 'multiply' in MutableBigInteger.java.
     *
     * @param Array $x_value
     * @param Array $y_value
     * @return Array
     * @access private
     */
    function _regularMultiply($x_value, $y_value)
    {
        $x_length = count($x_value);
        $y_length = count($y_value);
 
        if ( !$x_length || !$y_length ) { // a 0 is being multiplied
            return array();
        }
 
        if ( $x_length < $y_length ) {
            $temp = $x_value;
            $x_value = $y_value;
            $y_value = $temp;
 
            $x_length = count($x_value);
            $y_length = count($y_value);
        }
 
        $product_value = $this->_array_repeat(0, $x_length + $y_length);
 
        // the following for loop could be removed if the for loop following it
        // (the one with nested for loops) initially set $i to 0, but
        // doing so would also make the result in one set of unnecessary adds,
        // since on the outermost loops first pass, $product->value[$k] is going
        // to always be 0
 
        $carry = 0;
 
        for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0
            $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0
            $carry = (int) ($temp / 0x4000000);
            $product_value[$j] = (int) ($temp - 0x4000000 * $carry);
        }
 
        $product_value[$j] = $carry;
 
        // the above for loop is what the previous comment was talking about.  the
        // following for loop is the "one with nested for loops"
        for ($i = 1; $i < $y_length; ++$i) {
            $carry = 0;
 
            for ($j = 0, $k = $i; $j < $x_length; ++$j, ++$k) {
                $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry;
                $carry = (int) ($temp / 0x4000000);
                $product_value[$k] = (int) ($temp - 0x4000000 * $carry);
            }
 
            $product_value[$k] = $carry;
        }
 
        return $product_value;
    }
 
    /**
     * Performs Karatsuba multiplication on two BigIntegers
     *
     * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and
     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}.
     *
     * @param Array $x_value
     * @param Array $y_value
     * @return Array
     * @access private
     */
    function _karatsuba($x_value, $y_value)
    {
        $m = min(count($x_value) >> 1, count($y_value) >> 1);
 
        if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) {
            return $this->_regularMultiply($x_value, $y_value);
        }
 
        $x1 = array_slice($x_value, $m);
        $x0 = array_slice($x_value, 0, $m);
        $y1 = array_slice($y_value, $m);
        $y0 = array_slice($y_value, 0, $m);
 
        $z2 = $this->_karatsuba($x1, $y1);
        $z0 = $this->_karatsuba($x0, $y0);
 
        $z1 = $this->_add($x1, false, $x0, false);
        $temp = $this->_add($y1, false, $y0, false);
        $z1 = $this->_karatsuba($z1[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_VALUE]);
        $temp = $this->_add($z2, false, $z0, false);
        $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false);
 
        $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2);
        $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]);
 
        $xy = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]);
        $xy = $this->_add($xy[MATH_BIGINTEGER_VALUE], $xy[MATH_BIGINTEGER_SIGN], $z0, false);
 
        return $xy[MATH_BIGINTEGER_VALUE];
    }
 
    /**
     * Performs squaring
     *
     * @param Array $x
     * @return Array
     * @access private
     */
    function _square($x = false)
    {
        return count($x) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ?
            $this->_trim($this->_baseSquare($x)) :
            $this->_trim($this->_karatsubaSquare($x));
    }
 
    /**
     * Performs traditional squaring on two BigIntegers
     *
     * Squaring can be done faster than multiplying a number by itself can be.  See
     * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} /
     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information.
     *
     * @param Array $value
     * @return Array
     * @access private
     */
    function _baseSquare($value)
    {
        if ( empty($value) ) {
            return array();
        }
        $square_value = $this->_array_repeat(0, 2 * count($value));
 
        for ($i = 0, $max_index = count($value) - 1; $i <= $max_index; ++$i) {
            $i2 = $i << 1;
 
            $temp = $square_value[$i2] + $value[$i] * $value[$i];
            $carry = (int) ($temp / 0x4000000);
            $square_value[$i2] = (int) ($temp - 0x4000000 * $carry);
 
            // note how we start from $i+1 instead of 0 as we do in multiplication.
            for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; ++$j, ++$k) {
                $temp = $square_value[$k] + 2 * $value[$j] * $value[$i] + $carry;
                $carry = (int) ($temp / 0x4000000);
                $square_value[$k] = (int) ($temp - 0x4000000 * $carry);
            }
 
            // the following line can yield values larger 2**15.  at this point, PHP should switch
            // over to floats.
            $square_value[$i + $max_index + 1] = $carry;
        }
 
        return $square_value;
    }
 
    /**
     * Performs Karatsuba "squaring" on two BigIntegers
     *
     * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and
     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}.
     *
     * @param Array $value
     * @return Array
     * @access private
     */
    function _karatsubaSquare($value)
    {
        $m = count($value) >> 1;
 
        if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) {
            return $this->_baseSquare($value);
        }
 
        $x1 = array_slice($value, $m);
        $x0 = array_slice($value, 0, $m);
 
        $z2 = $this->_karatsubaSquare($x1);
        $z0 = $this->_karatsubaSquare($x0);
 
        $z1 = $this->_add($x1, false, $x0, false);
        $z1 = $this->_karatsubaSquare($z1[MATH_BIGINTEGER_VALUE]);
        $temp = $this->_add($z2, false, $z0, false);
        $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false);
 
        $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2);
        $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]);
 
        $xx = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]);
        $xx = $this->_add($xx[MATH_BIGINTEGER_VALUE], $xx[MATH_BIGINTEGER_SIGN], $z0, false);
 
        return $xx[MATH_BIGINTEGER_VALUE];
    }
 
    /**
     * Divides two BigIntegers.
     *
     * Returns an array whose first element contains the quotient and whose second element contains the
     * "common residue".  If the remainder would be positive, the "common residue" and the remainder are the
     * same.  If the remainder would be negative, the "common residue" is equal to the sum of the remainder
     * and the divisor (basically, the "common residue" is the first positive modulo).
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('10');
     *    $b = new Math_BigInteger('20');
     *
     *    list($quotient, $remainder) = $a->divide($b);
     *
     *    echo $quotient->toString(); // outputs 0
     *    echo "\r\n";
     *    echo $remainder->toString(); // outputs 10
     * ?>
     * </code>
     *
     * @param Math_BigInteger $y
     * @return Array
     * @access public
     * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}.
     */
    function divide($y)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $quotient = new Math_BigInteger();
                $remainder = new Math_BigInteger();
 
                list($quotient->value, $remainder->value) = gmp_div_qr($this->value, $y->value);
 
                if (gmp_sign($remainder->value) < 0) {
                    $remainder->value = gmp_add($remainder->value, gmp_abs($y->value));
                }
 
                return array($this->_normalize($quotient), $this->_normalize($remainder));
            case MATH_BIGINTEGER_MODE_BCMATH:
                $quotient = new Math_BigInteger();
                $remainder = new Math_BigInteger();
 
                $quotient->value = bcdiv($this->value, $y->value, 0);
                $remainder->value = bcmod($this->value, $y->value);
 
                if ($remainder->value[0] == '-') {
                    $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value, 0);
                }
 
                return array($this->_normalize($quotient), $this->_normalize($remainder));
        }
 
        if (count($y->value) == 1) {
            list($q, $r) = $this->_divide_digit($this->value, $y->value[0]);
            $quotient = new Math_BigInteger();
            $remainder = new Math_BigInteger();
            $quotient->value = $q;
            $remainder->value = array($r);
            $quotient->is_negative = $this->is_negative != $y->is_negative;
            return array($this->_normalize($quotient), $this->_normalize($remainder));
        }
 
        static $zero;
        if ( !isset($zero) ) {
            $zero = new Math_BigInteger();
        }
 
        $x = $this->copy();
        $y = $y->copy();
 
        $x_sign = $x->is_negative;
        $y_sign = $y->is_negative;
 
        $x->is_negative = $y->is_negative = false;
 
        $diff = $x->compare($y);
 
        if ( !$diff ) {
            $temp = new Math_BigInteger();
            $temp->value = array(1);
            $temp->is_negative = $x_sign != $y_sign;
            return array($this->_normalize($temp), $this->_normalize(new Math_BigInteger()));
        }
 
        if ( $diff < 0 ) {
            // if $x is negative, "add" $y.
            if ( $x_sign ) {
                $x = $y->subtract($x);
            }
            return array($this->_normalize(new Math_BigInteger()), $this->_normalize($x));
        }
 
        // normalize $x and $y as described in HAC 14.23 / 14.24
        $msb = $y->value[count($y->value) - 1];
        for ($shift = 0; !($msb & 0x2000000); ++$shift) {
            $msb <<= 1;
        }
        $x->_lshift($shift);
        $y->_lshift($shift);
        $y_value = &$y->value;
 
        $x_max = count($x->value) - 1;
        $y_max = count($y->value) - 1;
 
        $quotient = new Math_BigInteger();
        $quotient_value = &$quotient->value;
        $quotient_value = $this->_array_repeat(0, $x_max - $y_max + 1);
 
        static $temp, $lhs, $rhs;
        if (!isset($temp)) {
            $temp = new Math_BigInteger();
            $lhs =  new Math_BigInteger();
            $rhs =  new Math_BigInteger();
        }
        $temp_value = &$temp->value;
        $rhs_value =  &$rhs->value;
 
        // $temp = $y << ($x_max - $y_max-1) in base 2**26
        $temp_value = array_merge($this->_array_repeat(0, $x_max - $y_max), $y_value);
 
        while ( $x->compare($temp) >= 0 ) {
            // calculate the "common residue"
            ++$quotient_value[$x_max - $y_max];
            $x = $x->subtract($temp);
            $x_max = count($x->value) - 1;
        }
 
        for ($i = $x_max; $i >= $y_max + 1; --$i) {
            $x_value = &$x->value;
            $x_window = array(
                isset($x_value[$i]) ? $x_value[$i] : 0,
                isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0,
                isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0
            );
            $y_window = array(
                $y_value[$y_max],
                ( $y_max > 0 ) ? $y_value[$y_max - 1] : 0
            );
 
            $q_index = $i - $y_max - 1;
            if ($x_window[0] == $y_window[0]) {
                $quotient_value[$q_index] = 0x3FFFFFF;
            } else {
                $quotient_value[$q_index] = (int) (
                    ($x_window[0] * 0x4000000 + $x_window[1])
                    /
                    $y_window[0]
                );
            }
 
            $temp_value = array($y_window[1], $y_window[0]);
 
            $lhs->value = array($quotient_value[$q_index]);
            $lhs = $lhs->multiply($temp);
 
            $rhs_value = array($x_window[2], $x_window[1], $x_window[0]);
 
            while ( $lhs->compare($rhs) > 0 ) {
                --$quotient_value[$q_index];
 
                $lhs->value = array($quotient_value[$q_index]);
                $lhs = $lhs->multiply($temp);
            }
 
            $adjust = $this->_array_repeat(0, $q_index);
            $temp_value = array($quotient_value[$q_index]);
            $temp = $temp->multiply($y);
            $temp_value = &$temp->value;
            $temp_value = array_merge($adjust, $temp_value);
 
            $x = $x->subtract($temp);
 
            if ($x->compare($zero) < 0) {
                $temp_value = array_merge($adjust, $y_value);
                $x = $x->add($temp);
 
                --$quotient_value[$q_index];
            }
 
            $x_max = count($x_value) - 1;
        }
 
        // unnormalize the remainder
        $x->_rshift($shift);
 
        $quotient->is_negative = $x_sign != $y_sign;
 
        // calculate the "common residue", if appropriate
        if ( $x_sign ) {
            $y->_rshift($shift);
            $x = $y->subtract($x);
        }
 
        return array($this->_normalize($quotient), $this->_normalize($x));
    }
 
    /**
     * Divides a BigInteger by a regular integer
     *
     * abc / x = a00 / x + b0 / x + c / x
     *
     * @param Array $dividend
     * @param Array $divisor
     * @return Array
     * @access private
     */
    function _divide_digit($dividend, $divisor)
    {
        $carry = 0;
        $result = array();
 
        for ($i = count($dividend) - 1; $i >= 0; --$i) {
            $temp = 0x4000000 * $carry + $dividend[$i];
            $result[$i] = (int) ($temp / $divisor);
            $carry = (int) ($temp - $divisor * $result[$i]);
        }
 
        return array($result, $carry);
    }
 
    /**
     * Performs modular exponentiation.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger('10');
     *    $b = new Math_BigInteger('20');
     *    $c = new Math_BigInteger('30');
     *
     *    $c = $a->modPow($b, $c);
     *
     *    echo $c->toString(); // outputs 10
     * ?>
     * </code>
     *
     * @param Math_BigInteger $e
     * @param Math_BigInteger $n
     * @return Math_BigInteger
     * @access public
     * @internal The most naive approach to modular exponentiation has very unreasonable requirements, and
     *    and although the approach involving repeated squaring does vastly better, it, too, is impractical
     *    for our purposes.  The reason being that division - by far the most complicated and time-consuming
     *    of the basic operations (eg. +,-,*,/) - occurs multiple times within it.
     *
     *    Modular reductions resolve this issue.  Although an individual modular reduction takes more time
     *    then an individual division, when performed in succession (with the same modulo), they're a lot faster.
     *
     *    The two most commonly used modular reductions are Barrett and Montgomery reduction.  Montgomery reduction,
     *    although faster, only works when the gcd of the modulo and of the base being used is 1.  In RSA, when the
     *    base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because
     *    the product of two odd numbers is odd), but what about when RSA isn't used?
     *
     *    In contrast, Barrett reduction has no such constraint.  As such, some bigint implementations perform a
     *    Barrett reduction after every operation in the modpow function.  Others perform Barrett reductions when the
     *    modulo is even and Montgomery reductions when the modulo is odd.  BigInteger.java's modPow method, however,
     *    uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and
     *    the other, a power of two - and recombine them, later.  This is the method that this modPow function uses.
     *    {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates.
     */
    function modPow($e, $n)
    {
        $n = $this->bitmask !== false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs();
 
        if ($e->compare(new Math_BigInteger()) < 0) {
            $e = $e->abs();
 
            $temp = $this->modInverse($n);
            if ($temp === false) {
                return false;
            }
 
            return $this->_normalize($temp->modPow($e, $n));
        }
 
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_powm($this->value, $e->value, $n->value);
 
                return $this->_normalize($temp);
            case MATH_BIGINTEGER_MODE_BCMATH:
                $temp = new Math_BigInteger();
                $temp->value = bcpowmod($this->value, $e->value, $n->value, 0);
 
                return $this->_normalize($temp);
        }
 
        if ( empty($e->value) ) {
            $temp = new Math_BigInteger();
            $temp->value = array(1);
            return $this->_normalize($temp);
        }
 
        if ( $e->value == array(1) ) {
            list(, $temp) = $this->divide($n);
            return $this->_normalize($temp);
        }
 
        if ( $e->value == array(2) ) {
            $temp = new Math_BigInteger();
            $temp->value = $this->_square($this->value);
            list(, $temp) = $temp->divide($n);
            return $this->_normalize($temp);
        }
 
        return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_BARRETT));
 
        // is the modulo odd?
        if ( $n->value[0] & 1 ) {
            return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_MONTGOMERY));
        }
        // if it's not, it's even
 
        // find the lowest set bit (eg. the max pow of 2 that divides $n)
        for ($i = 0; $i < count($n->value); ++$i) {
            if ( $n->value[$i] ) {
                $temp = decbin($n->value[$i]);
                $j = strlen($temp) - strrpos($temp, '1') - 1;
                $j+= 26 * $i;
                break;
            }
        }
        // at this point, 2^$j * $n/(2^$j) == $n
 
        $mod1 = $n->copy();
        $mod1->_rshift($j);
        $mod2 = new Math_BigInteger();
        $mod2->value = array(1);
        $mod2->_lshift($j);
 
        $part1 = ( $mod1->value != array(1) ) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger();
        $part2 = $this->_slidingWindow($e, $mod2, MATH_BIGINTEGER_POWEROF2);
 
        $y1 = $mod2->modInverse($mod1);
        $y2 = $mod1->modInverse($mod2);
 
        $result = $part1->multiply($mod2);
        $result = $result->multiply($y1);
 
        $temp = $part2->multiply($mod1);
        $temp = $temp->multiply($y2);
 
        $result = $result->add($temp);
        list(, $result) = $result->divide($n);
 
        return $this->_normalize($result);
    }
 
    /**
     * Performs modular exponentiation.
     *
     * Alias for Math_BigInteger::modPow()
     *
     * @param Math_BigInteger $e
     * @param Math_BigInteger $n
     * @return Math_BigInteger
     * @access public
     */
    function powMod($e, $n)
    {
        return $this->modPow($e, $n);
    }
 
    /**
     * Sliding Window k-ary Modular Exponentiation
     *
     * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} /
     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}.  In a departure from those algorithims,
     * however, this function performs a modular reduction after every multiplication and squaring operation.
     * As such, this function has the same preconditions that the reductions being used do.
     *
     * @param Math_BigInteger $e
     * @param Math_BigInteger $n
     * @param Integer $mode
     * @return Math_BigInteger
     * @access private
     */
    function _slidingWindow($e, $n, $mode)
    {
        static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function
        //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1
 
        $e_value = $e->value;
        $e_length = count($e_value) - 1;
        $e_bits = decbin($e_value[$e_length]);
        for ($i = $e_length - 1; $i >= 0; --$i) {
            $e_bits.= str_pad(decbin($e_value[$i]), 26, '0', STR_PAD_LEFT);
        }
 
        $e_length = strlen($e_bits);
 
        // calculate the appropriate window size.
        // $window_size == 3 if $window_ranges is between 25 and 81, for example.
        for ($i = 0, $window_size = 1; $e_length > $window_ranges[$i] && $i < count($window_ranges); ++$window_size, ++$i);
 
        $n_value = $n->value;
 
        // precompute $this^0 through $this^$window_size
        $powers = array();
        $powers[1] = $this->_prepareReduce($this->value, $n_value, $mode);
        $powers[2] = $this->_squareReduce($powers[1], $n_value, $mode);
 
        // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end
        // in a 1.  ie. it's supposed to be odd.
        $temp = 1 << ($window_size - 1);
        for ($i = 1; $i < $temp; ++$i) {
            $i2 = $i << 1;
            $powers[$i2 + 1] = $this->_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode);
        }
 
        $result = array(1);
        $result = $this->_prepareReduce($result, $n_value, $mode);
 
        for ($i = 0; $i < $e_length; ) {
            if ( !$e_bits[$i] ) {
                $result = $this->_squareReduce($result, $n_value, $mode);
                ++$i;
            } else {
                for ($j = $window_size - 1; $j > 0; --$j) {
                    if ( !empty($e_bits[$i + $j]) ) {
                        break;
                    }
                }
 
                for ($k = 0; $k <= $j; ++$k) {// eg. the length of substr($e_bits, $i, $j+1)
                    $result = $this->_squareReduce($result, $n_value, $mode);
                }
 
                $result = $this->_multiplyReduce($result, $powers[bindec(substr($e_bits, $i, $j + 1))], $n_value, $mode);
 
                $i+=$j + 1;
            }
        }
 
        $temp = new Math_BigInteger();
        $temp->value = $this->_reduce($result, $n_value, $mode);
 
        return $temp;
    }
 
    /**
     * Modular reduction
     *
     * For most $modes this will return the remainder.
     *
     * @see _slidingWindow()
     * @access private
     * @param Array $x
     * @param Array $n
     * @param Integer $mode
     * @return Array
     */
    function _reduce($x, $n, $mode)
    {
        switch ($mode) {
            case MATH_BIGINTEGER_MONTGOMERY:
                return $this->_montgomery($x, $n);
            case MATH_BIGINTEGER_BARRETT:
                return $this->_barrett($x, $n);
            case MATH_BIGINTEGER_POWEROF2:
                $lhs = new Math_BigInteger();
                $lhs->value = $x;
                $rhs = new Math_BigInteger();
                $rhs->value = $n;
                return $x->_mod2($n);
            case MATH_BIGINTEGER_CLASSIC:
                $lhs = new Math_BigInteger();
                $lhs->value = $x;
                $rhs = new Math_BigInteger();
                $rhs->value = $n;
                list(, $temp) = $lhs->divide($rhs);
                return $temp->value;
            case MATH_BIGINTEGER_NONE:
                return $x;
            default:
                // an invalid $mode was provided
        }
    }
 
    /**
     * Modular reduction preperation
     *
     * @see _slidingWindow()
     * @access private
     * @param Array $x
     * @param Array $n
     * @param Integer $mode
     * @return Array
     */
    function _prepareReduce($x, $n, $mode)
    {
        if ($mode == MATH_BIGINTEGER_MONTGOMERY) {
            return $this->_prepMontgomery($x, $n);
        }
        return $this->_reduce($x, $n, $mode);
    }
 
    /**
     * Modular multiply
     *
     * @see _slidingWindow()
     * @access private
     * @param Array $x
     * @param Array $y
     * @param Array $n
     * @param Integer $mode
     * @return Array
     */
    function _multiplyReduce($x, $y, $n, $mode)
    {
        if ($mode == MATH_BIGINTEGER_MONTGOMERY) {
            return $this->_montgomeryMultiply($x, $y, $n);
        }
        $temp = $this->_multiply($x, false, $y, false);
        return $this->_reduce($temp[MATH_BIGINTEGER_VALUE], $n, $mode);
    }
 
    /**
     * Modular square
     *
     * @see _slidingWindow()
     * @access private
     * @param Array $x
     * @param Array $n
     * @param Integer $mode
     * @return Array
     */
    function _squareReduce($x, $n, $mode)
    {
        if ($mode == MATH_BIGINTEGER_MONTGOMERY) {
            return $this->_montgomeryMultiply($x, $x, $n);
        }
        return $this->_reduce($this->_square($x), $n, $mode);
    }
 
    /**
     * Modulos for Powers of Two
     *
     * Calculates $x%$n, where $n = 2**$e, for some $e.  Since this is basically the same as doing $x & ($n-1),
     * we'll just use this function as a wrapper for doing that.
     *
     * @see _slidingWindow()
     * @access private
     * @param Math_BigInteger
     * @return Math_BigInteger
     */
    function _mod2($n)
    {
        $temp = new Math_BigInteger();
        $temp->value = array(1);
        return $this->bitwise_and($n->subtract($temp));
    }
 
    /**
     * Barrett Modular Reduction
     *
     * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} /
     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information.  Modified slightly,
     * so as not to require negative numbers (initially, this script didn't support negative numbers).
     *
     * Employs "folding", as described at
     * {@link http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66 thesis-149.pdf#page=66}.  To quote from
     * it, "the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x."
     *
     * Unfortunately, the "Barrett Reduction with Folding" algorithm described in thesis-149.pdf is not, as written, all that
     * usable on account of (1) its not using reasonable radix points as discussed in
     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=162 MPM 6.2.2} and (2) the fact that, even with reasonable
     * radix points, it only works when there are an even number of digits in the denominator.  The reason for (2) is that
     * (x >> 1) + (x >> 1) != x / 2 + x / 2.  If x is even, they're the same, but if x is odd, they're not.  See the in-line
     * comments for details.
     *
     * @see _slidingWindow()
     * @access private
     * @param Array $n
     * @param Array $m
     * @return Array
     */
    function _barrett($n, $m)
    {
        static $cache = array(
            MATH_BIGINTEGER_VARIABLE => array(),
            MATH_BIGINTEGER_DATA => array()
        );
 
        $m_length = count($m);
 
        // if ($this->_compare($n, $this->_square($m)) >= 0) {
        if (count($n) > 2 * $m_length) {
            $lhs = new Math_BigInteger();
            $rhs = new Math_BigInteger();
            $lhs->value = $n;
            $rhs->value = $m;
            list(, $temp) = $lhs->divide($rhs);
            return $temp->value;
        }
 
        // if (m.length >> 1) + 2 <= m.length then m is too small and n can't be reduced
        if ($m_length < 5) {
            return $this->_regularBarrett($n, $m);
        }
 
        // n = 2 * m.length
 
        if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) {
            $key = count($cache[MATH_BIGINTEGER_VARIABLE]);
            $cache[MATH_BIGINTEGER_VARIABLE][] = $m;
 
            $lhs = new Math_BigInteger();
            $lhs_value = &$lhs->value;
            $lhs_value = $this->_array_repeat(0, $m_length + ($m_length >> 1));
            $lhs_value[] = 1;
            $rhs = new Math_BigInteger();
            $rhs->value = $m;
 
            list($u, $m1) = $lhs->divide($rhs);
            $u = $u->value;
            $m1 = $m1->value;
 
            $cache[MATH_BIGINTEGER_DATA][] = array(
                'u' => $u, // m.length >> 1 (technically (m.length >> 1) + 1)
                'm1'=> $m1 // m.length
            );
        } else {
            extract($cache[MATH_BIGINTEGER_DATA][$key]);
        }
 
        $cutoff = $m_length + ($m_length >> 1);
        $lsd = array_slice($n, 0, $cutoff); // m.length + (m.length >> 1)
        $msd = array_slice($n, $cutoff);    // m.length >> 1
        $lsd = $this->_trim($lsd);
        $temp = $this->_multiply($msd, false, $m1, false);
        $n = $this->_add($lsd, false, $temp[MATH_BIGINTEGER_VALUE], false); // m.length + (m.length >> 1) + 1
 
        if ($m_length & 1) {
            return $this->_regularBarrett($n[MATH_BIGINTEGER_VALUE], $m);
        }
 
        // (m.length + (m.length >> 1) + 1) - (m.length - 1) == (m.length >> 1) + 2
        $temp = array_slice($n[MATH_BIGINTEGER_VALUE], $m_length - 1);
        // if even: ((m.length >> 1) + 2) + (m.length >> 1) == m.length + 2
        // if odd:  ((m.length >> 1) + 2) + (m.length >> 1) == (m.length - 1) + 2 == m.length + 1
        $temp = $this->_multiply($temp, false, $u, false);
        // if even: (m.length + 2) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + 1
        // if odd:  (m.length + 1) - ((m.length >> 1) + 1) = m.length - (m.length >> 1)
        $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], ($m_length >> 1) + 1);
        // if even: (m.length - (m.length >> 1) + 1) + m.length = 2 * m.length - (m.length >> 1) + 1
        // if odd:  (m.length - (m.length >> 1)) + m.length     = 2 * m.length - (m.length >> 1)
        $temp = $this->_multiply($temp, false, $m, false);
 
        // at this point, if m had an odd number of digits, we'd be subtracting a 2 * m.length - (m.length >> 1) digit
        // number from a m.length + (m.length >> 1) + 1 digit number.  ie. there'd be an extra digit and the while loop
        // following this comment would loop a lot (hence our calling _regularBarrett() in that situation).
 
        $result = $this->_subtract($n[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false);
 
        while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false) >= 0) {
            $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false);
        }
 
        return $result[MATH_BIGINTEGER_VALUE];
    }
 
    /**
     * (Regular) Barrett Modular Reduction
     *
     * For numbers with more than four digits Math_BigInteger::_barrett() is faster.  The difference between that and this
     * is that this function does not fold the denominator into a smaller form.
     *
     * @see _slidingWindow()
     * @access private
     * @param Array $x
     * @param Array $n
     * @return Array
     */
    function _regularBarrett($x, $n)
    {
        static $cache = array(
            MATH_BIGINTEGER_VARIABLE => array(),
            MATH_BIGINTEGER_DATA => array()
        );
 
        $n_length = count($n);
 
        if (count($x) > 2 * $n_length) {
            $lhs = new Math_BigInteger();
            $rhs = new Math_BigInteger();
            $lhs->value = $x;
            $rhs->value = $n;
            list(, $temp) = $lhs->divide($rhs);
            return $temp->value;
        }
 
        if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) {
            $key = count($cache[MATH_BIGINTEGER_VARIABLE]);
            $cache[MATH_BIGINTEGER_VARIABLE][] = $n;
            $lhs = new Math_BigInteger();
            $lhs_value = &$lhs->value;
            $lhs_value = $this->_array_repeat(0, 2 * $n_length);
            $lhs_value[] = 1;
            $rhs = new Math_BigInteger();
            $rhs->value = $n;
            list($temp, ) = $lhs->divide($rhs); // m.length
            $cache[MATH_BIGINTEGER_DATA][] = $temp->value;
        }
 
        // 2 * m.length - (m.length - 1) = m.length + 1
        $temp = array_slice($x, $n_length - 1);
        // (m.length + 1) + m.length = 2 * m.length + 1
        $temp = $this->_multiply($temp, false, $cache[MATH_BIGINTEGER_DATA][$key], false);
        // (2 * m.length + 1) - (m.length - 1) = m.length + 2
        $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], $n_length + 1);
 
        // m.length + 1
        $result = array_slice($x, 0, $n_length + 1);
        // m.length + 1
        $temp = $this->_multiplyLower($temp, false, $n, false, $n_length + 1);
        // $temp == array_slice($temp->_multiply($temp, false, $n, false)->value, 0, $n_length + 1)
 
        if ($this->_compare($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]) < 0) {
            $corrector_value = $this->_array_repeat(0, $n_length + 1);
            $corrector_value[] = 1;
            $result = $this->_add($result, false, $corrector, false);
            $result = $result[MATH_BIGINTEGER_VALUE];
        }
 
        // at this point, we're subtracting a number with m.length + 1 digits from another number with m.length + 1 digits
        $result = $this->_subtract($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]);
        while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false) > 0) {
            $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false);
        }
 
        return $result[MATH_BIGINTEGER_VALUE];
    }
 
    /**
     * Performs long multiplication up to $stop digits
     *
     * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved.
     *
     * @see _regularBarrett()
     * @param Array $x_value
     * @param Boolean $x_negative
     * @param Array $y_value
     * @param Boolean $y_negative
     * @return Array
     * @access private
     */
    function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, $stop)
    {
        $x_length = count($x_value);
        $y_length = count($y_value);
 
        if ( !$x_length || !$y_length ) { // a 0 is being multiplied
            return array(
                MATH_BIGINTEGER_VALUE => array(),
                MATH_BIGINTEGER_SIGN => false
            );
        }
 
        if ( $x_length < $y_length ) {
            $temp = $x_value;
            $x_value = $y_value;
            $y_value = $temp;
 
            $x_length = count($x_value);
            $y_length = count($y_value);
        }
 
        $product_value = $this->_array_repeat(0, $x_length + $y_length);
 
        // the following for loop could be removed if the for loop following it
        // (the one with nested for loops) initially set $i to 0, but
        // doing so would also make the result in one set of unnecessary adds,
        // since on the outermost loops first pass, $product->value[$k] is going
        // to always be 0
 
        $carry = 0;
 
        for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0, $k = $i
            $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0
            $carry = (int) ($temp / 0x4000000);
            $product_value[$j] = (int) ($temp - 0x4000000 * $carry);
        }
 
        if ($j < $stop) {
            $product_value[$j] = $carry;
        }
 
        // the above for loop is what the previous comment was talking about.  the
        // following for loop is the "one with nested for loops"
 
        for ($i = 1; $i < $y_length; ++$i) {
            $carry = 0;
 
            for ($j = 0, $k = $i; $j < $x_length && $k < $stop; ++$j, ++$k) {
                $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry;
                $carry = (int) ($temp / 0x4000000);
                $product_value[$k] = (int) ($temp - 0x4000000 * $carry);
            }
 
            if ($k < $stop) {
                $product_value[$k] = $carry;
            }
        }
 
        return array(
            MATH_BIGINTEGER_VALUE => $this->_trim($product_value),
            MATH_BIGINTEGER_SIGN => $x_negative != $y_negative
        );
    }
 
    /**
     * Montgomery Modular Reduction
     *
     * ($x->_prepMontgomery($n))->_montgomery($n) yields $x % $n.
     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be
     * improved upon (basically, by using the comba method).  gcd($n, 2) must be equal to one for this function
     * to work correctly.
     *
     * @see _prepMontgomery()
     * @see _slidingWindow()
     * @access private
     * @param Array $x
     * @param Array $n
     * @return Array
     */
    function _montgomery($x, $n)
    {
        static $cache = array(
            MATH_BIGINTEGER_VARIABLE => array(),
            MATH_BIGINTEGER_DATA => array()
        );
 
        if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) {
            $key = count($cache[MATH_BIGINTEGER_VARIABLE]);
            $cache[MATH_BIGINTEGER_VARIABLE][] = $x;
            $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($n);
        }
 
        $k = count($n);
 
        $result = array(MATH_BIGINTEGER_VALUE => $x);
 
        for ($i = 0; $i < $k; ++$i) {
            $temp = $result[MATH_BIGINTEGER_VALUE][$i] * $cache[MATH_BIGINTEGER_DATA][$key];
            $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000)));
            $temp = $this->_regularMultiply(array($temp), $n);
            $temp = array_merge($this->_array_repeat(0, $i), $temp);
            $result = $this->_add($result[MATH_BIGINTEGER_VALUE], false, $temp, false);
        }
 
        $result[MATH_BIGINTEGER_VALUE] = array_slice($result[MATH_BIGINTEGER_VALUE], $k);
 
        if ($this->_compare($result, false, $n, false) >= 0) {
            $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], false, $n, false);
        }
 
        return $result[MATH_BIGINTEGER_VALUE];
    }
 
    /**
     * Montgomery Multiply
     *
     * Interleaves the montgomery reduction and long multiplication algorithms together as described in
     * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36}
     *
     * @see _prepMontgomery()
     * @see _montgomery()
     * @access private
     * @param Array $x
     * @param Array $y
     * @param Array $m
     * @return Array
     */
    function _montgomeryMultiply($x, $y, $m)
    {
        $temp = $this->_multiply($x, false, $y, false);
        return $this->_montgomery($temp[MATH_BIGINTEGER_VALUE], $m);
 
        static $cache = array(
            MATH_BIGINTEGER_VARIABLE => array(),
            MATH_BIGINTEGER_DATA => array()
        );
 
        if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) {
            $key = count($cache[MATH_BIGINTEGER_VARIABLE]);
            $cache[MATH_BIGINTEGER_VARIABLE][] = $m;
            $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($m);
        }
 
        $n = max(count($x), count($y), count($m));
        $x = array_pad($x, $n, 0);
        $y = array_pad($y, $n, 0);
        $m = array_pad($m, $n, 0);
        $a = array(MATH_BIGINTEGER_VALUE => $this->_array_repeat(0, $n + 1));
        for ($i = 0; $i < $n; ++$i) {
            $temp = $a[MATH_BIGINTEGER_VALUE][0] + $x[$i] * $y[0];
            $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000)));
            $temp = $temp * $cache[MATH_BIGINTEGER_DATA][$key];
            $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000)));
            $temp = $this->_add($this->_regularMultiply(array($x[$i]), $y), false, $this->_regularMultiply(array($temp), $m), false);
            $a = $this->_add($a[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false);
            $a[MATH_BIGINTEGER_VALUE] = array_slice($a[MATH_BIGINTEGER_VALUE], 1);
        }
        if ($this->_compare($a[MATH_BIGINTEGER_VALUE], false, $m, false) >= 0) {
            $a = $this->_subtract($a[MATH_BIGINTEGER_VALUE], false, $m, false);
        }
        return $a[MATH_BIGINTEGER_VALUE];
    }
 
    /**
     * Prepare a number for use in Montgomery Modular Reductions
     *
     * @see _montgomery()
     * @see _slidingWindow()
     * @access private
     * @param Array $x
     * @param Array $n
     * @return Array
     */
    function _prepMontgomery($x, $n)
    {
        $lhs = new Math_BigInteger();
        $lhs->value = array_merge($this->_array_repeat(0, count($n)), $x);
        $rhs = new Math_BigInteger();
        $rhs->value = $n;
 
        list(, $temp) = $lhs->divide($rhs);
        return $temp->value;
    }
 
    /**
     * Modular Inverse of a number mod 2**26 (eg. 67108864)
     *
     * Based off of the bnpInvDigit function implemented and justified in the following URL:
     *
     * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js}
     *
     * The following URL provides more info:
     *
     * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85}
     *
     * As for why we do all the bitmasking...  strange things can happen when converting from floats to ints. For
     * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields
     * int(-2147483648).  To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't
     * auto-converted to floats.  The outermost bitmask is present because without it, there's no guarantee that
     * the "residue" returned would be the so-called "common residue".  We use fmod, in the last step, because the
     * maximum possible $x is 26 bits and the maximum $result is 16 bits.  Thus, we have to be able to handle up to
     * 40 bits, which only 64-bit floating points will support.
     *
     * Thanks to Pedro Gimeno Fortea for input!
     *
     * @see _montgomery()
     * @access private
     * @param Array $x
     * @return Integer
     */
    function _modInverse67108864($x) // 2**26 == 67108864
    {
        $x = -$x[0];
        $result = $x & 0x3; // x**-1 mod 2**2
        $result = ($result * (2 - $x * $result)) & 0xF; // x**-1 mod 2**4
        $result = ($result * (2 - ($x & 0xFF) * $result))  & 0xFF; // x**-1 mod 2**8
        $result = ($result * ((2 - ($x & 0xFFFF) * $result) & 0xFFFF)) & 0xFFFF; // x**-1 mod 2**16
        $result = fmod($result * (2 - fmod($x * $result, 0x4000000)), 0x4000000); // x**-1 mod 2**26
        return $result & 0x3FFFFFF;
    }
 
    /**
     * Calculates modular inverses.
     *
     * Say you have (30 mod 17 * x mod 17) mod 17 == 1.  x can be found using modular inverses.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger(30);
     *    $b = new Math_BigInteger(17);
     *
     *    $c = $a->modInverse($b);
     *    echo $c->toString(); // outputs 4
     *
     *    echo "\r\n";
     *
     *    $d = $a->multiply($c);
     *    list(, $d) = $d->divide($b);
     *    echo $d; // outputs 1 (as per the definition of modular inverse)
     * ?>
     * </code>
     *
     * @param Math_BigInteger $n
     * @return mixed false, if no modular inverse exists, Math_BigInteger, otherwise.
     * @access public
     * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information.
     */
    function modInverse($n)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_invert($this->value, $n->value);
 
                return ( $temp->value === false ) ? false : $this->_normalize($temp);
        }
 
        static $zero, $one;
        if (!isset($zero)) {
            $zero = new Math_BigInteger();
            $one = new Math_BigInteger(1);
        }
 
        // $x mod $n == $x mod -$n.
        $n = $n->abs();
 
        if ($this->compare($zero) < 0) {
            $temp = $this->abs();
            $temp = $temp->modInverse($n);
            return $negated === false ? false : $this->_normalize($n->subtract($temp));
        }
 
        extract($this->extendedGCD($n));
 
        if (!$gcd->equals($one)) {
            return false;
        }
 
        $x = $x->compare($zero) < 0 ? $x->add($n) : $x;
 
        return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x);
    }
 
    /**
     * Calculates the greatest common divisor and B锟絲out's identity.
     *
     * Say you have 693 and 609.  The GCD is 21.  B锟絲out's identity states that there exist integers x and y such that
     * 693*x + 609*y == 21.  In point of fact, there are actually an infinite number of x and y combinations and which
     * combination is returned is dependant upon which mode is in use.  See
     * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity B锟絲out's identity - Wikipedia} for more information.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger(693);
     *    $b = new Math_BigInteger(609);
     *
     *    extract($a->extendedGCD($b));
     *
     *    echo $gcd->toString() . "\r\n"; // outputs 21
     *    echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21
     * ?>
     * </code>
     *
     * @param Math_BigInteger $n
     * @return Math_BigInteger
     * @access public
     * @internal Calculates the GCD using the binary xGCD algorithim described in
     *    {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}.  As the text above 14.61 notes,
     *    the more traditional algorithim requires "relatively costly multiple-precision divisions".
     */
    function extendedGCD($n)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                extract(gmp_gcdext($this->value, $n->value));
 
                return array(
                    'gcd' => $this->_normalize(new Math_BigInteger($g)),
                    'x'   => $this->_normalize(new Math_BigInteger($s)),
                    'y'   => $this->_normalize(new Math_BigInteger($t))
                );
            case MATH_BIGINTEGER_MODE_BCMATH:
                // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works
                // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway.  as is,
                // the basic extended euclidean algorithim is what we're using.
 
                $u = $this->value;
                $v = $n->value;
 
                $a = '1';
                $b = '0';
                $c = '0';
                $d = '1';
 
                while (bccomp($v, '0', 0) != 0) {
                    $q = bcdiv($u, $v, 0);
 
                    $temp = $u;
                    $u = $v;
                    $v = bcsub($temp, bcmul($v, $q, 0), 0);
 
                    $temp = $a;
                    $a = $c;
                    $c = bcsub($temp, bcmul($a, $q, 0), 0);
 
                    $temp = $b;
                    $b = $d;
                    $d = bcsub($temp, bcmul($b, $q, 0), 0);
                }
 
                return array(
                    'gcd' => $this->_normalize(new Math_BigInteger($u)),
                    'x'   => $this->_normalize(new Math_BigInteger($a)),
                    'y'   => $this->_normalize(new Math_BigInteger($b))
                );
        }
 
        $y = $n->copy();
        $x = $this->copy();
        $g = new Math_BigInteger();
        $g->value = array(1);
 
        while ( !(($x->value[0] & 1)|| ($y->value[0] & 1)) ) {
            $x->_rshift(1);
            $y->_rshift(1);
            $g->_lshift(1);
        }
 
        $u = $x->copy();
        $v = $y->copy();
 
        $a = new Math_BigInteger();
        $b = new Math_BigInteger();
        $c = new Math_BigInteger();
        $d = new Math_BigInteger();
 
        $a->value = $d->value = $g->value = array(1);
        $b->value = $c->value = array();
 
        while ( !empty($u->value) ) {
            while ( !($u->value[0] & 1) ) {
                $u->_rshift(1);
                if ( (!empty($a->value) && ($a->value[0] & 1)) || (!empty($b->value) && ($b->value[0] & 1)) ) {
                    $a = $a->add($y);
                    $b = $b->subtract($x);
                }
                $a->_rshift(1);
                $b->_rshift(1);
            }
 
            while ( !($v->value[0] & 1) ) {
                $v->_rshift(1);
                if ( (!empty($d->value) && ($d->value[0] & 1)) || (!empty($c->value) && ($c->value[0] & 1)) ) {
                    $c = $c->add($y);
                    $d = $d->subtract($x);
                }
                $c->_rshift(1);
                $d->_rshift(1);
            }
 
            if ($u->compare($v) >= 0) {
                $u = $u->subtract($v);
                $a = $a->subtract($c);
                $b = $b->subtract($d);
            } else {
                $v = $v->subtract($u);
                $c = $c->subtract($a);
                $d = $d->subtract($b);
            }
        }
 
        return array(
            'gcd' => $this->_normalize($g->multiply($v)),
            'x'   => $this->_normalize($c),
            'y'   => $this->_normalize($d)
        );
    }
 
    /**
     * Calculates the greatest common divisor
     *
     * Say you have 693 and 609.  The GCD is 21.
     *
     * Here's an example:
     * <code>
     * <?php
     *    include('Math/BigInteger.php');
     *
     *    $a = new Math_BigInteger(693);
     *    $b = new Math_BigInteger(609);
     *
     *    $gcd = a->extendedGCD($b);
     *
     *    echo $gcd->toString() . "\r\n"; // outputs 21
     * ?>
     * </code>
     *
     * @param Math_BigInteger $n
     * @return Math_BigInteger
     * @access public
     */
    function gcd($n)
    {
        extract($this->extendedGCD($n));
        return $gcd;
    }
 
    /**
     * Absolute value.
     *
     * @return Math_BigInteger
     * @access public
     */
    function abs()
    {
        $temp = new Math_BigInteger();
 
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp->value = gmp_abs($this->value);
                break;
            case MATH_BIGINTEGER_MODE_BCMATH:
                $temp->value = (bccomp($this->value, '0', 0) < 0) ? substr($this->value, 1) : $this->value;
                break;
            default:
                $temp->value = $this->value;
        }
 
        return $temp;
    }
 
    /**
     * Compares two numbers.
     *
     * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite.  The reason for this is
     * demonstrated thusly:
     *
     * $x  > $y: $x->compare($y)  > 0
     * $x  < $y: $x->compare($y)  < 0
     * $x == $y: $x->compare($y) == 0
     *
     * Note how the same comparison operator is used.  If you want to test for equality, use $x->equals($y).
     *
     * @param Math_BigInteger $x
     * @return Integer < 0 if $this is less than $x; > 0 if $this is greater than $x, and 0 if they are equal.
     * @access public
     * @see equals()
     * @internal Could return $this->subtract($x), but that's not as fast as what we do do.
     */
    function compare($y)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                return gmp_cmp($this->value, $y->value);
            case MATH_BIGINTEGER_MODE_BCMATH:
                return bccomp($this->value, $y->value, 0);
        }
 
        return $this->_compare($this->value, $this->is_negative, $y->value, $y->is_negative);
    }
 
    /**
     * Compares two numbers.
     *
     * @param Array $x_value
     * @param Boolean $x_negative
     * @param Array $y_value
     * @param Boolean $y_negative
     * @return Integer
     * @see compare()
     * @access private
     */
    function _compare($x_value, $x_negative, $y_value, $y_negative)
    {
        if ( $x_negative != $y_negative ) {
            return ( !$x_negative && $y_negative ) ? 1 : -1;
        }
 
        $result = $x_negative ? -1 : 1;
 
        if ( count($x_value) != count($y_value) ) {
            return ( count($x_value) > count($y_value) ) ? $result : -$result;
        }
        $size = max(count($x_value), count($y_value));
 
        $x_value = array_pad($x_value, $size, 0);
        $y_value = array_pad($y_value, $size, 0);
 
        for ($i = count($x_value) - 1; $i >= 0; --$i) {
            if ($x_value[$i] != $y_value[$i]) {
                return ( $x_value[$i] > $y_value[$i] ) ? $result : -$result;
            }
        }
 
        return 0;
    }
 
    /**
     * Tests the equality of two numbers.
     *
     * If you need to see if one number is greater than or less than another number, use Math_BigInteger::compare()
     *
     * @param Math_BigInteger $x
     * @return Boolean
     * @access public
     * @see compare()
     */
    function equals($x)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                return gmp_cmp($this->value, $x->value) == 0;
            default:
                return $this->value === $x->value && $this->is_negative == $x->is_negative;
        }
    }
 
    /**
     * Set Precision
     *
     * Some bitwise operations give different results depending on the precision being used.  Examples include left
     * shift, not, and rotates.
     *
     * @param Math_BigInteger $x
     * @access public
     * @return Math_BigInteger
     */
    function setPrecision($bits)
    {
        $this->precision = $bits;
        if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ) {
            $this->bitmask = new Math_BigInteger(chr((1 << ($bits & 0x7)) - 1) . str_repeat(chr(0xFF), $bits >> 3), 256);
        } else {
            $this->bitmask = new Math_BigInteger(bcpow('2', $bits, 0));
        }
 
        $temp = $this->_normalize($this);
        $this->value = $temp->value;
    }
 
    /**
     * Logical And
     *
     * @param Math_BigInteger $x
     * @access public
     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
     * @return Math_BigInteger
     */
    function bitwise_and($x)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_and($this->value, $x->value);
 
                return $this->_normalize($temp);
            case MATH_BIGINTEGER_MODE_BCMATH:
                $left = $this->toBytes();
                $right = $x->toBytes();
 
                $length = max(strlen($left), strlen($right));
 
                $left = str_pad($left, $length, chr(0), STR_PAD_LEFT);
                $right = str_pad($right, $length, chr(0), STR_PAD_LEFT);
 
                return $this->_normalize(new Math_BigInteger($left & $right, 256));
        }
 
        $result = $this->copy();
 
        $length = min(count($x->value), count($this->value));
 
        $result->value = array_slice($result->value, 0, $length);
 
        for ($i = 0; $i < $length; ++$i) {
            $result->value[$i] = $result->value[$i] & $x->value[$i];
        }
 
        return $this->_normalize($result);
    }
 
    /**
     * Logical Or
     *
     * @param Math_BigInteger $x
     * @access public
     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
     * @return Math_BigInteger
     */
    function bitwise_or($x)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_or($this->value, $x->value);
 
                return $this->_normalize($temp);
            case MATH_BIGINTEGER_MODE_BCMATH:
                $left = $this->toBytes();
                $right = $x->toBytes();
 
                $length = max(strlen($left), strlen($right));
 
                $left = str_pad($left, $length, chr(0), STR_PAD_LEFT);
                $right = str_pad($right, $length, chr(0), STR_PAD_LEFT);
 
                return $this->_normalize(new Math_BigInteger($left | $right, 256));
        }
 
        $length = max(count($this->value), count($x->value));
        $result = $this->copy();
        $result->value = array_pad($result->value, 0, $length);
        $x->value = array_pad($x->value, 0, $length);
 
        for ($i = 0; $i < $length; ++$i) {
            $result->value[$i] = $this->value[$i] | $x->value[$i];
        }
 
        return $this->_normalize($result);
    }
 
    /**
     * Logical Exclusive-Or
     *
     * @param Math_BigInteger $x
     * @access public
     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
     * @return Math_BigInteger
     */
    function bitwise_xor($x)
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                $temp = new Math_BigInteger();
                $temp->value = gmp_xor($this->value, $x->value);
 
                return $this->_normalize($temp);
            case MATH_BIGINTEGER_MODE_BCMATH:
                $left = $this->toBytes();
                $right = $x->toBytes();
 
                $length = max(strlen($left), strlen($right));
 
                $left = str_pad($left, $length, chr(0), STR_PAD_LEFT);
                $right = str_pad($right, $length, chr(0), STR_PAD_LEFT);
 
                return $this->_normalize(new Math_BigInteger($left ^ $right, 256));
        }
 
        $length = max(count($this->value), count($x->value));
        $result = $this->copy();
        $result->value = array_pad($result->value, 0, $length);
        $x->value = array_pad($x->value, 0, $length);
 
        for ($i = 0; $i < $length; ++$i) {
            $result->value[$i] = $this->value[$i] ^ $x->value[$i];
        }
 
        return $this->_normalize($result);
    }
 
    /**
     * Logical Not
     *
     * @access public
     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
     * @return Math_BigInteger
     */
    function bitwise_not()
    {
        // calculuate "not" without regard to $this->precision
        // (will always result in a smaller number.  ie. ~1 isn't 1111 1110 - it's 0)
        $temp = $this->toBytes();
        $pre_msb = decbin(ord($temp[0]));
        $temp = ~$temp;
        $msb = decbin(ord($temp[0]));
        if (strlen($msb) == 8) {
            $msb = substr($msb, strpos($msb, '0'));
        }
        $temp[0] = chr(bindec($msb));
 
        // see if we need to add extra leading 1's
        $current_bits = strlen($pre_msb) + 8 * strlen($temp) - 8;
        $new_bits = $this->precision - $current_bits;
        if ($new_bits <= 0) {
            return $this->_normalize(new Math_BigInteger($temp, 256));
        }
 
        // generate as many leading 1's as we need to.
        $leading_ones = chr((1 << ($new_bits & 0x7)) - 1) . str_repeat(chr(0xFF), $new_bits >> 3);
        $this->_base256_lshift($leading_ones, $current_bits);
 
        $temp = str_pad($temp, ceil($this->bits / 8), chr(0), STR_PAD_LEFT);
 
        return $this->_normalize(new Math_BigInteger($leading_ones | $temp, 256));
    }
 
    /**
     * Logical Right Shift
     *
     * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift.
     *
     * @param Integer $shift
     * @return Math_BigInteger
     * @access public
     * @internal The only version that yields any speed increases is the internal version.
     */
    function bitwise_rightShift($shift)
    {
        $temp = new Math_BigInteger();
 
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                static $two;
 
                if (!isset($two)) {
                    $two = gmp_init('2');
                }
 
                $temp->value = gmp_div_q($this->value, gmp_pow($two, $shift));
 
                break;
            case MATH_BIGINTEGER_MODE_BCMATH:
                $temp->value = bcdiv($this->value, bcpow('2', $shift, 0), 0);
 
                break;
            default: // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten
                     // and I don't want to do that...
                $temp->value = $this->value;
                $temp->_rshift($shift);
        }
 
        return $this->_normalize($temp);
    }
 
    /**
     * Logical Left Shift
     *
     * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift.
     *
     * @param Integer $shift
     * @return Math_BigInteger
     * @access public
     * @internal The only version that yields any speed increases is the internal version.
     */
    function bitwise_leftShift($shift)
    {
        $temp = new Math_BigInteger();
 
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                static $two;
 
                if (!isset($two)) {
                    $two = gmp_init('2');
                }
 
                $temp->value = gmp_mul($this->value, gmp_pow($two, $shift));
 
                break;
            case MATH_BIGINTEGER_MODE_BCMATH:
                $temp->value = bcmul($this->value, bcpow('2', $shift, 0), 0);
 
                break;
            default: // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten
                     // and I don't want to do that...
                $temp->value = $this->value;
                $temp->_lshift($shift);
        }
 
        return $this->_normalize($temp);
    }
 
    /**
     * Logical Left Rotate
     *
     * Instead of the top x bits being dropped they're appended to the shifted bit string.
     *
     * @param Integer $shift
     * @return Math_BigInteger
     * @access public
     */
    function bitwise_leftRotate($shift)
    {
        $bits = $this->toBytes();
 
        if ($this->precision > 0) {
            $precision = $this->precision;
            if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) {
                $mask = $this->bitmask->subtract(new Math_BigInteger(1));
                $mask = $mask->toBytes();
            } else {
                $mask = $this->bitmask->toBytes();
            }
        } else {
            $temp = ord($bits[0]);
            for ($i = 0; $temp >> $i; ++$i);
            $precision = 8 * strlen($bits) - 8 + $i;
            $mask = chr((1 << ($precision & 0x7)) - 1) . str_repeat(chr(0xFF), $precision >> 3);
        }
 
        if ($shift < 0) {
            $shift+= $precision;
        }
        $shift%= $precision;
 
        if (!$shift) {
            return $this->copy();
        }
 
        $left = $this->bitwise_leftShift($shift);
        $left = $left->bitwise_and(new Math_BigInteger($mask, 256));
        $right = $this->bitwise_rightShift($precision - $shift);
        $result = MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right);
        return $this->_normalize($result);
    }
 
    /**
     * Logical Right Rotate
     *
     * Instead of the bottom x bits being dropped they're prepended to the shifted bit string.
     *
     * @param Integer $shift
     * @return Math_BigInteger
     * @access public
     */
    function bitwise_rightRotate($shift)
    {
        return $this->bitwise_leftRotate(-$shift);
    }
 
    /**
     * Set random number generator function
     *
     * $generator should be the name of a random generating function whose first parameter is the minimum
     * value and whose second parameter is the maximum value.  If this function needs to be seeded, it should
     * be seeded prior to calling Math_BigInteger::random() or Math_BigInteger::randomPrime()
     *
     * If the random generating function is not explicitly set, it'll be assumed to be mt_rand().
     *
     * @see random()
     * @see randomPrime()
     * @param optional String $generator
     * @access public
     */
    function setRandomGenerator($generator)
    {
        $this->generator = $generator;
    }
 
    /**
     * Generate a random number
     *
     * @param optional Integer $min
     * @param optional Integer $max
     * @return Math_BigInteger
     * @access public
     */
    function random($min = false, $max = false)
    {
        if ($min === false) {
            $min = new Math_BigInteger(0);
        }
 
        if ($max === false) {
            $max = new Math_BigInteger(0x7FFFFFFF);
        }
 
        $compare = $max->compare($min);
 
        if (!$compare) {
            return $this->_normalize($min);
        } else if ($compare < 0) {
            // if $min is bigger then $max, swap $min and $max
            $temp = $max;
            $max = $min;
            $min = $temp;
        }
 
        $generator = $this->generator;
 
        $max = $max->subtract($min);
        $max = ltrim($max->toBytes(), chr(0));
        $size = strlen($max) - 1;
        $random = '';
 
        $bytes = $size & 1;
        for ($i = 0; $i < $bytes; ++$i) {
            $random.= chr($generator(0, 255));
        }
 
        $blocks = $size >> 1;
        for ($i = 0; $i < $blocks; ++$i) {
            // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems
            $random.= pack('n', $generator(0, 0xFFFF));
        }
 
        $temp = new Math_BigInteger($random, 256);
        if ($temp->compare(new Math_BigInteger(substr($max, 1), 256)) > 0) {
            $random = chr($generator(0, ord($max[0]) - 1)) . $random;
        } else {
            $random = chr($generator(0, ord($max[0])    )) . $random;
        }
 
        $random = new Math_BigInteger($random, 256);
 
        return $this->_normalize($random->add($min));
    }
 
    /**
     * Generate a random prime number.
     *
     * If there's not a prime within the given range, false will be returned.  If more than $timeout seconds have elapsed,
     * give up and return false.
     *
     * @param optional Integer $min
     * @param optional Integer $max
     * @param optional Integer $timeout
     * @return Math_BigInteger
     * @access public
     * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}.
     */
    function randomPrime($min = false, $max = false, $timeout = false)
    {
        $compare = $max->compare($min);
 
        if (!$compare) {
            return $min;
        } else if ($compare < 0) {
            // if $min is bigger then $max, swap $min and $max
            $temp = $max;
            $max = $min;
            $min = $temp;
        }
 
        // gmp_nextprime() requires PHP 5 >= 5.2.0 per <http://php.net/gmp-nextprime>.
        if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && function_exists('gmp_nextprime') ) {
            // we don't rely on Math_BigInteger::random()'s min / max when gmp_nextprime() is being used since this function
            // does its own checks on $max / $min when gmp_nextprime() is used.  When gmp_nextprime() is not used, however,
            // the same $max / $min checks are not performed.
            if ($min === false) {
                $min = new Math_BigInteger(0);
            }
 
            if ($max === false) {
                $max = new Math_BigInteger(0x7FFFFFFF);
            }
 
            $x = $this->random($min, $max);
 
            $x->value = gmp_nextprime($x->value);
 
            if ($x->compare($max) <= 0) {
                return $x;
            }
 
            $x->value = gmp_nextprime($min->value);
 
            if ($x->compare($max) <= 0) {
                return $x;
            }
 
            return false;
        }
 
        static $one, $two;
        if (!isset($one)) {
            $one = new Math_BigInteger(1);
            $two = new Math_BigInteger(2);
        }
 
        $start = time();
 
        $x = $this->random($min, $max);
        if ($x->equals($two)) {
            return $x;
        }
 
        $x->_make_odd();
        if ($x->compare($max) > 0) {
            // if $x > $max then $max is even and if $min == $max then no prime number exists between the specified range
            if ($min->equals($max)) {
                return false;
            }
            $x = $min->copy();
            $x->_make_odd();
        }
 
        $initial_x = $x->copy();
 
        while (true) {
            if ($timeout !== false && time() - $start > $timeout) {
                return false;
            }
 
            if ($x->isPrime()) {
                return $x;
            }
 
            $x = $x->add($two);
 
            if ($x->compare($max) > 0) {
                $x = $min->copy();
                if ($x->equals($two)) {
                    return $x;
                }
                $x->_make_odd();
            }
 
            if ($x->equals($initial_x)) {
                return false;
            }
        }
    }
 
    /**
     * Make the current number odd
     *
     * If the current number is odd it'll be unchanged.  If it's even, one will be added to it.
     *
     * @see randomPrime()
     * @access private
     */
    function _make_odd()
    {
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                gmp_setbit($this->value, 0);
                break;
            case MATH_BIGINTEGER_MODE_BCMATH:
                if ($this->value[strlen($this->value) - 1] % 2 == 0) {
                    $this->value = bcadd($this->value, '1');
                }
                break;
            default:
                $this->value[0] |= 1;
        }
    }
 
    /**
     * Checks a numer to see if it's prime
     *
     * Assuming the $t parameter is not set, this function has an error rate of 2**-80.  The main motivation for the
     * $t parameter is distributability.  Math_BigInteger::randomPrime() can be distributed accross multiple pageloads
     * on a website instead of just one.
     *
     * @param optional Integer $t
     * @return Boolean
     * @access public
     * @internal Uses the
     *     {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}.  See
     *     {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24}.
     */
    function isPrime($t = false)
    {
        $length = strlen($this->toBytes());
 
        if (!$t) {
            // see HAC 4.49 "Note (controlling the error probability)"
                 if ($length >= 163) { $t =  2; } // floor(1300 / 8)
            else if ($length >= 106) { $t =  3; } // floor( 850 / 8)
            else if ($length >= 81 ) { $t =  4; } // floor( 650 / 8)
            else if ($length >= 68 ) { $t =  5; } // floor( 550 / 8)
            else if ($length >= 56 ) { $t =  6; } // floor( 450 / 8)
            else if ($length >= 50 ) { $t =  7; } // floor( 400 / 8)
            else if ($length >= 43 ) { $t =  8; } // floor( 350 / 8)
            else if ($length >= 37 ) { $t =  9; } // floor( 300 / 8)
            else if ($length >= 31 ) { $t = 12; } // floor( 250 / 8)
            else if ($length >= 25 ) { $t = 15; } // floor( 200 / 8)
            else if ($length >= 18 ) { $t = 18; } // floor( 150 / 8)
            else                     { $t = 27; }
        }
 
        // ie. gmp_testbit($this, 0)
        // ie. isEven() or !isOdd()
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                return gmp_prob_prime($this->value, $t) != 0;
            case MATH_BIGINTEGER_MODE_BCMATH:
                if ($this->value === '2') {
                    return true;
                }
                if ($this->value[strlen($this->value) - 1] % 2 == 0) {
                    return false;
                }
                break;
            default:
                if ($this->value == array(2)) {
                    return true;
                }
                if (~$this->value[0] & 1) {
                    return false;
                }
        }
 
        static $primes, $zero, $one, $two;
 
        if (!isset($primes)) {
            $primes = array(
                3,    5,    7,    11,   13,   17,   19,   23,   29,   31,   37,   41,   43,   47,   53,   59,  
                61,   67,   71,   73,   79,   83,   89,   97,   101,  103,  107,  109,  113,  127,  131,  137,  
                139,  149,  151,  157,  163,  167,  173,  179,  181,  191,  193,  197,  199,  211,  223,  227,  
                229,  233,  239,  241,  251,  257,  263,  269,  271,  277,  281,  283,  293,  307,  311,  313,  
                317,  331,  337,  347,  349,  353,  359,  367,  373,  379,  383,  389,  397,  401,  409,  419,  
                421,  431,  433,  439,  443,  449,  457,  461,  463,  467,  479,  487,  491,  499,  503,  509,  
                521,  523,  541,  547,  557,  563,  569,  571,  577,  587,  593,  599,  601,  607,  613,  617,  
                619,  631,  641,  643,  647,  653,  659,  661,  673,  677,  683,  691,  701,  709,  719,  727,  
                733,  739,  743,  751,  757,  761,  769,  773,  787,  797,  809,  811,  821,  823,  827,  829,  
                839,  853,  857,  859,  863,  877,  881,  883,  887,  907,  911,  919,  929,  937,  941,  947,  
                953,  967,  971,  977,  983,  991,  997
            );
 
            if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) {
                for ($i = 0; $i < count($primes); ++$i) {
                    $primes[$i] = new Math_BigInteger($primes[$i]);
                }
            }
 
            $zero = new Math_BigInteger();
            $one = new Math_BigInteger(1);
            $two = new Math_BigInteger(2);
        }
 
        if ($this->equals($one)) {
            return false;
        }
 
        // see HAC 4.4.1 "Random search for probable primes"
        if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) {
            foreach ($primes as $prime) {
                list(, $r) = $this->divide($prime);
                if ($r->equals($zero)) {
                    return $this->equals($prime);
                }
            }
        } else {
            $value = $this->value;
            foreach ($primes as $prime) {
                list(, $r) = $this->_divide_digit($value, $prime);
                if (!$r) {
                    return count($value) == 1 && $value[0] == $prime;
                }
            }
        }
 
        $n   = $this->copy();
        $n_1 = $n->subtract($one);
        $n_2 = $n->subtract($two);
 
        $r = $n_1->copy();
        $r_value = $r->value;
        // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s));
        if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) {
            $s = 0;
            // if $n was 1, $r would be 0 and this would be an infinite loop, hence our $this->equals($one) check earlier
            while ($r->value[strlen($r->value) - 1] % 2 == 0) {
                $r->value = bcdiv($r->value, '2', 0);
                ++$s;
            }
        } else {
            for ($i = 0, $r_length = count($r_value); $i < $r_length; ++$i) {
                $temp = ~$r_value[$i] & 0xFFFFFF;
                for ($j = 1; ($temp >> $j) & 1; ++$j);
                if ($j != 25) {
                    break;
                }
            }
            $s = 26 * $i + $j - 1;
            $r->_rshift($s);
        }
 
        for ($i = 0; $i < $t; ++$i) {
            $a = $this->random($two, $n_2);
            $y = $a->modPow($r, $n);
 
            if (!$y->equals($one) && !$y->equals($n_1)) {
                for ($j = 1; $j < $s && !$y->equals($n_1); ++$j) {
                    $y = $y->modPow($two, $n);
                    if ($y->equals($one)) {
                        return false;
                    }
                }
 
                if (!$y->equals($n_1)) {
                    return false;
                }
            }
        }
        return true;
    }
 
    /**
     * Logical Left Shift
     *
     * Shifts BigInteger's by $shift bits.
     *
     * @param Integer $shift
     * @access private
     */
    function _lshift($shift)
    {
        if ( $shift == 0 ) {
            return;
        }
 
        $num_digits = (int) ($shift / 26);
        $shift %= 26;
        $shift = 1 << $shift;
 
        $carry = 0;
 
        for ($i = 0; $i < count($this->value); ++$i) {
            $temp = $this->value[$i] * $shift + $carry;
            $carry = (int) ($temp / 0x4000000);
            $this->value[$i] = (int) ($temp - $carry * 0x4000000);
        }
 
        if ( $carry ) {
            $this->value[] = $carry;
        }
 
        while ($num_digits--) {
            array_unshift($this->value, 0);
        }
    }
 
    /**
     * Logical Right Shift
     *
     * Shifts BigInteger's by $shift bits.
     *
     * @param Integer $shift
     * @access private
     */
    function _rshift($shift)
    {
        if ($shift == 0) {
            return;
        }
 
        $num_digits = (int) ($shift / 26);
        $shift %= 26;
        $carry_shift = 26 - $shift;
        $carry_mask = (1 << $shift) - 1;
 
        if ( $num_digits ) {
            $this->value = array_slice($this->value, $num_digits);
        }
 
        $carry = 0;
 
        for ($i = count($this->value) - 1; $i >= 0; --$i) {
            $temp = $this->value[$i] >> $shift | $carry;
            $carry = ($this->value[$i] & $carry_mask) << $carry_shift;
            $this->value[$i] = $temp;
        }
 
        $this->value = $this->_trim($this->value);
    }
 
    /**
     * Normalize
     *
     * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision
     *
     * @param Math_BigInteger
     * @return Math_BigInteger
     * @see _trim()
     * @access private
     */
    function _normalize($result)
    {
        $result->precision = $this->precision;
        $result->bitmask = $this->bitmask;
 
        switch ( MATH_BIGINTEGER_MODE ) {
            case MATH_BIGINTEGER_MODE_GMP:
                if (!empty($result->bitmask->value)) {
                    $result->value = gmp_and($result->value, $result->bitmask->value);
                }
 
                return $result;
            case MATH_BIGINTEGER_MODE_BCMATH:
                if (!empty($result->bitmask->value)) {
                    $result->value = bcmod($result->value, $result->bitmask->value);
                }
 
                return $result;
        }
 
        $value = &$result->value;
 
        if ( !count($value) ) {
            return $result;
        }
 
        $value = $this->_trim($value);
 
        if (!empty($result->bitmask->value)) {
            $length = min(count($value), count($this->bitmask->value));
            $value = array_slice($value, 0, $length);
 
            for ($i = 0; $i < $length; ++$i) {
                $value[$i] = $value[$i] & $this->bitmask->value[$i];
            }
        }
 
        return $result;
    }
 
    /**
     * Trim
     *
     * Removes leading zeros
     *
     * @return Math_BigInteger
     * @access private
     */
    function _trim($value)
    {
        for ($i = count($value) - 1; $i >= 0; --$i) {
            if ( $value[$i] ) {
                break;
            }
            unset($value[$i]);
        }
 
        return $value;
    }
 
    /**
     * Array Repeat
     *
     * @param $input Array
     * @param $multiplier mixed
     * @return Array
     * @access private
     */
    function _array_repeat($input, $multiplier)
    {
        return ($multiplier) ? array_fill(0, $multiplier, $input) : array();
    }
 
    /**
     * Logical Left Shift
     *
     * Shifts binary strings $shift bits, essentially multiplying by 2**$shift.
     *
     * @param $x String
     * @param $shift Integer
     * @return String
     * @access private
     */
    function _base256_lshift(&$x, $shift)
    {
        if ($shift == 0) {
            return;
        }
 
        $num_bytes = $shift >> 3; // eg. floor($shift/8)
        $shift &= 7; // eg. $shift % 8
 
        $carry = 0;
        for ($i = strlen($x) - 1; $i >= 0; --$i) {
            $temp = ord($x[$i]) << $shift | $carry;
            $x[$i] = chr($temp);
            $carry = $temp >> 8;
        }
        $carry = ($carry != 0) ? chr($carry) : '';
        $x = $carry . $x . str_repeat(chr(0), $num_bytes);
    }
 
    /**
     * Logical Right Shift
     *
     * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder.
     *
     * @param $x String
     * @param $shift Integer
     * @return String
     * @access private
     */
    function _base256_rshift(&$x, $shift)
    {
        if ($shift == 0) {
            $x = ltrim($x, chr(0));
            return '';
        }
 
        $num_bytes = $shift >> 3; // eg. floor($shift/8)
        $shift &= 7; // eg. $shift % 8
 
        $remainder = '';
        if ($num_bytes) {
            $start = $num_bytes > strlen($x) ? -strlen($x) : -$num_bytes;
            $remainder = substr($x, $start);
            $x = substr($x, 0, -$num_bytes);
        }
 
        $carry = 0;
        $carry_shift = 8 - $shift;
        for ($i = 0; $i < strlen($x); ++$i) {
            $temp = (ord($x[$i]) >> $shift) | $carry;
            $carry = (ord($x[$i]) << $carry_shift) & 0xFF;
            $x[$i] = chr($temp);
        }
        $x = ltrim($x, chr(0));
 
        $remainder = chr($carry >> $carry_shift) . $remainder;
 
        return ltrim($remainder, chr(0));
    }
 
    // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long
    // at 32-bits, while java's longs are 64-bits.
 
    /**
     * Converts 32-bit integers to bytes.
     *
     * @param Integer $x
     * @return String
     * @access private
     */
    function _int2bytes($x)
    {
        return ltrim(pack('N', $x), chr(0));
    }
 
    /**
     * Converts bytes to 32-bit integers
     *
     * @param String $x
     * @return Integer
     * @access private
     */
    function _bytes2int($x)
    {
        $temp = unpack('Nint', str_pad($x, 4, chr(0), STR_PAD_LEFT));
        return $temp['int'];
    }
}
 

================================================
FILE: Application/Home/Common/Rsa/rsa.php
================================================
<?php

/*
 * PHP implementation of the RSA algorithm
 * (C) Copyright 2004 Edsko de Vries, Ireland
 *
 * Licensed under the GNU Public License (GPL)
 *
 * This implementation has been verified against [3]
 * (tested Java/PHP interoperability).
 *
 * References:
 * [1] "Applied Cryptography", Bruce Schneier, John Wiley & Sons, 1996
 * [2] "Prime Number Hide-and-Seek", Brian Raiter, Muppetlabs (online)
 * [3] "The Bouncy Castle Crypto Package", Legion of the Bouncy Castle,
 *      (open source cryptography library for Java, online)
 * [4] "PKCS #1: RSA Encryption Standard", RSA Laboratories Technical Note,
 *      version 1.5, revised November 1, 1993
 */

/*
 * Functions that are meant to be used by the user of this PHP module.
 *
 * Notes:
 * - $key and $modulus should be numbers in (decimal) string format
 * - $message is expected to be binary data
 * - $keylength should be a multiple of 8, and should be in bits
 * - For rsa_encrypt/rsa_sign, the length of $message should not exceed
 *   ($keylength / 8) - 11 (as mandated by [4]).
 * - rsa_encrypt and rsa_sign will automatically add padding to the message.
 *   For rsa_encrypt, this padding will consist of random values; for rsa_sign,
 *   padding will consist of the appropriate number of 0xFF values (see [4])
 * - rsa_decrypt and rsa_verify will automatically remove message padding.
 * - Blocks for decoding (rsa_decrypt, rsa_verify) should be exactly
 *   ($keylength / 8) bytes long.
 * - rsa_encrypt and rsa_verify expect a public key; rsa_decrypt and rsa_sign
 *   expect a private key.
 */

/**
 * 于2010-11-12 1:06分于LONELY修改
 */
function rsa_encrypt($message, $public_key, $modulus, $keylength)
{
    $padded = add_PKCS1_padding($message, true, $keylength / 8);
    $number = binary_to_number($padded);
    $encrypted = pow_mod($number, $public_key, $modulus);
    $result = number_to_binary($encrypted, $keylength / 8);

    return $result;
}

function rsa_decrypt($message, $private_key, $modulus, $keylength)
{
    $number = binary_to_number($message);
    $decrypted = pow_mod($number, $private_key, $modulus);
    $result = number_to_binary($decrypted, $keylength / 8);
    return remove_PKCS1_padding($result, $keylength / 8);
}

function rsa_sign($message, $private_key, $modulus, $keylength)
{
    $padded = add_PKCS1_padding($message, false, $keylength / 8);
    $number = binary_to_number($padded);
    $signed = pow_mod($number, $private_key, $modulus);
    $result = number_to_binary($signed, $keylength / 8);

    return $result;
}

function rsa_verify($message, $public_key, $modulus, $keylength)
{
    return rsa_decrypt($message, $public_key, $modulus, $keylength);
}

function rsa_kyp_verify($message, $public_key, $modulus, $keylength)
{
    $number = binary_to_number($message);
    $decrypted = pow_mod($number, $public_key, $modulus);
    $result = number_to_binary($decrypted, $keylength / 8);

    return remove_KYP_padding($result, $keylength / 8);
}

/*
 * Some constants
 */

define("BCCOMP_LARGER", 1);

/*
 * The actual implementation.
 * Requires BCMath support in PHP (compile with --enable-bcmath)
 */

//--
// Calculate (p ^ q) mod r
//
// We need some trickery to [2]:
//   (a) Avoid calculating (p ^ q) before (p ^ q) mod r, because for typical RSA
//       applications, (p ^ q) is going to be _WAY_ too large.
//       (I mean, __WAY__ too large - won't fit in your computer's memory.)
//   (b) Still be reasonably efficient.
//
// We assume p, q and r are all positive, and that r is non-zero.
//
// Note that the more simple algorithm of multiplying $p by itself $q times, and
// applying "mod $r" at every step is also valid, but is O($q), whereas this
// algorithm is O(log $q). Big difference.
//
// As far as I can see, the algorithm I use is optimal; there is no redundancy
// in the calculation of the partial results.
//--
function pow_mod($p, $q, $r)
{
    // Extract powers of 2 from $q
    $factors = array();
    $div = $q;
    $power_of_two = 0;
    while(bccomp($div, "0") == BCCOMP_LARGER)
    {
        $rem = bcmod($div, 2);
        $div = bcdiv($div, 2);

        if($rem) array_push($factors, $power_of_two);
        $power_of_two++;
    }

    // Calculate partial results for each factor, using each partial result as a
    // starting point for the next. This depends of the factors of two being
    // generated in increasing order.
    $partial_results = array();
    $part_res = $p;
    $idx = 0;
    foreach($factors as $factor)
    {
        while($idx < $factor)
        {
            $part_res = bcpow($part_res, "2");
            $part_res = bcmod($part_res, $r);

            $idx++;
        }

        array_push($partial_results, $part_res);
    }

    // Calculate final result
    $result = "1";
    foreach($partial_results as $part_res)
    {
        $result = bcmul($result, $part_res);
        $result = bcmod($result, $r);
    }

    return $result;
}

//--
// Function to add padding to a decrypted string
// We need to know if this is a private or a public key operation [4]
//--
function add_PKCS1_padding($data, $isPublicKey, $blocksize)
{
    $pad_length = $blocksize - 3 - strlen($data);

    if($isPublicKey)
    {
        $block_type = "\x02";

        $padding = "";
        for($i = 0; $i < $pad_length; $i++)
        {
            $rnd = mt_rand(1, 255);
            $padding .= chr($rnd);
        }
    }
    else
    {
        $block_type = "\x01";
        $padding = str_repeat("\xFF", $pad_length);
    }

    return "\x00" . $block_type . $padding . "\x00" . $data;
}

//--
// Remove padding from a decrypted string
// See [4] for more details.
//--
function remove_PKCS1_padding($data, $blocksize)
{
    //以下部分于原版的RSA有所不同,修复了原版的一个BUG
    //assert(strlen($data) == $blocksize);
    $data = substr($data, 1);

    // We cannot deal with block type 0
    if($data{0} == '\0')
        die("Block type 0 not implemented.");

    // Then the block type must be 1 or 2
    //assert(($data{0} == "\x01") || ($data{0} == "\x02"));

//  echo $data;
    // Remove the padding
    $i=1;
    while (1){
        $offset = strpos($data, "\0", $i);
        if(!$offset){
            $offset=$i;
            break;
        }
        $i=$offset+1;
    }
    //$offset = strpos($data, "\0", 100);
    return substr($data, $offset);
}

//--
// Remove "kyp" padding
// (Non standard)
//--
function remove_KYP_padding($data, $blocksize)
{
    assert(strlen($data) == $blocksize);

    $offset = strpos($data, "\0");
    return substr($data, 0, $offset);
}

//--
// Convert binary data to a decimal number
//--
function binary_to_number($data)
{
    $base = "256";
    $radix = "1";
    $result = "0";

    for($i = strlen($data) - 1; $i >= 0; $i--)
    {
        $digit = ord($data{$i});
        $part_res = bcmul($digit, $radix);
        $result = bcadd($result, $part_res);
        $radix = bcmul($radix, $base);
    }

    return $result;
}

//--
// Convert a number back into binary form
//--
function number_to_binary($number, $blocksize)
{
    $base = "256";
    $result = "";

    $div = $number;
    while($div > 0)
    {
        $mod = bcmod($div, $base);
        $div = bcdiv($div, $base);

        $result = chr($mod) . $result;
    }

    return str_pad($result, $blocksize, "\x00", STR_PAD_LEFT);
}
?>

================================================
FILE: Application/Home/Common/index.html
================================================
 

================================================
FILE: Application/Home/Conf/config.php
================================================
<?php

return array(//'配置项'=>'配置值'

    'DB_TYPE' => 'mysql', 'DB_HOST' => '127.0.0.1', // 服务器地址
    'DB_NAME' => 'cloud', // 数据库名
    'DB_USER' => 'root', // 用户名
    'DB_PWD' => '', // 密码
    'DB_PORT' => 3306, // 端口
    'DB_PREFIX' => 'cloud_', // 数据库表前缀
    'DB_CHARSET' => 'utf8', // 字符集
    'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志 3.2.3新增
//    'SHOW_PAGE_TRACE'=>True, // 调试工具显示
    'SESSION_AUTO_START' => true, // 开启SESSION

);


================================================
FILE: Application/Home/Conf/index.html
================================================
 

================================================
FILE: Application/Home/Controller/AuthController.class.php
================================================
<?php
namespace Home\Controller;

use Common\Controller\BaseController;
use Home\Tool\HJCTool;
use Home\Tool\Secret;

// 引入成功了
require getcwd() . '/Application/Home/Common/Rsa/BigInteger.php';
require getcwd() . '/Application/Home/Common/Rsa/rsa.php';
require getcwd() . '/Application/Home/Common/Des/DES.php';

class AuthController extends BaseController {
    private $_param;
    private $_jsonArr;
    private $_modulus;
    private $_p;
    private $_keylength;
    private $_mend;

    public function __construct() {
        parent::__construct();

        $this->_modulus = 'AEDA765C9BF7C09E6CC5639C94E4A5772A719337290BB0CF496EA5100877760F4D33D30AAB12BDCFE1471AD184C37F8AAB1E8FC3A128CEDE6B3D98CCFE21492D508AEEE8775DE42E407758E212BA238FD1CF5F78226F10F0BD6060FD70390CB572F8CE1A74D9AA31F4FB45372599862EF8F767BFFA6F59E0A54FD0E1977ECB89';
        $this->_p = "0DD93623B39CE424ADB2DC01AB305B154ED8AF868E2395083E36AE966D9F555000DCF995E3154AE6F1B97A4D368E4F9F0871ED66B3A554040DEBE19A98A309EA52096E58BF2507EFAD83C850294EE85B7BF68FC5455AB5BB302E9AD68B838FF9B6E9D78DBBB91EA9AF52B5D82D521E87587EB4C094B3D0AA09A6BCB795D0F587";
        $this->_keylength = 1024;
        $this->_modulus_16 = new \Math_BigInteger($this->_modulus, 16);
        $this->_mend = $this->_modulus_16->toString();
        $this->_p_16 = new \Math_BigInteger($this->_p, 16);
        $this->_private_key = $this->_p_16->toString();
    }

    private function traceHttp() {
        $content = "## 来访时间:" . date('Y-m-d H:i:s') . " IP:" . $_SERVER["REMOTE_ADDR"] . "\n## 请求字段密文:" . $_SERVER['QUERY_STRING'] . "\n## 请求字段解密:" . json_encode($this->_jsonArr) . "\n";

        if (isset($_SERVER['HTTP_APPNAME'])) {    // SAE
            sae_set_display_errors(false);
            sae_debug(trim($content));
            sae_set_display_errors(true);
        } else {
            $today = date('Ymd');
            $log_filename = 'file/' . $today . '.log';
            file_put_contents($log_filename, $content, FILE_APPEND);
        }
    }

    private function beforeHandle() {
        // 强制下线当天没请求过的注册码
        $this->searchIsOnline();

        // 参数加密在data字段里
        if (!isset($_GET['data'])) {
            $this->returnJson('100', '非法参数!');
        }

        $data = $_GET['data'];

        $pos = strpos($data,"#");
        if ($pos === false) {
            $d = rsa_decrypt(hex2bin($data), $this->_private_key, $this->_mend, $this->_keylength);
            // 反向
            $unsecret = strrev($d);
            $this->_jsonArr = json_decode($unsecret);
        } else { // 分段解密
            $dataL = substr($data, 0, $pos);
            $dataR = substr($data, $pos + 1);

            $dL = rsa_decrypt(hex2bin($dataL), $this->_private_key, $this->_mend, $this->_keylength);
            $unsecretL = strrev($dL);

            $dR = rsa_decrypt(hex2bin($dataR), $this->_private_key, $this->_mend, $this->_keylength);
            $unsecretR = strrev($dR);

            $this->_jsonArr = json_decode($unsecretL . $unsecretR);
        }

        $this->traceHttp();

        // 机器码不能空
        $this->isComputerIdValid();
    }

    // 注册码注册
    public function signin() {
        $this->beforeHandle();

        // op=操作,0注册,1解绑,3试用,4下线
        switch ($this->_jsonArr->o) {
            case 0:
                $this->reg();
                break;
            case 1:
                $this->unbind();
                break;
            case 3:
                $this->trial();
                break;
            case 4:
                $this->offline();
                break;
            case 5:
                $this->recommend();
                break;
        }
    }

    // check校验分开处理 因为1分钟内最多验证一次 免费的解密计算会浪费cpu资源
    public function valid() {
        $this->check();
    }

    // 推荐码加时
    // 每个注册码只能填一次推荐码(加一次时),推荐人可以一直加时
    private function recommend() {
        $softret = $this->isSoftwareFrozen();
        $ret = $this->isCodeValid();

        // 先查这个注册码有没有填过推荐码
        if ($ret[0]['recommend_code']) {
            $this->returnJson('-1', '已经获得过加时了!推荐码是' . $ret[0]['recommend_code']);
        }

        // 根据推荐码得到注册码id
        $code_id = $this->_jsonArr->rm - 10000;

        if ($code_id == $ret[0]['id']) {
            $this->returnJson('-1', '推荐人不能是自己');
        }

        // 根据注册码id获取推荐人的用户id
        $mysql = M();
        $code_ret = $mysql->query("SELECT *FROM cloud_regcode WHERE id = '$code_id'");
        if (!$code_ret) {
            $this->returnJson('-1', '推荐码不正确');
        }

        if ($code_ret[0]['recommend_code'] - 10000 == $ret[0]['id']) {
            $this->returnJson('-1', '不允许互相推荐');
        }

        $recommender_user_id = $code_ret[0]['user_id'];

        // 查询被推荐人规则
        $recommendedRule = $mysql->query("SELECT *FROM cloud_recommendedrule WHERE user_id = '$recommender_user_id'");
        if (!$recommendedRule) {
            $this->returnJson('-1', '被推荐人奖励未设置');
        }
        $success = false;
        foreach ($recommendedRule as $rule) {
            // 更新被推荐人的推荐码、到期时间、总共时间、时间文本
            if ($ret[0]['all_minutes'] / 60 / 24 == $rule['origin_day']) {
                $code = $this->_jsonArr->c;
                $giveDay = $rule['give_day'];
                $new_all_minutes = $ret[0]['all_minutes'] + $giveDay * 24 * 60;
                $new_expire_time = date('Y-m-d H:i:s', strtotime($ret[0]['expire_time']) + $giveDay * 24 * 60 * 60);
                $new_time_str = (explode('天', $ret[0]['time_str'])[0] + $giveDay) . '天';
                $recommend_code = $this->_jsonArr->rm;
                if ($ret[0]['expire_time']) { // 注册码已使用
                    $ret = $mysql->execute("UPDATE cloud_regcode SET all_minutes = '$new_all_minutes', expire_time = '$new_expire_time', time_str = '$new_time_str', recommend_code = '$recommend_code' WHERE code = '$code'");
                } else { // 注册码未使用
                    $ret = $mysql->execute("UPDATE cloud_regcode SET all_minutes = '$new_all_minutes', time_str = '$new_time_str', recommend_code = '$recommend_code' WHERE code = '$code'");
                }
                if (!$ret) {
                    $this->returnJson('-1', '被推荐人加时出现异常');
                }
                $success = true;
                break;
            }
        }

        // 查询推荐人规则
        $recommenderRule = $mysql->query("SELECT *FROM cloud_recommenderrule WHERE user_id = '$recommender_user_id'");
        if ($recommenderRule) {
            foreach ($recommenderRule as $rule) {
                // 更新被推荐人的推荐码、到期时间、总共时间、时间文本
                if ($code_ret[0]['all_minutes'] / 60 / 24 == $rule['origin_day']) {
                    $giveDay = $rule['give_day'];
                    $new_all_minutes = $code_ret[0]['all_minutes'] + $giveDay * 24 * 60;
                    $new_expire_time = date('Y-m-d H:i:s', strtotime($code_ret[0]['expire_time']) + $giveDay * 24 * 60 * 60);
                    $new_time_str = (explode('天', $code_ret[0]['time_str'])[0] + $giveDay) . '天';
                    $recommend_code = $this->_jsonArr->rm;
                    if ($code_ret[0]['expire_time']) { // 注册码已使用
                        $mysql->execute("UPDATE cloud_regcode SET all_minutes = '$new_all_minutes', expire_time = '$new_expire_time', time_str = '$new_time_str' WHERE id = '$code_id'");
                    } else { // 注册码未使用
                        $mysql->execute("UPDATE cloud_regcode SET all_minutes = '$new_all_minutes', time_str = '$new_time_str' WHERE id = '$code_id'");
                    }
                    break;
                }
            }
        }
        if ($success) {
            $this->returnJson('0', '加时成功!');
        } else {
            $this->returnJson('-1', '加时失败!注册码时长未达到要求');
        }

    }

    // 注册:登录注册码修改数据库信息
    private function reg() {
        $softret = $this->isSoftwareFrozen();
        $ret = $this->isCodeValid();

        // 机器码是否改变
        if ($ret[0]['computer_uid'] != '') {
            // 只有绑机单开模式才需要判断机器码相不相同
            if ($softret[0]['bindmode'] == '0') {
                if ($ret[0]['computer_uid'] != $this->_jsonArr->ci) {
                    $this->returnJson('-1', '登录失败,该注册码已绑定其他电脑!');
                }
            }
        }

        // 判断注册码和软件编号是否对应
        if ($ret[0]['software_id'] != $this->_jsonArr->si) {
            $this->returnJson('-1', '登录失败,注册码不属于该软件编号!');
        }

        // 修改注册码的到期时间、机器码、登录时间、登录ip、登录次数、在线
        $hours = $ret[0]['all_minutes'] / 60;
        $expire_time = $ret[0]['expire_time'];
        $computer_uid = $this->_jsonArr->ci;
        $last_time = date('Y-m-d H:i:s', time());
        $last_ip = $this->_jsonArr->ip;
        $use_count = $ret[0]['use_count'] + 1;

        // 绑机单开:机器码+注册码+请求时间戳
        // 绑机多开:机器码+注册码
        // 不绑机多开:注册码
        switch ($softret[0]['bindmode']) {
            case '0':
                $token = substr(md5($computer_uid . $this->_jsonArr->c . time()), 0, 5);
                break;
            case '1':
                $token = substr(md5($computer_uid . $this->_jsonArr->c), 0, 5);
                break;
            case '2':
                $token = substr(md5($this->_jsonArr->c), 0, 5);
                break;
        }

        $update_ret;
        $mysql = M('Software');
        $code = $this->_jsonArr->c;
        // 如果已经在使用了,就不修改beginuse_time字段
        if ($ret[0]['beginuse_time'] == '') {
            $beginuse_time = date('Y-m-d H:i:s', time());
            $expire_time = date('Y-m-d H:i:s', strtotime("+{$hours} hour"));
            $update_ret = $mysql->execute("UPDATE cloud_regcode SET beginuse_time = '$beginuse_time', expire_time = '$expire_time', computer_uid = '$computer_uid', last_time = '$last_time', last_ip = '$last_ip', use_count = 1, isonline = 1, token = '$token' WHERE code = '$code'");
        } else {
            $update_ret = $mysql->execute("UPDATE cloud_regcode SET computer_uid = '$computer_uid', last_time = '$last_time', last_ip = '$last_ip', use_count = '$use_count', isonline = 1, token = '$token' WHERE code = '$code'");
        }

        if (!$update_ret) {
            $this->returnJson('105', '登录异常!');
        }

        // 如果请求的版本小于设置的版本
        if ($this->_jsonArr->v != '' && $this->_jsonArr->v < $softret[0]['version']) {
            if ($softret[0]['updatemode'] == '1') { // 强制更新
                $_SESSION['lastCheckRet'] = '-2';
                $this->_param['msg'] = '[登录结果]:登录成功\n[软件公告]:' . $softret[0]['info'] . '\n[软件版本]:有新版本' .$softret[0]['version']. ',请更新!\n[到期时间]:' . $expire_time;
            } else {
                $_SESSION['lastCheckRet'] = '0';
                $this->_param['msg'] = '[登录结果]:登录成功\n[软件公告]:' . $softret[0]['info'] . '\n[软件版本]:有新版本' .$softret[0]['version']. ',请更新!\n[到期时间]:' . $expire_time;
            }

        } else {
            $_SESSION['lastCheckRet'] = '0';
            $this->_param['msg'] = '[登录结果]:登录成功\n[软件公告]:' . $softret[0]['info'] . '\n[软件版本]:已是最新版本\n[到期时间]:' . $expire_time;
        }

        $_SESSION['checkFormalOrTrial'] = 'formal';
        $this->_param['error'] = $_SESSION['lastCheckRet'];
        $this->_param['token'] = $token;
        $this->_param['url'] = $softret[0]['update_url'];
        $this->_param['t'] = $this->_jsonArr->t;
        $this->secretReturn($this->_param);

    }

    // 解绑:删除机器码并下线
    private function unbind() {
        $softret = $this->isSoftwareFrozen();
        $ret = $this->isCodeValid();

        if ($softret[0]['unbindmode'] == '1') {
            $this->returnJson('-1', '解绑失败,该软件不允许用户解绑!');
        }

        if ($ret[0]['computer_uid'] != '') {
            if ($ret[0]['computer_uid'] != $this->_jsonArr->ci) {
                $this->returnJson('-1', '解绑失败,只能在原电脑解绑!');
            }
        } else {
            $this->returnJson('-1', '解绑失败,已经解绑过了!');
        }

        $update_ret;
        $mysql = M('Regcode');
        $code = $this->_jsonArr->c;
        $update_ret = $mysql->execute("UPDATE cloud_regcode SET computer_uid = '', isonline = 0 WHERE code = '{$code}'");
        if (!$update_ret) {
            $this->returnJson('106', '解绑失败!');
        } else {
            $this->returnJson('0', '解绑成功!');
        }

    }

    // 1分钟内最多请求一次放到客户端处理, 因为t参数需要对比, 不解析请求数据的话无法获得t
    private function check() {
        $this->beforeHandle();

        // 强制更新检查
        $softret = $this->isSoftwareFrozen();
        if ($this->_jsonArr->v != '' && $this->_jsonArr->v < $softret[0]['version'] && $softret[0]['updatemode'] == '1') {
            $this->offline();
            $_SESSION['lastCheckRet'] = '-2';
            $this->_param['error'] = $_SESSION['lastCheckRet'];
            $this->_param['msg'] = '请更新最新版本' . $softret[0]['version'];
            $this->_param['url'] = $softret[0]['update_url'];
            $this->_param['t'] = $this->_jsonArr->t;
            $this->secretReturn($this->_param);
        }

        // formal正式,trial试用
        if ($_SESSION['checkFormalOrTrial'] == 'formal') {
            $ret = $this->isCodeValid();

            // 机器码空就是刚被解绑
            if ($ret[0]['computer_uid'] == '') {
                $this->offline();
                $this->returnJson('-1', '验证不通过,请重新注册!');
            }

            // token是否改变
            if ($ret[0]['token'] != $this->_jsonArr->k) {
                $this->returnJson('-1', '验证不通过,禁止多开!');
            }

            // 多开时关闭部分窗口会下线,验证通过重新上线,不用判断上线是否成功
            $mysql = M('Regcode');
            $code = $this->_jsonArr->c;
            $update_ret = $mysql->execute("UPDATE cloud_regcode SET isonline = 1 WHERE code = '{$code}'");

            $this->returnJson('0', '验证通过');
        } else {
            $computer_uid = $this->_jsonArr->ci;
            $softid = $softret[0]['id'];

            // 获取使用记录,原则上说不可能取不到因为第一次试用会保存到数据库
            $trialsql = M('Trial');
            $trialret = $trialsql->query("SELECT * FROM cloud_trial WHERE computer_uid = '$computer_uid' AND software_id = '$softid'");
            if (!$trialret) {
                $this->returnJson('-1', '验证不通过!');
            }

            // 时间差
            $cle = time() - strtotime($trialret[0]['last_time']);
            $m = $cle / 60;

            // 如果大于软件最大使用时间
            if ($m > $softret[0]['try_minutes']) {
                $this->returnJson('-1', '验证不通过,试用到期!');
            } else {
                // token是否改变
                if ($trialret[0]['token'] != $this->_jsonArr->k) {
                    $this->returnJson('-1', '验证不通过,禁止多开!');
                } else {
                    $this->returnJson('0', '验证通过');
                }
            }
        }
    }

    private function trial() {
        // 强制更新检查
        $softret = $this->isSoftwareFrozen();
        if ($this->_jsonArr->v != '' && $this->_jsonArr->v < $softret[0]['version'] && $softret[0]['updatemode'] == '1') {
            $_SESSION['lastCheckRet'] = '-2';
            $this->_param['error'] = $_SESSION['lastCheckRet'];
            $this->_param['msg'] = '请更新最新版本' . $softret[0]['version'];
            $this->_param['url'] = $softret[0]['update_url'];
            $this->_param['t'] = $this->_jsonArr->t;
            $this->secretReturn($this->_param);
        }

        $computer_uid = $this->_jsonArr->ci;
        $softid = $this->_jsonArr->si;
        $last_ip = $this->_jsonArr->ip;
        $last_time = date('Y-m-d H:i:s', time());

        $mysql = M('Software');
        $ret = $mysql->query("SELECT * FROM cloud_software WHERE id = $softid");
        // 软件没找到
        if (!$ret) {
            $this->returnJson('-1', '试用失败,软件没找到!');
        }
        $try_minutes = $ret[0]['try_minutes'];
        $try_count = $ret[0]['try_count'];
        if ($try_minutes <= 0 || $try_count <= 0) {
            $this->returnJson('-1', '试用失败,软件不支持试用!');
        }

        $token = substr(md5($this->_jsonArr->c . time()), 0, 5);

        $trialsql = M('Trial');
        $trialret = $trialsql->query("SELECT * FROM cloud_trial WHERE computer_uid = '$computer_uid' AND software_id = '$softid'");
        // 机器码没找到,第一次试用
        if (!$trialret) {
            $update_ret = $trialsql->execute("INSERT INTO cloud_trial (computer_uid, software_id, last_ip, last_time, token) VALUES ('{$computer_uid}', '{$softid}', '{$last_ip}', '{$last_time}', '{$token}')");

            if ($update_ret) {
                $_SESSION['checkFormalOrTrial'] = 'trial';
                $_SESSION['lastCheckRet'] = '0';
                $this->_param['error'] = '0';
                $this->_param['msg'] = '[登录结果]: 试用成功!还可以试用' . ($ret[0]['try_count'] - 1) . '次\n[软件公告]:' . $softret[0]['info'] . '\n[软件版本]:有新版本' .$softret[0]['version']. ',请更新!';
                $this->_param['token'] = $token;
                $this->_param['t'] = $this->_jsonArr->t;
                $this->secretReturn($this->_param);
            }
            exit();
        }

        // 计算还可以试用的次数
        $remainder_count = $ret[0]['try_count'] - $trialret[0]['has_try_count'];
        if ($remainder_count > 0) {
            $has_try_count = $trialret[0]['has_try_count'] + 1;
            $update_ret = $trialsql->execute("UPDATE cloud_trial SET has_try_count = '$has_try_count', last_ip = '$last_ip', last_time = '$last_time', token = '$token' WHERE computer_uid = '$computer_uid' AND software_id = '$softid'");
            if ($update_ret) {
                $_SESSION['checkFormalOrTrial'] = 'trial';
                $_SESSION['lastCheckRet'] = '0';
                $this->_param['error'] = '0';
                $this->_param['msg'] = '[登录结果]: 试用成功!还可以试用' . ($remainder_count - 1) . '次\n[软件公告]:' . $softret[0]['info'] . '\n[软件版本]:有新版本' .$softret[0]['version']. ',请更新!';
                $this->_param['token'] = $token;
                $this->_param['t'] = $this->_jsonArr->t;
                $this->secretReturn($this->_param);
            }
        } else {
            $this->returnJson('-1', '试用失败,试用次数已用完!');
        }

    }

    // 下线
    private function offline() {
        $mysql = M('Regcode');
        $code = $this->_jsonArr->c;
        $mysql->execute("UPDATE cloud_regcode SET isonline = 0 WHERE code = '{$code}'");
    }

    private function isComputerIdValid() {
        if ($this->_jsonArr->ci == '') {
            $this->returnJson('300', '验证不通过,机器码为空!');
        }
    }

    // 软件是否禁用
    private function isSoftwareFrozen() {
        // 软件是否禁用
        $softid = $this->_jsonArr->si;
        $mysql = M('Software');
        $ret = $mysql->query("SELECT * FROM cloud_software WHERE id = $softid");
        // 软件没找到
        if (!$ret) {
            $this->offline();
            $this->returnJson('200', '验证不通过,没有该软件!');
        }
        if ($ret[0]['frozen'] == '1') {
            $this->offline();
            $this->returnJson('201', '验证不通过,软件被禁用!');
        }
        return $ret;
    }

    // 注册码是否可用
    private function isCodeValid() {
        // 注册码是否空
        $code = $this->_jsonArr->c;
        if ($code == '') {
            $this->returnJson('101', '注册码不能为空!');
        }

        $mysql = M('Regcode');
        $ret = $mysql->query("SELECT * FROM cloud_regcode WHERE code = '$code'");
        // 注册码没找到
        if (!$ret) {
            $this->returnJson('102', '注册码不存在!');
        }
        // 注册码过期
        if ($ret[0]['overdue'] == 1) {
            $this->offline();
            $this->returnJson('103', '注册码已过期!');
        }
        if ($ret[0]['expire_time']) {
            if (strtotime(date('Y-m-d H:i:s', time())) - strtotime($ret[0]['expire_time']) > 0) {
                $mysql->execute("UPDATE cloud_regcode SET overdue = 1 WHERE code = '$code'");
                $this->offline();
                $this->returnJson('103', '注册码已过期!');
            }
        }
        // 注册码冻结
        if ($ret[0]['frozen'] == 1) {
            $this->offline();
            $this->returnJson('104', '注册码被冻结!');
        }

        return $ret;
    }

    // 保存上次的error编号并返回json
    private function returnJson($error, $msg) {
        $_SESSION['lastCheckRet'] = $error;
        $this->_param['error'] = $error;
        $this->_param['msg'] = $msg;
        $this->secretReturn($this->_param);
        exit();
    }

    // des加密后返回
    private function secretReturn($data){
        // 客户端请求时的时间戳,返回回去,用于判断是不是伪造的返回结果防破解
        $data['t'] = $this->_jsonArr->t;
        $this->logReturnJson(json_encode($data));

        header('Content-Type:application/json; charset=utf-8');
        $des = \DES::encrypt("#h2@j7!a", json_encode($data));
        $out = base64_encode($des);
        exit($out);
    }

    private function logReturnJson($a) {
        $content = "## 来访时间:" . date('Y-m-d H:i:s') . " IP:" . $_SERVER["REMOTE_ADDR"] . "\n## 返回信息:" . $a . "\n";

        if (isset($_SERVER['HTTP_APPNAME'])) {    // SAE
            sae_set_display_errors(false);
            sae_debug(trim($content));
            sae_set_display_errors(true);
        } else {
            $today = date('Ymd');
            $log_filename = 'file/' . $today . '.log';
            file_put_contents($log_filename, $content, FILE_APPEND);
        }
    }

    // 定期任务 当天没有日志没出现过的注册码 进行踢下线处理
    private function searchIsOnline() {
        $today = date('Ymd');
        $log_filename = 'file/' . $today . '_offline.log';
        if (file_exists($log_filename)) {
            return;
        }
        $mysql = M();
        $ret = $mysql->query("SELECT *FROM cloud_regcode WHERE isonline = 1");

        // 昨天的日志
        $yestoday = date('Ymd');
        $request_log_file = 'file/' . $yestoday . '.log';
        $txt = file_get_contents($request_log_file);

        foreach ($ret as $dict) {
            if (substr_count($txt, $dict['code']) == 0) {
                $code = $dict['code'];
                $mysql->execute("UPDATE cloud_regcode SET isonline = 0 WHERE code = '$code'");
                file_put_contents($log_filename, $code . "\n", FILE_APPEND);
            }
        }

        if (!file_exists($log_filename)) {
            file_put_contents($log_filename, '今日没有需要强制下线的注册码' , FILE_APPEND);
        }
    }
}

================================================
FILE: Application/Home/Controller/BatchoperaController.class.php
================================================
<?php
namespace Home\Controller;
use Common\Controller\BaseController;
use Home\Tool\HJCTool;
use Home\Tool\Secret;

class BatchoperaController extends BaseController {
    public function index(){
        $this->assign('batchopera_selected', 'selected');
        $this->display();

        if (I('codes') == '') return;

        $arr = explode("\n", I('codes'));

        $sql = '';
        foreach($arr as $u){
            $strarr = explode(",",$u);
            foreach($strarr as $newstr){
                $newstr = trim($newstr);
                if ($newstr != '') {
                    $sql = $sql . " OR code = '" . $newstr . "' ";
                }
            }
        }
        $sql = HJCTool::strReplaceOnce($sql, 'OR', '', 1);
        $sql = ' AND (' . $sql . ')';

        $userId = $this->getUserId();
        $limitUserSql = " WHERE user_id = '$userId'";

        $mysql = M('Regcode');
        $updateret;
        if (I('op') == 'unbind') {
            $updateret = $mysql->execute("UPDATE cloud_regcode SET computer_uid = '' " .$limitUserSql. $sql);
        } elseif (I('op') == 'frozen') {
            $updateret = $mysql->execute("UPDATE cloud_regcode SET frozen = 1 " .$limitUserSql. $sql);
        } else if (I('op') == 'del') {
            $updateret = $mysql->execute("DELETE FROM cloud_regcode " .$limitUserSql. $sql);
        }

        if (I('op') != '') {
            if ($updateret) {
                HJCTool::alertToLocation('操作完成', 'batchopera?codes=' . I('codes'));
            } else {
                HJCTool::alertToLocation('操作失败', 'batchopera?codes=' . I('codes'));
            }
        }
    }
}

================================================
FILE: Application/Home/Controller/ChangesoftController.class.php
================================================
<?php
namespace Home\Controller;

use Common\Controller\BaseController;
use Home\Tool\HJCTool;

class ChangesoftController extends BaseController {
    private $_softwareName;

    public function index() {
        $this->assign('managesoft_selected', 'selected');

        // 修改软件
        $softid = I('sid');
        if ($softid != '') {
            $this->assign('buttonTitle', '修改');
            $userId = $this->getUserId();
            $mysql = M('Software');
            $ret = $mysql->query("SELECT * FROM cloud_software WHERE id = $softid AND user_id = '$userId'");
            // 软件没找到
            if (!$ret) {
                HJCTool::alertBack('未找到软件');
            }
            $this->_softwareName = $ret[0]['name'];
            $this->assign('sid', $softid);
            $this->assign('software', $ret[0]['name']);
            $this->assign('try_minutes', $ret[0]['try_minutes']);
            $this->assign('try_count', $ret[0]['try_count']);
            $this->assign('bindmode' . $ret[0]['bindmode'], 'checked');
            $this->assign('unbindmode' . $ret[0]['unbindmode'], 'checked');
            $this->assign('frozen' . $ret[0]['frozen'], 'checked');
            $this->assign('updatemode' . $ret[0]['updatemode'], 'checked');
            $this->assign('version', $ret[0]['version']);
            $this->assign('update_url', $ret[0]['update_url']);
            $this->assign('info', $ret[0]['info']);
        } else {
            $this->assign('buttonTitle', '新建');
            $this->assign('try_minutes', 30);
            $this->assign('try_count', 2);
            $this->assign('bindmode0', 'checked');
            $this->assign('unbindmode0', 'checked');
            $this->assign('frozen0', 'checked');
            $this->assign('updatemode0', 'checked');
            $this->assign('version', 1);
        }
        $this->change();
        $this->display();
    }

    private function change() {
        if (!isset($_GET['submit'])) {
            return;
        }

        if (trim(I('software')) != '') {
            $software = trim(I('software'));
        } else {
            HJCTool::alertBack('软件名不能为空');
        }

        // 判断软件名是否存在
        $user_id = $this->getUserId();
        $mysql = M('Software');
        if (I('sid') == '') { // 新建
            $ret = $mysql->query("SELECT * FROM cloud_software WHERE user_id = '$user_id'");
            if ($ret) {
                foreach ($ret as $dic) {
                    if ($software == $dic['name']) {
                        HJCTool::alertBack('软件名已存在');
                    }
                }
            }
        } else { // 修改
            // 搜索的时候排除当前id的软件名,和其他软件名比较
            $ret = $mysql->query("SELECT * FROM cloud_software WHERE user_id = '$user_id' AND name != '{$this->_softwareName}'");
            if ($ret) {
                foreach ($ret as $dic) {
                    if ($software == $dic['name']) {
                        HJCTool::alertBack('软件名已存在');
                    }
                }
            }
        }

        if (I('try_minutes', '', '/^\d+$/') != '') {
            $try_minutes = I('try_minutes');
        } else {
            HJCTool::alertBack('试用分钟必须大于等于0');
        }
        if (I('try_count', '', '/^\d+$/') != '') {
            $try_count = I('try_count');
        } else {
            HJCTool::alertBack('试用次数必须大于等于0');
        }
        if (I('bindmode', '', '/^\d+$/') != '') {
            if (I('bindmode') > 2) {
                HJCTool::alertBack('请选择一个绑机多开模式');
            }
            $bindmode = I('bindmode');
        } else {
            HJCTool::alertBack('请选择一个绑机多开模式');
        }
        if (I('unbindmode', '', '/^\d+$/') != '') {
            if (I('unbindmode') > 1) {
                HJCTool::alertBack('请选择一个用户解绑模式');
            }
            $unbindmode = I('unbindmode');
        } else {
            HJCTool::alertBack('请选择一个用户解绑模式');
        }
        if (I('frozen', '', '/^\d+$/') != '') {
            if (I('frozen') > 1) {
                HJCTool::alertBack('请选择一个软件状态');
            }
            $frozen = I('frozen');
        } else {
            HJCTool::alertBack('请选择一个软件状态');
        }
        if (I('updatemode', '', '/^\d+$/') != '') {
            if (I('updatemode') > 1) {
                HJCTool::alertBack('请选择一个更新模式');
            }
            $updatemode = I('updatemode');
        } else {
            HJCTool::alertBack('请选择一个更新模式');
        }
        if (I('version', '', '/^\d+$/') != '') {
            $version = I('version');
        } else {
            HJCTool::alertBack('软件版本为非负整数');
        }
        $update_url = I('update_url');
        $info = str_replace(array("\r\n", "\r", "\n"), "", I('info'));
        $create_time = date('Y-m-d H:i:s', time());

        if (I('sid') == '') { // 新建
            $updateret = $mysql->execute("INSERT INTO cloud_software (create_time, user_id, name, try_minutes, try_count, bindmode, unbindmode, version, update_url, updatemode, info, frozen) VALUES ('$create_time', '$user_id', '$software', '$try_minutes', '$try_count', '$bindmode', '$unbindmode', '$version', '$update_url', '$updatemode', '$info', '$frozen')");
            if (!$updateret) {
                HJCTool::alertBack('新建失败');
            } else {
                HJCTool::alertToLocation('新建成功', 'managesoft');
            }
        } else { // 修改
            $sid = I('sid');
            $updateret = $mysql->execute("UPDATE cloud_software SET user_id = '$user_id', name = '$software', try_minutes = '$try_minutes', try_count = '$try_count', bindmode = '$bindmode',unbindmode = '$unbindmode',version = '$version', update_url = '$update_url',updatemode = '$updatemode',info = '$info',frozen ='$frozen' WHERE id = '$sid'");
            if (!$updateret) {
                HJCTool::alertBack('修改失败');
            } else {
                // 这里是为了修改软件名的同时修改注册码表的软件名,但是如果软件名没有改,这句就会返回失败,所以不用管
                $mysql = M('Regcode');
                $mysql->execute("UPDATE cloud_regcode SET software_name = '$software' WHERE software_id = '$sid'");
                HJCTool::alertToLocation('修改成功', 'managesoft');
            }
        }

    }

}

================================================
FILE: Application/Home/Controller/ContactController.class.php
================================================
<?php
namespace Home\Controller;

use Common\Controller\BaseController;
use Home\Tool\HJCTool;

class ContactController extends BaseController {

    public function index() {
        $this->assign('contact_selected', 'selected');
        $this->init();
        $this->display();
    }

    private function init() {
        if (!I('content')) {
            return;
        }

        $userID = $this->getUserId();
        $submitTime = date('Y-m-d H:i:s', time());
        $submitIP = HJCTool::getRealIP();
        $content = I('content');

        $mysql = M();
        $mysql->execute("INSERT INTO cloud_advise SET user_id = '$userID', submit_time = '$submitTime', submit_ip = '$submitIP', content = '$content'");
        HJCTool::alertToLocation('感谢您宝贵的建议!', '/Home/contact');
    }
}

================================================
FILE: Application/Home/Controller/CreatecodeController.class.php
================================================
<?php
namespace Home\Controller;
use Common\Controller\BaseController;
use Home\Tool\HJCTool;
use Home\Tool\Secret;

class CreatecodeController extends BaseController {
    private $_softArray;

    public function index(){
        $this->assign('createcode_selected', 'selected');
        $this->init();
        $this->display();
    }

    private function init() {
        $this->_softArray = $this->getSoftwareList();
        if ($this->_softArray == '') {
            HJCTool::alertBack('您还没有新建软件');
        } else {
            $this->assign('softlist', $this->_softArray);
        }

        if (isset($_GET['produce'])) {
            $this->produceCode();
        }
    }

    private function produceCode() {
        if ($this->isEmpty(I('softname'))) {
            HJCTool::alertBack('请先新建一个软件!');
        }
        if ($this->isEmpty(I('count','','/^[1-9]\d*$/'))) {
            HJCTool::alertBack('生成注册码张数必须大于0');
        }
        if ($this->isEmpty(I('time','','/^[1-9]\d*$/'))) {
            HJCTool::alertBack('使用时间必须大于0');
        }
        $all_minutes;
        $timeStr;
        if (I('time_type') == 'day') {
            $all_minutes = I('time') * 60 * 24;
            $timeStr = I('time') . '天';
        } else {
            $all_minutes = I('time') * 60;
            $timeStr = I('time') . '小时';
        }

        $softId = 0;
        foreach ($this->_softArray as $arr) {
            if ($arr['name'] == I('softname')) {
                $softId = $arr['id'];
                break;
            }
        }
        if ($softId == 0) {
            HJCTool::alertBack('不是有效软件');
        }

        $secret = new Secret();
        $mysql = M('Regcode');
        $codes = array();
        $time = date('Y-m-d H:i:s',time());
        $softname = I('softname');
        $userId = $this->getUserId();
        $mark = I('mark');

        $ret = $mysql->query("SELECT COUNT(*) FROM cloud_regcode WHERE user_id = '$userId' AND beginuse_time IS NULL");
        $unUse = $ret[0]['count(*)'];
        $max = 100;
        if ($unUse + I('count') > $max) {
            HJCTool::alertBack('未使用注册码张数不能超过' . $max . '张,您最多还可以生成' . ($max - $unUse) . '张');
        }

        for ($i = 0; $i<I('count'); $i++) {
            $code = $secret->createRandRegisterCode();
            $soft_ret = $mysql->execute("INSERT INTO cloud_regcode (code, user_id, software_id, all_minutes, produce_time, time_str, software_name, mark) VALUES ('{$code}', '{$userId}', '{$softId}', {$all_minutes}, '{$time}', '{$timeStr}', '{$softname}', '$mark')
");
            if (!$soft_ret) {
                HJCTool::alertBack('请刷新页面后重试');
            }

            if (I('creat_type') == 0) { // 注册码
                array_push($codes, $code);
            } else { // 注册码+推荐码
                $ret = $mysql->query("SELECT *FROM cloud_regcode WHERE code='$code'");
                array_push($codes, '注册码:' . $code . ' 推荐码:' . ($ret[0]['id'] + 10000));
            }
        }

        $this->assign('code_list', $codes);
    }


}

================================================
FILE: Application/Home/Controller/ForgetController.class.php
================================================
<?php
namespace Home\Controller;

use Common\Controller\BaseController;
use hdphp\page\Page;
use Home\Tool\HJCTool;

require getcwd() . '/Application/Home/Common/Email/email.class.php';

class ForgetController extends BaseController {
    public function index() {
        $this->init();
        $this->display();
    }

    private function init() {
        if (!isset($_POST['forget'])) {
            return;
        }
        if (I('post.valid') == '') {
            // 这里不用alertBack因为验证码需要刷新页面
            HJCTool::alertToLocation('请输入验证码', '/Home/forget');
            return;
        }
        if (!$this->check_verify(I('post.valid'))) {
            HJCTool::alertToLocation('验证码错误', '/Home/forget');
        }
        if ($this->isEmpty(I('post.username', '', '/^[a-z0-9A-Z]{6,16}$/'))) {
            HJCTool::alertToLocation('账号格式错误: 请输入6-16位英文字母或数字', '/Home/forget');
        }
        if (I('post.email', '', FILTER_VALIDATE_EMAIL) == '') {
            HJCTool::alertToLocation('邮箱格式错误', '/Home/forget');
        }
        // 先看邮箱和用户名是不是对应
        $username = I('post.username');
        $email = I('post.email');
        $mysql = M();
        $ret = $mysql->query("SELECT * FROM cloud_user WHERE username = '$username' AND email = '$email'");
        if (!$ret) {
            HJCTool::alertToLocation('用户名或邮箱不正确', '/Home/forget');
        }
        // 如果有时间就判断是否小于xx时间 小于就返回
        $time = date('Y-m-d H:i:s', time());
        if ($ret[0]['forget_time']) {
            $second = strtotime($time) - strtotime($ret[0]['forget_time']);
            if ($second < 30 * 60) {
                HJCTool::alertToLocation('30分钟内请勿重新提交', '/Home/forget');
            }
        }

        // 生成随机密码 修改数据库 并发送邮件
        $newPwd = $this->rand();
        $secretPwd = HJCTool::secret($newPwd);
        $updateret = $mysql->execute("UPDATE cloud_user SET forget_time = '$time', password = '$secretPwd' WHERE username = '$username'");
        if ($updateret) {
            $this->sendEmail($username, $newPwd, $email);
        } else {
            HJCTool::alertToLocation('未知错误', '/Home/forget');
        }

    }

    //获取随机数
    private function rand( $len = 6 ) {
        $data = 'abcdefghijklmnopqrstuvwxyz0123456789';
        $str  = '';
        while ( strlen( $str ) < $len ) {
            $str .= substr( $data, mt_rand( 0, strlen( $data ) - 1 ), 1 );
        }
        return $str;
    }

    private function sendEmail($username, $password, $smtpemailto) {
        /**
         * 注:本邮件类都是经过我测试成功了的,如果大家发送邮件的时候遇到了失败的问题,请从以下几点排查:
         * 1. 用户名和密码是否正确;
         * 2. 检查邮箱设置是否启用了smtp服务;
         * 3. 是否是php环境的问题导致;
         * 4. 将26行的$smtp->debug = false改为true,可以显示错误信息,然后可以复制报错信息到网上搜一下错误的原因;
         * 5. 如果还是不能解决,可以访问:http://www.daixiaorui.com/read/16.html#viewpl
         *    下面的评论中,可能有你要找的答案。
         */

        //******************** 配置信息 ********************************
        $smtpserver = "自己弄个吧";//SMTP服务器
        $smtpserverport = 25;//SMTP服务器端口
        $smtpusermail = "自己弄个吧";//SMTP服务器的用户邮箱
        $smtpuser = "自己弄个吧";//SMTP服务器的用户帐号
        $smtppass = "自己弄个吧";//SMTP服务器的用户密码
        $mailtitle = "Sign++密码找回";//邮件主题
        $mailcontent = $username . ",您好!您的新密码为: " . $password . "。请尽快登录并修改密码!";//邮件内容
        $mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
        //************************ 配置信息 ****************************
        $smtp = new \smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
        $smtp->debug = false;//是否显示发送的调试信息
        $state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
        if($state == ''){
            HJCTool::alertToLocation('未知错误', '/Home/forget');
        } else {
            HJCTool::alertToLocation('邮件已发送,请及时查收邮件', '/Home/login');
        }
    }
}

================================================
FILE: Application/Home/Controller/IndexController.class.php
================================================
<?php
namespace Home\Controller;
use Common\Controller\BaseController;
use Home\Tool\HJCTool;
use Home\Tool\Secret;

class IndexController extends BaseController {
    private $_softwares;

    public function index(){
        $this->assign('home_selected', 'selected');
        $this->init();
        $this->display();
    }

    // 退出按钮会调用
    public function logout() {
        $this->signout();
    }

    private function init() {
        $mysql_user = M('User');
        $user_ret = $mysql_user->query("SELECT * FROM cloud_user WHERE username = '" . $_SESSION['user'] . "'");
        if (!$user_ret) {
            $this->signout();
        }

        // 本次登录IP 等信息
        $this->assign('currentlogin_ip', $user_ret[0]['currentlogin_ip']);
        $this->assign('lastlogin_time', $user_ret[0]['lastlogin_time']);
        $this->assign('lastlogin_ip', $user_ret[0]['lastlogin_ip']);

        $this->loadNotice();
        $this->querySoftware();
    }

    private function querySoftware() {
        $this->_softwares = $this->getSoftwareList();
        if ($this->_softwares == '') {
            return;
        }
        $this->assign('softlist', $this->_softwares);
        $this->queryCode();
    }

    // 公告
    private function loadNotice() {
        $mysql = M('Notice');
        $ret = $mysql->query("SELECT * FROM cloud_notice");
        $sort = array(
            'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
            'field'     => 'id',       //排序字段
        );
        $arrSort = array();
        foreach($ret AS $uniqid => $row){
            foreach($row AS $key=>$value){
                $arrSort[$key][$uniqid] = $value;
            }
        }
        if($sort['direction']){
            array_multisort($arrSort[$sort['field']], constant($sort['direction']), $ret);
        }
        if ($ret) {
            $this->assign('notices', $ret);
        }
    }

    private function queryCode() {
        $userId = $this->getUserId();
        $mysql = M('Regcode');

        if (I('softindex', '', '/^\d+$/') != '' && I('softindex') != '0') {
            $softid = $this->_softwares[I('softindex') - 1]['id'];
            $sqlTail = " AND software_id = '$softid'";
        }

        $unuse_ret = $mysql->query("SELECT COUNT(*) FROM cloud_regcode WHERE user_id = '$userId' AND beginuse_time IS NULL " . $sqlTail);
        $use_ret = $mysql->query("SELECT COUNT(*) FROM cloud_regcode WHERE user_id = '$userId' AND beginuse_time IS NOT NULL AND overdue = 0" . $sqlTail);
        $online_ret = $mysql->query("SELECT COUNT(*) FROM cloud_regcode WHERE user_id = '$userId' AND isonline = 1" . $sqlTail);
        $frozen_ret = $mysql->query("SELECT COUNT(*) FROM cloud_regcode WHERE user_id = '$userId' AND frozen = 1" . $sqlTail);
        $this->assign('unuse_count', $unuse_ret[0]['count(*)']);
        $this->assign('use_count', $use_ret[0]['count(*)']);
        $this->assign('online_count', $online_ret[0]['count(*)']);
        $this->assign('frozen_count', $frozen_ret[0]['count(*)']);

    }

}

================================================
FILE: Application/Home/Controller/LoginController.class.php
================================================
<?php
namespace Home\Controller;

use Common\Controller\BaseController;
use hdphp\page\Page;
use Home\Tool\HJCTool;

class LoginController extends BaseController {
    public function index() {
        $this->init();
        $this->display();
    }

    private function init() {
        if (!isset($_POST['login'])) {
            return;
        }
        if (I('post.valid') == '') {
            // 这里不用alertBack因为需要刷新页面
            HJCTool::alertToLocation('请输入验证码', '/Home/login');
            return;
        }
        if (!$this->check_verify(I('post.valid'))) {
            HJCTool::alertToLocation('验证码错误', '/Home/login');
        }
        if ($this->isEmpty(I('post.username', '', '/^[a-z0-9A-Z]{6,16}$/'))) {
            HJCTool::alertToLocation('账号格式错误: 请输入6-16位英文字母或数字', '/Home/login');
        }
        if ($this->isEmpty(I('post.password', '', '/^[a-z0-9A-Z]{6,16}$/'))) {
            HJCTool::alertToLocation('密码格式错误: 请输入6-16位英文字母或数字', '/Home/login');
        }
        $username = I('post.username');
        $password = HJCTool::secret(I('post.password'));

        $mysql = M('user');
        $user_ret = $mysql->query("SELECT * FROM cloud_user WHERE username='" . $username . "'");
        if (!$user_ret) {
            HJCTool::alertBack('用户名不存在');
        } else {
            if ($user_ret[0]['password'] != $password) {
                HJCTool::alertBack('密码不正确');
            }
        }

        $id = $user_ret[0]['id'];
        $lastlogin_time = $user_ret[0]['currentlogin_time'] ? : date('Y-m-d H:i:s', time());
        $lastlogin_ip = $user_ret[0]['currentlogin_ip'];
        $currentlogin_ip = HJCTool::getRealIP();
        $currentlogin_time = date('Y-m-d H:i:s', time());
        $login_count = $user_ret[0]['login_count'] + 1;

        $ret = $mysql->execute("UPDATE cloud_user SET lastlogin_time = '$lastlogin_time', lastlogin_ip = '$lastlogin_ip', currentlogin_time = '$currentlogin_time', currentlogin_ip = '$currentlogin_ip', login_count = '$login_count' WHERE id = '$id'");
        if ($ret) {
            $_SESSION['user'] = $username;
            $_SESSION['last_logn_time'] = time();
            HJCTool::alertToLocation(null, '/Home');
        } else {
            HJCTool::alertBack('数据库异常');
        }
    }

}

================================================
FILE: Application/Home/Controller/ManagecodeController.class.php
================================================
<?php
namespace Home\Controller;

use Common\Controller\BaseController;
use Home\Tool\HJCTool;
use Home\Tool\Secret;

class ManagecodeController extends BaseController {
    private $finalSql;

    public function index() {
        $this->assign('managecode_selected', 'selected');
        // 把当前页数传到tpl,在请求的时候可以带过来,以便删除商品后刷新在当前页
        $this->assign('querystr', $_SERVER[REDIRECT_QUERY_STRING]);
        $this->init();
        $this->display();
    }

    public function codedetail() {
        $this->assign('managecode_selected', 'selected');
        $this->codedetailHandle();
    }

    private function codedetailHandle(){
        if (I('code') == '') return;

        $code = I('code');
        $userId = $this->getUserId();
        $mysql = M('Regcode');
        $ret = $mysql->query("SELECT * FROM cloud_regcode WHERE code = '$code' AND user_id = '$userId'");
        // 注册码没找到
        if (!$ret) {
            return;
        }

        $this->assign('software_name', $ret[0]['software_name']);
        $this->assign('time_str', $ret[0]['time_str']);
        $this->assign('produce_time', $ret[0]['produce_time']);
        $this->assign('beginuse_time', $ret[0]['beginuse_time']);
        $this->assign('expire_time', $ret[0]['expire_time']);
        $this->assign('last_time', $ret[0]['last_time']);
        $this->assign('last_ip', $ret[0]['last_ip']);
        $this->assign('use_count', $ret[0]['use_count']);
        $this->assign('online', $ret[0]['isonline']==0?'不在线':'在线');
        $this->assign('bindtype', $ret[0]['computer_uid'] =='' ? '未绑定任何电脑':'已绑定电脑');
        $this->assign('frozen', $ret[0]['frozen']);
        $this->assign('mark', $ret[0]['mark']);

        $this->display();

        if (I('code') != '') {
            if (isset($_GET['unbind'])) {
                $this->unbind();
            }
            if (isset($_GET['change'])) {
                $this->change();
            }
        }
    }

    private function unbind() {
        $code = I('code');
        $mysql = M('Regcode');
        $mysql->execute("UPDATE cloud_regcode SET computer_uid = '', isonline = 0 WHERE code = '{$code}' AND computer_uid != ''");
        HJCTool::alertToLocation('解绑成功', 'codedetail?code=' . $code);
    }

    private function change() {
        $code = I('code');
        $frozen = I('frozen');
        $mark = I('mark');
        $mysql = M('Regcode');
        $updateret = $mysql->execute("UPDATE cloud_regcode SET frozen = '$frozen', mark = '$mark' WHERE code = '{$code}'");
        if ($updateret) {
            HJCTool::alertToLocation('修改成功', 'codedetail?code=' . $code);
        } else {
            HJCTool::alertToLocation('修改失败', 'codedetail?code=' . $code);
        }
    }

    private function init() {
        $softwares = $this->getSoftwareList();
        if ($softwares == '') {
            HJCTool::alertBack('您还没有新建软件');
        } else {
            $this->assign('softlist', $softwares);
        }

        // 删除注册码
        if (I('delcode') != '') {
            $this->deleteCode();
        }

        // 导出txt
        if (I('op') == 'export1' || I('op') == 'export2') {
            $this->exportTxt(I('op'));
        }

        if (!isset($_GET['search'])) {
            // 默认搜索全部
            parent::showTableAndPage('regcode');
            return;
        }
        $this->searchHandle();
    }

    // 导出txt文本
    private function exportTxt($op) {
        $today = date('Ymd');
        $filename='Signxx_' . $today . '.txt';//要导出的文件的文件名需要加上文件后缀

        $mysql = M();
        if ($this->finalSql) {
            $ret = $mysql->query($this->finalSql);
        } else {
            $userId = $this->getUserId();
            $ret = $mysql->query("SELECT *FROM cloud_regcode WHERE user_id = '$userId'");
        }
        foreach ($ret as $json) {
            if ($op == 'export1') { //注册码和推荐码
                $chars = $chars . '注册码:' . $json['code'] . ' 推荐码:' . ($json['id'] + 10000) . "\r\n";
            } else { // 注册码
                $chars = $chars . $json['code'] . "\r\n";
            }
        }

        header('Content-Type: text/x-sql');
        header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
        header('Content-Disposition: attachment; filename="' .$filename. '"');
        $is_ie = 'IE';
        if ($is_ie == 'IE') {
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Pragma: public');
        } else {
            header('Pragma: no-cache');
            header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
        }
        echo $chars;
        exit();
    }

    private function deleteCode(){
        $code = I('delcode');
        $userId = $this->getUserId();
        $mysql = M('Regcode');
        $updateret = $mysql->execute("DELETE FROM cloud_regcode WHERE code = '$code' AND user_id = '$userId'");
        if ($updateret) {
            if (I('page') == '') {
                HJCTool::alertToLocation('删除成功', '/Home/managecode');
            } else {
                HJCTool::alertToLocation('删除成功', '/Home/managecode?page=' . I('page'));
            }
        } else {
            HJCTool::alertBack('删除失败');
        }
    }

    private function searchHandle() {
        // 注册码sql
        $codeSql = I('regcode') == '' ? '' : " AND code = '" . I('regcode') . "'";

        // 时间范围sql
        $timerangetype;
        switch (I('timerangetype')) {
            case 1;
                $timerangetype = 'expire_time';
                break;
            case 2;
                $timerangetype = 'produce_time';
                break;
            case 3;
                $timerangetype = 'beginuse_time';
                break;
            case 4;
                $timerangetype = 'last_time';
                break;
        }
        $timerangeSql = '';
        if (!$this->isEmpty(I('timerangefrom')) && !$this->isEmpty(I('timerangeto'))) {
            $timerangeSql = " AND " . $timerangetype . " BETWEEN '" . I('timerangefrom') . "' AND '" . I('timerangeto') . "'";
        } elseif (!$this->isEmpty(I('timerangefrom')) && $this->isEmpty(I('timerangeto'))) {
            $timerangeSql = " AND " . $timerangetype . " > '" . I('timerangefrom') . "'";
        } elseif ($this->isEmpty(I('timerangefrom')) && !$this->isEmpty(I('timerangeto'))) {
            $timerangeSql = " AND " . $timerangetype . " < '" . I('timerangeto') . "'";
        }

        // 软件名sql
        $softwareSql = I('softname') == '' ? '' : " AND software_name = '" . I('softname') . "'";

        // 时长sql
        $timeStr = I('time_type') == 'day' ? I('time') . '天' : I('time') . '小时';
        $timeSql = I('time') == '' ? '' : " AND time_str = '" . $timeStr . "'";

        // 是否在线sql, 全勾选或不勾都是全部搜索
        $onlineSql = '';
        if ($this->isEmpty(I('online_yes')) && !$this->isEmpty(I('online_no'))) {
            $onlineSql = " AND isonline = 0";
        } elseif (!$this->isEmpty(I('online_yes')) && $this->isEmpty(I('online_no'))) {
            $onlineSql = " AND isonline = 1";
        }

        // 是否过期sql
        $expireSql = '';
        if ($this->isEmpty(I('expire_yes')) && !$this->isEmpty(I('expire_no'))) {
            $expireSql = " AND overdue = 0";
        } elseif (!$this->isEmpty(I('expire_yes')) && $this->isEmpty(I('expire_no'))) {
            $expireSql = " AND overdue = 1";
        }

        // 是否使用sql
        $inuseSql = '';
        if ($this->isEmpty(I('inuse_yes')) && !$this->isEmpty(I('inuse_no'))) {
            $inuseSql = " AND beginuse_time IS NULL";
        } elseif (!$this->isEmpty(I('inuse_yes')) && $this->isEmpty(I('inuse_no'))) {
            $inuseSql = " AND beginuse_time IS NOT NULL";
        }

        $allSql = $codeSql . $timerangeSql . $softwareSql . $timeSql . $onlineSql . $expireSql . $inuseSql;
        if (strlen($allSql) > 0) {
            $userId = $this->getUserId();
            $this->finalSql = "SELECT * FROM cloud_regcode  WHERE user_id = '$userId' AND " . $allSql;
            $this->finalSql = HJCTool::strReplaceOnce($this->finalSql, 'AND', '', 1);
            parent::showTableAndPage('regcode', $this->finalSql);
        } else {
            // 没有搜索条件,搜索全部
            parent::showTableAndPage('regcode');
        }

    }

}

================================================
FILE: Application/Home/Controller/ManagesoftController.class.php
================================================
<?php
namespace Home\Controller;
use Common\Controller\BaseController;
use Home\Tool\HJCTool;

class ManagesoftController extends BaseController {

    public function index(){
        $this->assign('managesoft_selected', 'selected');
        // 把当前页数传到tpl,在请求的时候可以带过来,以便删除商品后刷新在当前页
        $this->assign('querystr', $this->_lastQueryStr);

        parent::showTableAndPage('software');
        $this->deleteSoft();
        $this->display();

    }

    private function deleteSoft(){
        if (I('delsid') == '') return;

        $sid = I('delsid');
        $userId = $this->getUserId();
        $mysql = M('Software');
        $updateret = $mysql->execute("DELETE FROM cloud_software WHERE id = '$sid' AND user_id = '$userId'");
        if ($updateret) {
            // 删除对应的注册码
            $mysql = M('Regcode');
            $updateret = $mysql->execute("DELETE FROM cloud_regcode WHERE software_id = '$sid' AND user_id = '$userId'");
            // 不去判断有没有删除成功了,没有注册码会返回flase
            if (I('page') == '') {
                HJCTool::alertToLocation('删除成功', 'managesoft');
            } else {
                HJCTool::alertToLocation('删除成功', 'managesoft?page=' . I('page'));
            }
        } else {
            HJCTool::alertBack('删除失败');
        }
    }
}

================================================
FILE: Application/Home/Controller/ModifypasswordController.class.php
================================================
<?php
namespace Home\Controller;
use Common\Controller\BaseController;
use Home\Tool\HJCTool;

class ModifyPasswordController extends BaseController {
    private $_softwares;

    public function index() {
        $this->init();
        $this->display();
    }

    private function init() {
        if (I('oldpwd') == '' || I('newpwd') == '') {
            return;
        }
        if (I('newpwd', '', '/^[a-z0-9A-Z]{6,16}$/') == '') {
            HJCTool::alertBack('密码格式错误: 请输入6-16位英文字母或数字');
        }
        if (I('oldpwd') == I('newpwd')) {
            HJCTool::alertBack('新密码不可和旧密码相同');
        }

        $oldpwd = HJCTool::secret(I('oldpwd'));
        $newpwd = HJCTool::secret(I('newpwd'));
        $userId = $this->getUserId();
        $mysql = M();
        $ret = $mysql->query("SELECT * FROM cloud_user WHERE id = '$userId' AND password = '$oldpwd'");
        if ($ret) {
            $updateret = $mysql->execute("UPDATE cloud_user SET password = '$newpwd' WHERE id = '$userId'");
            if ($updateret) {
                // 修改成功退出登录
                HJCTool::alertToLocation('修改成功,请重新登录!', '/Home/?a=logout');
            } else {
                HJCTool::alertBack('修改失败!');
            }
        } else {
            HJCTool::alertBack('密码不正确');
        }
    }
}

================================================
FILE: Application/Home/Controller/NoticeController.class.php
================================================
<?php
namespace Home\Controller;
use Common\Controller\BaseController;
use Home\Tool\HJCTool;
use Home\Tool\Secret;

class NoticeController extends BaseController {

    public function index(){
        $this->assign('home_selected', 'selected');
        $this->init();
        $this->display();
    }

    private function init() {
        if (I('nid') != '') {
            $id = I('nid');
            $mysql = M('Notice');
            $ret = $mysql->query("SELECT * FROM cloud_notice WHERE id = '$id'");
            if ($ret) {
                $this->assign('title', $ret[0]['title']);
                // 回车替换
                $content = str_replace('##', '<br>', $ret[0]['content']);
                $this->assign('content', $content);
            }

        }
    }

}

================================================
FILE: Application/Home/Controller/RecommendController.class.php
================================================
<?php
namespace Home\Controller;
use Common\Controller\BaseController;
use Home\Tool\HJCTool;

class RecommendController extends BaseController {
    public function index() {
        $this->assign('recommend_selected', 'selected');
        $this->init();
        $this->display();
    }

    private function init() {
        $userId = $this->getUserId();
        // 读取规则
        $mysql = M();
        $ret = $mysql->query("SELECT *FROM cloud_recommenderrule WHERE user_id = $userId");
        $this->assign('recommenderRules', $ret);
        $ret = $mysql->query("SELECT *FROM cloud_recommendedrule WHERE user_id = $userId");
        $this->assign('recommendedRules', $ret);

        if (I('op') == 'save') {
            $this->saveRule();
        }
    }

    private function saveRule() {
        $userId = $this->getUserId();

        // 推荐人规则
        $recommenderRules = I('recommenderRule');
        if (sizeof($recommenderRules) > 0) {
            $mysql = M();
            // 先删除用户下的全部规则,再插入新的
            $mysql->execute("DELETE FROM cloud_recommenderrule WHERE user_id = '$userId'");
            foreach ($recommenderRules as $rule) {
                $originDay = $rule['originDay'];
                $giveDay = $rule['giveDay'];
                if (preg_match ("/^\d+$/", $originDay) && preg_match ("/^\d+$/", $giveDay)) {
                    $mysql->exec
Download .txt
gitextract_5gj8aafz/

├── .htaccess
├── Application/
│   ├── Common/
│   │   ├── Conf/
│   │   │   ├── config.php
│   │   │   └── index.html
│   │   ├── Controller/
│   │   │   └── BaseController.class.php
│   │   └── index.html
│   ├── Home/
│   │   ├── Common/
│   │   │   ├── Des/
│   │   │   │   └── DES.php
│   │   │   ├── Email/
│   │   │   │   └── email.class.php
│   │   │   ├── Rsa/
│   │   │   │   ├── BigInteger.php
│   │   │   │   └── rsa.php
│   │   │   └── index.html
│   │   ├── Conf/
│   │   │   ├── config.php
│   │   │   └── index.html
│   │   ├── Controller/
│   │   │   ├── AuthController.class.php
│   │   │   ├── BatchoperaController.class.php
│   │   │   ├── ChangesoftController.class.php
│   │   │   ├── ContactController.class.php
│   │   │   ├── CreatecodeController.class.php
│   │   │   ├── ForgetController.class.php
│   │   │   ├── IndexController.class.php
│   │   │   ├── LoginController.class.php
│   │   │   ├── ManagecodeController.class.php
│   │   │   ├── ManagesoftController.class.php
│   │   │   ├── ModifypasswordController.class.php
│   │   │   ├── NoticeController.class.php
│   │   │   ├── RecommendController.class.php
│   │   │   ├── RegController.class.php
│   │   │   ├── SupportController.class.php
│   │   │   └── index.html
│   │   ├── Model/
│   │   │   └── index.html
│   │   ├── Tool/
│   │   │   ├── HJCTool.class.php
│   │   │   └── Secret.class.php
│   │   ├── View/
│   │   │   ├── 20170117.log
│   │   │   ├── 20170117_offline.log
│   │   │   ├── Batchopera/
│   │   │   │   └── index.html
│   │   │   ├── Changesoft/
│   │   │   │   └── index.html
│   │   │   ├── Common/
│   │   │   │   ├── Navigation.html
│   │   │   │   └── Sidebar.html
│   │   │   ├── Contact/
│   │   │   │   └── index.html
│   │   │   ├── Createcode/
│   │   │   │   └── index.html
│   │   │   ├── Forget/
│   │   │   │   └── index.html
│   │   │   ├── Index/
│   │   │   │   └── index.html
│   │   │   ├── Login/
│   │   │   │   └── index.html
│   │   │   ├── Managecode/
│   │   │   │   ├── codedetail.html
│   │   │   │   └── index.html
│   │   │   ├── Managesoft/
│   │   │   │   └── index.html
│   │   │   ├── Modifypassword/
│   │   │   │   └── index.html
│   │   │   ├── Notice/
│   │   │   │   └── index.html
│   │   │   ├── Recommend/
│   │   │   │   └── index.html
│   │   │   ├── Reg/
│   │   │   │   └── index.html
│   │   │   ├── Support/
│   │   │   │   └── index.html
│   │   │   └── index.html
│   │   └── index.html
│   ├── Index/
│   │   ├── Common/
│   │   │   └── index.html
│   │   ├── Conf/
│   │   │   ├── config.php
│   │   │   └── index.html
│   │   ├── Controller/
│   │   │   ├── IndexController.class.php
│   │   │   ├── IntroController.class.php
│   │   │   ├── SdkController.class.php
│   │   │   └── index.html
│   │   ├── Model/
│   │   │   └── index.html
│   │   ├── View/
│   │   │   ├── Common/
│   │   │   │   └── bottom.html
│   │   │   ├── Index/
│   │   │   │   └── index.html
│   │   │   ├── Intro/
│   │   │   │   └── index.html
│   │   │   └── Sdk/
│   │   │       ├── 20161213.log
│   │   │       ├── index.html
│   │   │       └── phpwind/
│   │   │           ├── Application/
│   │   │           │   ├── Common/
│   │   │           │   │   ├── Conf/
│   │   │           │   │   │   ├── config.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Controller/
│   │   │           │   │   │   └── BaseController.class.php
│   │   │           │   │   └── index.html
│   │   │           │   ├── Home/
│   │   │           │   │   ├── Common/
│   │   │           │   │   │   ├── Des/
│   │   │           │   │   │   │   └── DES.php
│   │   │           │   │   │   ├── Email/
│   │   │           │   │   │   │   └── email.class.php
│   │   │           │   │   │   ├── Rsa/
│   │   │           │   │   │   │   ├── BigInteger.php
│   │   │           │   │   │   │   └── rsa.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Conf/
│   │   │           │   │   │   ├── config.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Controller/
│   │   │           │   │   │   ├── AuthController.class.php
│   │   │           │   │   │   ├── BatchoperaController.class.php
│   │   │           │   │   │   ├── ChangesoftController.class.php
│   │   │           │   │   │   ├── ContactController.class.php
│   │   │           │   │   │   ├── CreatecodeController.class.php
│   │   │           │   │   │   ├── ForgetController.class.php
│   │   │           │   │   │   ├── IndexController.class.php
│   │   │           │   │   │   ├── LoginController.class.php
│   │   │           │   │   │   ├── ManagecodeController.class.php
│   │   │           │   │   │   ├── ManagesoftController.class.php
│   │   │           │   │   │   ├── ModifypasswordController.class.php
│   │   │           │   │   │   ├── NoticeController.class.php
│   │   │           │   │   │   ├── RecommendController.class.php
│   │   │           │   │   │   ├── RegController.class.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Model/
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Tool/
│   │   │           │   │   │   ├── HJCTool.class.php
│   │   │           │   │   │   └── Secret.class.php
│   │   │           │   │   ├── View/
│   │   │           │   │   │   ├── Batchopera/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Changesoft/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Common/
│   │   │           │   │   │   │   ├── Navigation.html
│   │   │           │   │   │   │   └── Sidebar.html
│   │   │           │   │   │   ├── Contact/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Createcode/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Forget/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Index/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Login/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Managecode/
│   │   │           │   │   │   │   ├── codedetail.html
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Managesoft/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Modifypassword/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Notice/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Recommend/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Reg/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   └── index.html
│   │   │           │   │   └── index.html
│   │   │           │   ├── Index/
│   │   │           │   │   ├── Common/
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Conf/
│   │   │           │   │   │   ├── config.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Controller/
│   │   │           │   │   │   ├── IndexController.class.php
│   │   │           │   │   │   ├── IntroController.class.php
│   │   │           │   │   │   ├── SdkController.class.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Model/
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── View/
│   │   │           │   │   │   ├── Common/
│   │   │           │   │   │   │   └── bottom.html
│   │   │           │   │   │   ├── Index/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   ├── Intro/
│   │   │           │   │   │   │   └── index.html
│   │   │           │   │   │   └── Sdk/
│   │   │           │   │   │       └── index.html
│   │   │           │   │   └── index.html
│   │   │           │   ├── Runtime/
│   │   │           │   │   ├── Cache/
│   │   │           │   │   │   ├── Home/
│   │   │           │   │   │   │   ├── 06ef0777486b95c53697451727fb2559.php
│   │   │           │   │   │   │   ├── 16012e40a7f6b510e9943e72b2944ba3.php
│   │   │           │   │   │   │   ├── 2a94b8bda04ff446dcedd42276fc99ee.php
│   │   │           │   │   │   │   ├── 37463860a5957117a109995a25189f7b.php
│   │   │           │   │   │   │   ├── 3d6919c87dcf7f6dc5dd93550a60805c.php
│   │   │           │   │   │   │   ├── 51be2cf80887e4b3f7c7b5f2580b7741.php
│   │   │           │   │   │   │   ├── 5a2799c2daf86e72afb6e10b79abf938.php
│   │   │           │   │   │   │   ├── 5b6adcb62ad2b5dfc2abc2cd5e11dc99.php
│   │   │           │   │   │   │   ├── 7fb85fe909f9e7c2807e96ab6513ce43.php
│   │   │           │   │   │   │   ├── 93e4a3a9c66f040f231c73f2286359f2.php
│   │   │           │   │   │   │   ├── 9d0babcb361c76b4b54c521c429b1099.php
│   │   │           │   │   │   │   ├── a04edf75bfbc138def13a449e9662905.php
│   │   │           │   │   │   │   ├── d8343976f86a51d40bd311b0f544aaf0.php
│   │   │           │   │   │   │   └── f732a99cc83d472785d17a30d8704609.php
│   │   │           │   │   │   └── Index/
│   │   │           │   │   │       ├── 336eda2ba27f284d77868f4fbe143861.php
│   │   │           │   │   │       ├── 5f343310d4a83e1c2f6d4e5a6181e90a.php
│   │   │           │   │   │       └── 6e2d0af3fe39b09386af2f6295df327a.php
│   │   │           │   │   ├── Data/
│   │   │           │   │   │   ├── _fields/
│   │   │           │   │   │   │   ├── cloud.cloud_notice.php
│   │   │           │   │   │   │   ├── cloud.cloud_regcode.php
│   │   │           │   │   │   │   ├── cloud.cloud_software.php
│   │   │           │   │   │   │   ├── cloud.cloud_trial.php
│   │   │           │   │   │   │   ├── cloud.cloud_user.php
│   │   │           │   │   │   │   └── cms.cms_manage.php
│   │   │           │   │   │   └── index.html
│   │   │           │   │   ├── Logs/
│   │   │           │   │   │   ├── Common/
│   │   │           │   │   │   │   └── 16_11_30.log
│   │   │           │   │   │   ├── Home/
│   │   │           │   │   │   │   ├── 16_09_29.log
│   │   │           │   │   │   │   ├── 16_09_30.log
│   │   │           │   │   │   │   ├── 16_10_01.log
│   │   │           │   │   │   │   ├── 16_10_02.log
│   │   │           │   │   │   │   ├── 16_10_09.log
│   │   │           │   │   │   │   ├── 16_10_13.log
│   │   │           │   │   │   │   ├── 16_10_18.log
│   │   │           │   │   │   │   ├── 16_10_25.log
│   │   │           │   │   │   │   ├── 16_11_08.log
│   │   │           │   │   │   │   ├── 16_11_13.log
│   │   │           │   │   │   │   ├── 16_11_17.log
│   │   │           │   │   │   │   ├── 16_11_20.log
│   │   │           │   │   │   │   ├── 16_11_28.log
│   │   │           │   │   │   │   ├── 16_12_01.log
│   │   │           │   │   │   │   ├── 16_12_02.log
│   │   │           │   │   │   │   ├── 16_12_06.log
│   │   │           │   │   │   │   └── 16_12_12.log
│   │   │           │   │   │   └── Index/
│   │   │           │   │   │       ├── 16_09_29.log
│   │   │           │   │   │       ├── 16_09_30.log
│   │   │           │   │   │       ├── 16_10_01.log
│   │   │           │   │   │       ├── 16_10_02.log
│   │   │           │   │   │       ├── 16_10_03.log
│   │   │           │   │   │       ├── 16_10_04.log
│   │   │           │   │   │       ├── 16_10_05.log
│   │   │           │   │   │       ├── 16_10_06.log
│   │   │           │   │   │       ├── 16_10_07.log
│   │   │           │   │   │       ├── 16_10_08.log
│   │   │           │   │   │       ├── 16_10_09.log
│   │   │           │   │   │       ├── 16_10_10.log
│   │   │           │   │   │       ├── 16_10_11.log
│   │   │           │   │   │       ├── 16_10_12.log
│   │   │           │   │   │       ├── 16_10_13.log
│   │   │           │   │   │       ├── 16_10_14.log
│   │   │           │   │   │       ├── 16_10_15.log
│   │   │           │   │   │       ├── 16_10_16.log
│   │   │           │   │   │       ├── 16_10_17.log
│   │   │           │   │   │       ├── 16_10_18.log
│   │   │           │   │   │       ├── 16_10_19.log
│   │   │           │   │   │       ├── 16_10_20.log
│   │   │           │   │   │       ├── 16_10_21.log
│   │   │           │   │   │       ├── 16_10_22.log
│   │   │           │   │   │       ├── 16_10_23.log
│   │   │           │   │   │       ├── 16_10_24.log
│   │   │           │   │   │       ├── 16_10_25.log
│   │   │           │   │   │       ├── 16_10_26.log
│   │   │           │   │   │       ├── 16_10_27.log
│   │   │           │   │   │       ├── 16_10_28.log
│   │   │           │   │   │       ├── 16_10_29.log
│   │   │           │   │   │       ├── 16_10_30.log
│   │   │           │   │   │       ├── 16_10_31.log
│   │   │           │   │   │       ├── 16_11_01.log
│   │   │           │   │   │       ├── 16_11_02.log
│   │   │           │   │   │       ├── 16_11_03.log
│   │   │           │   │   │       ├── 16_11_04.log
│   │   │           │   │   │       ├── 16_11_05.log
│   │   │           │   │   │       ├── 16_11_06.log
│   │   │           │   │   │       ├── 16_11_07.log
│   │   │           │   │   │       ├── 16_11_08.log
│   │   │           │   │   │       ├── 16_11_09.log
│   │   │           │   │   │       ├── 16_11_10.log
│   │   │           │   │   │       ├── 16_11_11.log
│   │   │           │   │   │       ├── 16_11_12.log
│   │   │           │   │   │       ├── 16_11_13.log
│   │   │           │   │   │       ├── 16_11_14.log
│   │   │           │   │   │       ├── 16_11_15.log
│   │   │           │   │   │       ├── 16_11_16.log
│   │   │           │   │   │       ├── 16_11_17.log
│   │   │           │   │   │       ├── 16_11_18.log
│   │   │           │   │   │       ├── 16_11_19.log
│   │   │           │   │   │       ├── 16_11_20.log
│   │   │           │   │   │       ├── 16_11_21.log
│   │   │           │   │   │       ├── 16_11_22.log
│   │   │           │   │   │       ├── 16_11_23.log
│   │   │           │   │   │       ├── 16_11_24.log
│   │   │           │   │   │       ├── 16_11_25.log
│   │   │           │   │   │       ├── 16_11_26.log
│   │   │           │   │   │       ├── 16_11_27.log
│   │   │           │   │   │       ├── 16_11_28.log
│   │   │           │   │   │       ├── 16_11_29.log
│   │   │           │   │   │       ├── 16_11_30.log
│   │   │           │   │   │       ├── 16_12_01.log
│   │   │           │   │   │       ├── 16_12_02.log
│   │   │           │   │   │       ├── 16_12_03.log
│   │   │           │   │   │       ├── 16_12_04.log
│   │   │           │   │   │       ├── 16_12_05.log
│   │   │           │   │   │       ├── 16_12_06.log
│   │   │           │   │   │       ├── 16_12_07.log
│   │   │           │   │   │       ├── 16_12_08.log
│   │   │           │   │   │       ├── 16_12_09.log
│   │   │           │   │   │       ├── 16_12_10.log
│   │   │           │   │   │       ├── 16_12_11.log
│   │   │           │   │   │       ├── 16_12_12.log
│   │   │           │   │   │       ├── 16_12_13.log
│   │   │           │   │   │       ├── 16_12_14.log
│   │   │           │   │   │       ├── 16_12_15.log
│   │   │           │   │   │       ├── 16_12_16.log
│   │   │           │   │   │       ├── 16_12_17.log
│   │   │           │   │   │       ├── 16_12_18.log
│   │   │           │   │   │       ├── 16_12_19.log
│   │   │           │   │   │       └── 16_12_20.log
│   │   │           │   │   ├── common~runtime.php
│   │   │           │   │   └── index.html
│   │   │           │   └── index.html
│   │   │           ├── Public/
│   │   │           │   ├── css/
│   │   │           │   │   ├── a100e2e6.app.css
│   │   │           │   │   ├── common.css
│   │   │           │   │   └── index.css
│   │   │           │   └── js/
│   │   │           │       ├── common.js
│   │   │           │       └── index.js
│   │   │           ├── ThinkPHP/
│   │   │           │   ├── Common/
│   │   │           │   │   └── functions.php
│   │   │           │   ├── Conf/
│   │   │           │   │   ├── convention.php
│   │   │           │   │   └── debug.php
│   │   │           │   ├── LICENSE.txt
│   │   │           │   ├── Lang/
│   │   │           │   │   ├── en-us.php
│   │   │           │   │   ├── pt-br.php
│   │   │           │   │   ├── zh-cn.php
│   │   │           │   │   └── zh-tw.php
│   │   │           │   ├── Library/
│   │   │           │   │   ├── Behavior/
│   │   │           │   │   │   ├── AgentCheckBehavior.class.php
│   │   │           │   │   │   ├── BorisBehavior.class.php
│   │   │           │   │   │   ├── BrowserCheckBehavior.class.php
│   │   │           │   │   │   ├── BuildLiteBehavior.class.php
│   │   │           │   │   │   ├── CheckActionRouteBehavior.class.php
│   │   │           │   │   │   ├── CheckLangBehavior.class.php
│   │   │           │   │   │   ├── ChromeShowPageTraceBehavior.class.php
│   │   │           │   │   │   ├── ContentReplaceBehavior.class.php
│   │   │           │   │   │   ├── CronRunBehavior.class.php
│   │   │           │   │   │   ├── FireShowPageTraceBehavior.class.php
│   │   │           │   │   │   ├── ParseTemplateBehavior.class.php
│   │   │           │   │   │   ├── ReadHtmlCacheBehavior.class.php
│   │   │           │   │   │   ├── RobotCheckBehavior.class.php
│   │   │           │   │   │   ├── ShowPageTraceBehavior.class.php
│   │   │           │   │   │   ├── ShowRuntimeBehavior.class.php
│   │   │           │   │   │   ├── TokenBuildBehavior.class.php
│   │   │           │   │   │   ├── UpgradeNoticeBehavior.class.php
│   │   │           │   │   │   └── WriteHtmlCacheBehavior.class.php
│   │   │           │   │   ├── Org/
│   │   │           │   │   │   ├── Net/
│   │   │           │   │   │   │   ├── Http.class.php
│   │   │           │   │   │   │   └── IpLocation.class.php
│   │   │           │   │   │   └── Util/
│   │   │           │   │   │       ├── ArrayList.class.php
│   │   │           │   │   │       ├── CodeSwitch.class.php
│   │   │           │   │   │       ├── Date.class.php
│   │   │           │   │   │       ├── Rbac.class.php
│   │   │           │   │   │       ├── Stack.class.php
│   │   │           │   │   │       └── String.class.php
│   │   │           │   │   ├── Think/
│   │   │           │   │   │   ├── App.class.php
│   │   │           │   │   │   ├── Auth.class.php
│   │   │           │   │   │   ├── Behavior.class.php
│   │   │           │   │   │   ├── Build.class.php
│   │   │           │   │   │   ├── Cache/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Apachenote.class.php
│   │   │           │   │   │   │       ├── Apc.class.php
│   │   │           │   │   │   │       ├── Db.class.php
│   │   │           │   │   │   │       ├── Eaccelerator.class.php
│   │   │           │   │   │   │       ├── File.class.php
│   │   │           │   │   │   │       ├── Memcache.class.php
│   │   │           │   │   │   │       ├── Memcached.class.php
│   │   │           │   │   │   │       ├── Memcachesae.class.php
│   │   │           │   │   │   │       ├── Redis.class.php
│   │   │           │   │   │   │       ├── Shmop.class.php
│   │   │           │   │   │   │       ├── Sqlite.class.php
│   │   │           │   │   │   │       ├── Wincache.class.php
│   │   │           │   │   │   │       └── Xcache.class.php
│   │   │           │   │   │   ├── Cache.class.php
│   │   │           │   │   │   ├── Controller/
│   │   │           │   │   │   │   ├── HproseController.class.php
│   │   │           │   │   │   │   ├── JsonRpcController.class.php
│   │   │           │   │   │   │   ├── RestController.class.php
│   │   │           │   │   │   │   ├── RpcController.class.php
│   │   │           │   │   │   │   └── YarController.class.php
│   │   │           │   │   │   ├── Controller.class.php
│   │   │           │   │   │   ├── Crypt/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Base64.class.php
│   │   │           │   │   │   │       ├── Crypt.class.php
│   │   │           │   │   │   │       ├── Des.class.php
│   │   │           │   │   │   │       ├── Think.class.php
│   │   │           │   │   │   │       └── Xxtea.class.php
│   │   │           │   │   │   ├── Crypt.class.php
│   │   │           │   │   │   ├── Db/
│   │   │           │   │   │   │   ├── Driver/
│   │   │           │   │   │   │   │   ├── Firebird.class.php
│   │   │           │   │   │   │   │   ├── Mongo.class.php
│   │   │           │   │   │   │   │   ├── Mysql.class.php
│   │   │           │   │   │   │   │   ├── Oracle.class.php
│   │   │           │   │   │   │   │   ├── Pgsql.class.php
│   │   │           │   │   │   │   │   ├── Sqlite.class.php
│   │   │           │   │   │   │   │   └── Sqlsrv.class.php
│   │   │           │   │   │   │   ├── Driver.class.php
│   │   │           │   │   │   │   └── Lite.class.php
│   │   │           │   │   │   ├── Db.class.php
│   │   │           │   │   │   ├── Dispatcher.class.php
│   │   │           │   │   │   ├── Exception.class.php
│   │   │           │   │   │   ├── Hook.class.php
│   │   │           │   │   │   ├── Image/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── GIF.class.php
│   │   │           │   │   │   │       ├── Gd.class.php
│   │   │           │   │   │   │       └── Imagick.class.php
│   │   │           │   │   │   ├── Image.class.php
│   │   │           │   │   │   ├── Log/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── File.class.php
│   │   │           │   │   │   │       └── Sae.class.php
│   │   │           │   │   │   ├── Log.class.php
│   │   │           │   │   │   ├── Model/
│   │   │           │   │   │   │   ├── AdvModel.class.php
│   │   │           │   │   │   │   ├── MergeModel.class.php
│   │   │           │   │   │   │   ├── MongoModel.class.php
│   │   │           │   │   │   │   ├── RelationModel.class.php
│   │   │           │   │   │   │   └── ViewModel.class.php
│   │   │           │   │   │   ├── Model.class.php
│   │   │           │   │   │   ├── Page.class.php
│   │   │           │   │   │   ├── Route.class.php
│   │   │           │   │   │   ├── Session/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Db.class.php
│   │   │           │   │   │   │       ├── Memcache.class.php
│   │   │           │   │   │   │       └── Mysqli.class.php
│   │   │           │   │   │   ├── Storage/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── File.class.php
│   │   │           │   │   │   │       └── Sae.class.php
│   │   │           │   │   │   ├── Storage.class.php
│   │   │           │   │   │   ├── Template/
│   │   │           │   │   │   │   ├── Driver/
│   │   │           │   │   │   │   │   ├── Ease.class.php
│   │   │           │   │   │   │   │   ├── Lite.class.php
│   │   │           │   │   │   │   │   ├── Mobile.class.php
│   │   │           │   │   │   │   │   ├── Smart.class.php
│   │   │           │   │   │   │   │   └── Smarty.class.php
│   │   │           │   │   │   │   ├── TagLib/
│   │   │           │   │   │   │   │   ├── Cx.class.php
│   │   │           │   │   │   │   │   └── Html.class.php
│   │   │           │   │   │   │   └── TagLib.class.php
│   │   │           │   │   │   ├── Template.class.php
│   │   │           │   │   │   ├── Think.class.php
│   │   │           │   │   │   ├── Upload/
│   │   │           │   │   │   │   └── Driver/
│   │   │           │   │   │   │       ├── Bcs/
│   │   │           │   │   │   │       │   ├── bcs.class.php
│   │   │           │   │   │   │       │   ├── mimetypes.class.php
│   │   │           │   │   │   │       │   └── requestcore.class.php
│   │   │           │   │   │   │       ├── Bcs.class.php
│   │   │           │   │   │   │       ├── Ftp.class.php
│   │   │           │   │   │   │       ├── Local.class.php
│   │   │           │   │   │   │       ├── Qiniu/
│   │   │           │   │   │   │       │   └── QiniuStorage.class.php
│   │   │           │   │   │   │       ├── Qiniu.class.php
│   │   │           │   │   │   │       ├── Sae.class.php
│   │   │           │   │   │   │       └── Upyun.class.php
│   │   │           │   │   │   ├── Upload.class.php
│   │   │           │   │   │   ├── Verify.class.php
│   │   │           │   │   │   └── View.class.php
│   │   │           │   │   └── Vendor/
│   │   │           │   │       ├── Boris/
│   │   │           │   │       │   ├── Boris.php
│   │   │           │   │       │   ├── CLIOptionsHandler.php
│   │   │           │   │       │   ├── ColoredInspector.php
│   │   │           │   │       │   ├── Config.php
│   │   │           │   │       │   ├── DumpInspector.php
│   │   │           │   │       │   ├── EvalWorker.php
│   │   │           │   │       │   ├── ExportInspector.php
│   │   │           │   │       │   ├── Inspector.php
│   │   │           │   │       │   ├── ReadlineClient.php
│   │   │           │   │       │   └── ShallowParser.php
│   │   │           │   │       ├── EaseTemplate/
│   │   │           │   │       │   ├── template.core.php
│   │   │           │   │       │   └── template.ease.php
│   │   │           │   │       ├── Hprose/
│   │   │           │   │       │   ├── HproseClassManager.php
│   │   │           │   │       │   ├── HproseClient.php
│   │   │           │   │       │   ├── HproseCommon.php
│   │   │           │   │       │   ├── HproseFormatter.php
│   │   │           │   │       │   ├── HproseHttpClient.php
│   │   │           │   │       │   ├── HproseHttpServer.php
│   │   │           │   │       │   ├── HproseIO.php
│   │   │           │   │       │   ├── HproseIOStream.php
│   │   │           │   │       │   ├── HproseReader.php
│   │   │           │   │       │   ├── HproseTags.php
│   │   │           │   │       │   └── HproseWriter.php
│   │   │           │   │       ├── README.txt
│   │   │           │   │       ├── SmartTemplate/
│   │   │           │   │       │   ├── class.smarttemplate.php
│   │   │           │   │       │   ├── class.smarttemplatedebugger.php
│   │   │           │   │       │   └── class.smarttemplateparser.php
│   │   │           │   │       ├── Smarty/
│   │   │           │   │       │   ├── Smarty.class.php
│   │   │           │   │       │   ├── SmartyBC.class.php
│   │   │           │   │       │   ├── debug.tpl
│   │   │           │   │       │   ├── plugins/
│   │   │           │   │       │   │   ├── block.textformat.php
│   │   │           │   │       │   │   ├── function.counter.php
│   │   │           │   │       │   │   ├── function.cycle.php
│   │   │           │   │       │   │   ├── function.fetch.php
│   │   │           │   │       │   │   ├── function.html_checkboxes.php
│   │   │           │   │       │   │   ├── function.html_image.php
│   │   │           │   │       │   │   ├── function.html_options.php
│   │   │           │   │       │   │   ├── function.html_radios.php
│   │   │           │   │       │   │   ├── function.html_select_date.php
│   │   │           │   │       │   │   ├── function.html_select_time.php
│   │   │           │   │       │   │   ├── function.html_table.php
│   │   │           │   │       │   │   ├── function.mailto.php
│   │   │           │   │       │   │   ├── function.math.php
│   │   │           │   │       │   │   ├── modifier.capitalize.php
│   │   │           │   │       │   │   ├── modifier.date_format.php
│   │   │           │   │       │   │   ├── modifier.debug_print_var.php
│   │   │           │   │       │   │   ├── modifier.escape.php
│   │   │           │   │       │   │   ├── modifier.regex_replace.php
│   │   │           │   │       │   │   ├── modifier.replace.php
│   │   │           │   │       │   │   ├── modifier.spacify.php
│   │   │           │   │       │   │   ├── modifier.truncate.php
│   │   │           │   │       │   │   ├── modifiercompiler.cat.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_characters.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_paragraphs.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_sentences.php
│   │   │           │   │       │   │   ├── modifiercompiler.count_words.php
│   │   │           │   │       │   │   ├── modifiercompiler.default.php
│   │   │           │   │       │   │   ├── modifiercompiler.escape.php
│   │   │           │   │       │   │   ├── modifiercompiler.from_charset.php
│   │   │           │   │       │   │   ├── modifiercompiler.indent.php
│   │   │           │   │       │   │   ├── modifiercompiler.lower.php
│   │   │           │   │       │   │   ├── modifiercompiler.noprint.php
│   │   │           │   │       │   │   ├── modifiercompiler.string_format.php
│   │   │           │   │       │   │   ├── modifiercompiler.strip.php
│   │   │           │   │       │   │   ├── modifiercompiler.strip_tags.php
│   │   │           │   │       │   │   ├── modifiercompiler.to_charset.php
│   │   │           │   │       │   │   ├── modifiercompiler.unescape.php
│   │   │           │   │       │   │   ├── modifiercompiler.upper.php
│   │   │           │   │       │   │   ├── modifiercompiler.wordwrap.php
│   │   │           │   │       │   │   ├── outputfilter.trimwhitespace.php
│   │   │           │   │       │   │   ├── shared.escape_special_chars.php
│   │   │           │   │       │   │   ├── shared.literal_compiler_param.php
│   │   │           │   │       │   │   ├── shared.make_timestamp.php
│   │   │           │   │       │   │   ├── shared.mb_str_replace.php
│   │   │           │   │       │   │   ├── shared.mb_unicode.php
│   │   │           │   │       │   │   ├── shared.mb_wordwrap.php
│   │   │           │   │       │   │   └── variablefilter.htmlspecialchars.php
│   │   │           │   │       │   └── sysplugins/
│   │   │           │   │       │       ├── smarty_cacheresource.php
│   │   │           │   │       │       ├── smarty_cacheresource_custom.php
│   │   │           │   │       │       ├── smarty_cacheresource_keyvaluestore.php
│   │   │           │   │       │       ├── smarty_config_source.php
│   │   │           │   │       │       ├── smarty_internal_cacheresource_file.php
│   │   │           │   │       │       ├── smarty_internal_compile_append.php
│   │   │           │   │       │       ├── smarty_internal_compile_assign.php
│   │   │           │   │       │       ├── smarty_internal_compile_block.php
│   │   │           │   │       │       ├── smarty_internal_compile_break.php
│   │   │           │   │       │       ├── smarty_internal_compile_call.php
│   │   │           │   │       │       ├── smarty_internal_compile_capture.php
│   │   │           │   │       │       ├── smarty_internal_compile_config_load.php
│   │   │           │   │       │       ├── smarty_internal_compile_continue.php
│   │   │           │   │       │       ├── smarty_internal_compile_debug.php
│   │   │           │   │       │       ├── smarty_internal_compile_eval.php
│   │   │           │   │       │       ├── smarty_internal_compile_extends.php
│   │   │           │   │       │       ├── smarty_internal_compile_for.php
│   │   │           │   │       │       ├── smarty_internal_compile_foreach.php
│   │   │           │   │       │       ├── smarty_internal_compile_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_if.php
│   │   │           │   │       │       ├── smarty_internal_compile_include.php
│   │   │           │   │       │       ├── smarty_internal_compile_include_php.php
│   │   │           │   │       │       ├── smarty_internal_compile_insert.php
│   │   │           │   │       │       ├── smarty_internal_compile_ldelim.php
│   │   │           │   │       │       ├── smarty_internal_compile_nocache.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_block_plugin.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_function_plugin.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_modifier.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_object_block_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_object_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_print_expression.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_registered_block.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_registered_function.php
│   │   │           │   │       │       ├── smarty_internal_compile_private_special_variable.php
│   │   │           │   │       │       ├── smarty_internal_compile_rdelim.php
│   │   │           │   │       │       ├── smarty_internal_compile_section.php
│   │   │           │   │       │       ├── smarty_internal_compile_setfilter.php
│   │   │           │   │       │       ├── smarty_internal_compile_while.php
│   │   │           │   │       │       ├── smarty_internal_compilebase.php
│   │   │           │   │       │       ├── smarty_internal_config.php
│   │   │           │   │       │       ├── smarty_internal_config_file_compiler.php
│   │   │           │   │       │       ├── smarty_internal_configfilelexer.php
│   │   │           │   │       │       ├── smarty_internal_configfileparser.php
│   │   │           │   │       │       ├── smarty_internal_data.php
│   │   │           │   │       │       ├── smarty_internal_debug.php
│   │   │           │   │       │       ├── smarty_internal_filter_handler.php
│   │   │           │   │       │       ├── smarty_internal_function_call_handler.php
│   │   │           │   │       │       ├── smarty_internal_get_include_path.php
│   │   │           │   │       │       ├── smarty_internal_nocache_insert.php
│   │   │           │   │       │       ├── smarty_internal_parsetree.php
│   │   │           │   │       │       ├── smarty_internal_resource_eval.php
│   │   │           │   │       │       ├── smarty_internal_resource_extends.php
│   │   │           │   │       │       ├── smarty_internal_resource_file.php
│   │   │           │   │       │       ├── smarty_internal_resource_php.php
│   │   │           │   │       │       ├── smarty_internal_resource_registered.php
│   │   │           │   │       │       ├── smarty_internal_resource_stream.php
│   │   │           │   │       │       ├── smarty_internal_resource_string.php
│   │   │           │   │       │       ├── smarty_internal_smartytemplatecompiler.php
│   │   │           │   │       │       ├── smarty_internal_template.php
│   │   │           │   │       │       ├── smarty_internal_templatebase.php
│   │   │           │   │       │       ├── smarty_internal_templatecompilerbase.php
│   │   │           │   │       │       ├── smarty_internal_templatelexer.php
│   │   │           │   │       │       ├── smarty_internal_templateparser.php
│   │   │           │   │       │       ├── smarty_internal_utility.php
│   │   │           │   │       │       ├── smarty_internal_write_file.php
│   │   │           │   │       │       ├── smarty_resource.php
│   │   │           │   │       │       ├── smarty_resource_custom.php
│   │   │           │   │       │       ├── smarty_resource_recompiled.php
│   │   │           │   │       │       ├── smarty_resource_uncompiled.php
│   │   │           │   │       │       └── smarty_security.php
│   │   │           │   │       ├── TemplateLite/
│   │   │           │   │       │   ├── class.compiler.php
│   │   │           │   │       │   ├── class.config.php
│   │   │           │   │       │   ├── class.template.php
│   │   │           │   │       │   └── internal/
│   │   │           │   │       │       ├── compile.compile_config.php
│   │   │           │   │       │       ├── compile.compile_custom_block.php
│   │   │           │   │       │       ├── compile.compile_custom_function.php
│   │   │           │   │       │       ├── compile.compile_if.php
│   │   │           │   │       │       ├── compile.generate_compiler_debug_output.php
│   │   │           │   │       │       ├── compile.include.php
│   │   │           │   │       │       ├── compile.parse_is_expr.php
│   │   │           │   │       │       ├── compile.section_start.php
│   │   │           │   │       │       ├── debug.tpl
│   │   │           │   │       │       ├── template.build_dir.php
│   │   │           │   │       │       ├── template.config_loader.php
│   │   │           │   │       │       ├── template.destroy_dir.php
│   │   │           │   │       │       ├── template.fetch_compile_include.php
│   │   │           │   │       │       └── template.generate_debug_output.php
│   │   │           │   │       ├── jsonRPC/
│   │   │           │   │       │   ├── jsonRPCClient.php
│   │   │           │   │       │   └── jsonRPCServer.php
│   │   │           │   │       ├── phpRPC/
│   │   │           │   │       │   ├── bigint.php
│   │   │           │   │       │   ├── compat.php
│   │   │           │   │       │   ├── dhparams/
│   │   │           │   │       │   │   ├── 1024.dhp
│   │   │           │   │       │   │   ├── 128.dhp
│   │   │           │   │       │   │   ├── 1536.dhp
│   │   │           │   │       │   │   ├── 160.dhp
│   │   │           │   │       │   │   ├── 192.dhp
│   │   │           │   │       │   │   ├── 2048.dhp
│   │   │           │   │       │   │   ├── 256.dhp
│   │   │           │   │       │   │   ├── 3072.dhp
│   │   │           │   │       │   │   ├── 4096.dhp
│   │   │           │   │       │   │   ├── 512.dhp
│   │   │           │   │       │   │   ├── 768.dhp
│   │   │           │   │       │   │   └── 96.dhp
│   │   │           │   │       │   ├── dhparams.php
│   │   │           │   │       │   ├── pecl/
│   │   │           │   │       │   │   └── xxtea/
│   │   │           │   │       │   │       ├── CREDITS
│   │   │           │   │       │   │       ├── INSTALL
│   │   │           │   │       │   │       ├── LICENSE
│   │   │           │   │       │   │       ├── README
│   │   │           │   │       │   │       ├── config.m4
│   │   │           │   │       │   │       ├── config.w32
│   │   │           │   │       │   │       ├── php_xxtea.c
│   │   │           │   │       │   │       ├── php_xxtea.dsp
│   │   │           │   │       │   │       ├── php_xxtea.h
│   │   │           │   │       │   │       ├── php_xxtea.sln
│   │   │           │   │       │   │       ├── php_xxtea.vcproj
│   │   │           │   │       │   │       ├── test/
│   │   │           │   │       │   │       │   └── test.php
│   │   │           │   │       │   │       ├── xxtea.c
│   │   │           │   │       │   │       └── xxtea.h
│   │   │           │   │       │   ├── phprpc_client.php
│   │   │           │   │       │   ├── phprpc_date.php
│   │   │           │   │       │   ├── phprpc_server.php
│   │   │           │   │       │   └── xxtea.php
│   │   │           │   │       └── spyc/
│   │   │           │   │           ├── COPYING
│   │   │           │   │           ├── README.md
│   │   │           │   │           ├── Spyc.php
│   │   │           │   │           ├── composer.json
│   │   │           │   │           ├── examples/
│   │   │           │   │           │   ├── yaml-dump.php
│   │   │           │   │           │   └── yaml-load.php
│   │   │           │   │           ├── php4/
│   │   │           │   │           │   ├── 5to4.php
│   │   │           │   │           │   ├── spyc.php4
│   │   │           │   │           │   └── test.php4
│   │   │           │   │           ├── spyc.yaml
│   │   │           │   │           └── tests/
│   │   │           │   │               ├── DumpTest.php
│   │   │           │   │               ├── IndentTest.php
│   │   │           │   │               ├── ParseTest.php
│   │   │           │   │               ├── RoundTripTest.php
│   │   │           │   │               ├── comments.yaml
│   │   │           │   │               ├── failing1.yaml
│   │   │           │   │               ├── indent_1.yaml
│   │   │           │   │               └── quotes.yaml
│   │   │           │   ├── Mode/
│   │   │           │   │   ├── Api/
│   │   │           │   │   │   ├── App.class.php
│   │   │           │   │   │   ├── Controller.class.php
│   │   │           │   │   │   ├── Dispatcher.class.php
│   │   │           │   │   │   └── functions.php
│   │   │           │   │   ├── Lite/
│   │   │           │   │   │   ├── App.class.php
│   │   │           │   │   │   ├── Controller.class.php
│   │   │           │   │   │   ├── Dispatcher.class.php
│   │   │           │   │   │   ├── Model.class.php
│   │   │           │   │   │   ├── View.class.php
│   │   │           │   │   │   ├── convention.php
│   │   │           │   │   │   └── functions.php
│   │   │           │   │   ├── Sae/
│   │   │           │   │   │   └── convention.php
│   │   │           │   │   ├── api.php
│   │   │           │   │   ├── common.php
│   │   │           │   │   ├── lite.php
│   │   │           │   │   └── sae.php
│   │   │           │   ├── ThinkPHP.php
│   │   │           │   └── Tpl/
│   │   │           │       ├── dispatch_jump.tpl
│   │   │           │       ├── page_trace.tpl
│   │   │           │       └── think_exception.tpl
│   │   │           ├── baidu_verify_ltdJP8g59L.html
│   │   │           ├── file/
│   │   │           │   ├── 20161122.log
│   │   │           │   ├── 20161122_offline.log
│   │   │           │   ├── 20161123.log
│   │   │           │   ├── 20161123_offline.log
│   │   │           │   ├── 20161124.log
│   │   │           │   ├── 20161124_offline.log
│   │   │           │   ├── 20161125.log
│   │   │           │   ├── 20161125_offline.log
│   │   │           │   ├── 20161126.log
│   │   │           │   ├── 20161126_offline.log
│   │   │           │   ├── 20161127.log
│   │   │           │   ├── 20161127_offline.log
│   │   │           │   ├── 20161128.log
│   │   │           │   ├── 20161128_offline.log
│   │   │           │   ├── 20161129.log
│   │   │           │   ├── 20161129_offline.log
│   │   │           │   ├── 20161130.log
│   │   │           │   ├── 20161130_offline.log
│   │   │           │   ├── 20161201.log
│   │   │           │   ├── 20161201_offline.log
│   │   │           │   ├── 20161202.log
│   │   │           │   ├── 20161202_offline.log
│   │   │           │   ├── 20161203.log
│   │   │           │   ├── 20161203_offline.log
│   │   │           │   ├── 20161204.log
│   │   │           │   ├── 20161204_offline.log
│   │   │           │   ├── 20161205.log
│   │   │           │   ├── 20161205_offline.log
│   │   │           │   ├── 20161206.log
│   │   │           │   ├── 20161206_offline.log
│   │   │           │   ├── 20161207.log
│   │   │           │   ├── 20161207_offline.log
│   │   │           │   ├── 20161208.log
│   │   │           │   ├── 20161208_offline.log
│   │   │           │   ├── 20161209.log
│   │   │           │   ├── 20161209_offline.log
│   │   │           │   ├── 20161210.log
│   │   │           │   ├── 20161210_offline.log
│   │   │           │   ├── 20161211.log
│   │   │           │   ├── 20161211_offline.log
│   │   │           │   ├── 20161212.log
│   │   │           │   ├── 20161212_offline.log
│   │   │           │   ├── 20161213.log
│   │   │           │   ├── 20161213_offline.log
│   │   │           │   ├── 20161214.log
│   │   │           │   ├── 20161214_offline.log
│   │   │           │   ├── 20161215.log
│   │   │           │   ├── 20161215_offline.log
│   │   │           │   ├── 20161216.log
│   │   │           │   ├── 20161216_offline.log
│   │   │           │   ├── 20161217.log
│   │   │           │   ├── 20161217_offline.log
│   │   │           │   ├── 20161218.log
│   │   │           │   ├── 20161218_offline.log
│   │   │           │   ├── 20161219.log
│   │   │           │   ├── 20161219_offline.log
│   │   │           │   ├── 20161220.log
│   │   │           │   └── 20161220_offline.log
│   │   │           └── index.php
│   │   └── index.html
│   ├── Runtime/
│   │   ├── Data/
│   │   │   ├── _fields/
│   │   │   │   ├── cloud.cloud_software.php
│   │   │   │   ├── cloud.cloud_user.php
│   │   │   │   └── cms.cms_manage.php
│   │   │   └── index.html
│   │   └── index.html
│   └── index.html
├── LICENSE
├── Public/
│   ├── css/
│   │   ├── a100e2e6.app.css
│   │   ├── common.css
│   │   └── index.css
│   └── js/
│       ├── common.js
│       └── index.js
├── README.md
├── ThinkPHP/
│   ├── Common/
│   │   └── functions.php
│   ├── Conf/
│   │   ├── convention.php
│   │   └── debug.php
│   ├── LICENSE.txt
│   ├── Lang/
│   │   ├── en-us.php
│   │   ├── pt-br.php
│   │   ├── zh-cn.php
│   │   └── zh-tw.php
│   ├── Library/
│   │   ├── Behavior/
│   │   │   ├── AgentCheckBehavior.class.php
│   │   │   ├── BorisBehavior.class.php
│   │   │   ├── BrowserCheckBehavior.class.php
│   │   │   ├── BuildLiteBehavior.class.php
│   │   │   ├── CheckActionRouteBehavior.class.php
│   │   │   ├── CheckLangBehavior.class.php
│   │   │   ├── ChromeShowPageTraceBehavior.class.php
│   │   │   ├── ContentReplaceBehavior.class.php
│   │   │   ├── CronRunBehavior.class.php
│   │   │   ├── FireShowPageTraceBehavior.class.php
│   │   │   ├── ParseTemplateBehavior.class.php
│   │   │   ├── ReadHtmlCacheBehavior.class.php
│   │   │   ├── RobotCheckBehavior.class.php
│   │   │   ├── ShowPageTraceBehavior.class.php
│   │   │   ├── ShowRuntimeBehavior.class.php
│   │   │   ├── TokenBuildBehavior.class.php
│   │   │   ├── UpgradeNoticeBehavior.class.php
│   │   │   └── WriteHtmlCacheBehavior.class.php
│   │   ├── Org/
│   │   │   ├── Net/
│   │   │   │   ├── Http.class.php
│   │   │   │   └── IpLocation.class.php
│   │   │   └── Util/
│   │   │       ├── ArrayList.class.php
│   │   │       ├── CodeSwitch.class.php
│   │   │       ├── Date.class.php
│   │   │       ├── Rbac.class.php
│   │   │       ├── Stack.class.php
│   │   │       └── String.class.php
│   │   ├── Think/
│   │   │   ├── App.class.php
│   │   │   ├── Auth.class.php
│   │   │   ├── Behavior.class.php
│   │   │   ├── Build.class.php
│   │   │   ├── Cache/
│   │   │   │   └── Driver/
│   │   │   │       ├── Apachenote.class.php
│   │   │   │       ├── Apc.class.php
│   │   │   │       ├── Db.class.php
│   │   │   │       ├── Eaccelerator.class.php
│   │   │   │       ├── File.class.php
│   │   │   │       ├── Memcache.class.php
│   │   │   │       ├── Memcached.class.php
│   │   │   │       ├── Memcachesae.class.php
│   │   │   │       ├── Redis.class.php
│   │   │   │       ├── Shmop.class.php
│   │   │   │       ├── Sqlite.class.php
│   │   │   │       ├── Wincache.class.php
│   │   │   │       └── Xcache.class.php
│   │   │   ├── Cache.class.php
│   │   │   ├── Controller/
│   │   │   │   ├── HproseController.class.php
│   │   │   │   ├── JsonRpcController.class.php
│   │   │   │   ├── RestController.class.php
│   │   │   │   ├── RpcController.class.php
│   │   │   │   └── YarController.class.php
│   │   │   ├── Controller.class.php
│   │   │   ├── Crypt/
│   │   │   │   └── Driver/
│   │   │   │       ├── Base64.class.php
│   │   │   │       ├── Crypt.class.php
│   │   │   │       ├── Des.class.php
│   │   │   │       ├── Think.class.php
│   │   │   │       └── Xxtea.class.php
│   │   │   ├── Crypt.class.php
│   │   │   ├── Db/
│   │   │   │   ├── Driver/
│   │   │   │   │   ├── Firebird.class.php
│   │   │   │   │   ├── Mongo.class.php
│   │   │   │   │   ├── Mysql.class.php
│   │   │   │   │   ├── Oracle.class.php
│   │   │   │   │   ├── Pgsql.class.php
│   │   │   │   │   ├── Sqlite.class.php
│   │   │   │   │   └── Sqlsrv.class.php
│   │   │   │   ├── Driver.class.php
│   │   │   │   └── Lite.class.php
│   │   │   ├── Db.class.php
│   │   │   ├── Dispatcher.class.php
│   │   │   ├── Exception.class.php
│   │   │   ├── Hook.class.php
│   │   │   ├── Image/
│   │   │   │   └── Driver/
│   │   │   │       ├── GIF.class.php
│   │   │   │       ├── Gd.class.php
│   │   │   │       └── Imagick.class.php
│   │   │   ├── Image.class.php
│   │   │   ├── Log/
│   │   │   │   └── Driver/
│   │   │   │       ├── File.class.php
│   │   │   │       └── Sae.class.php
│   │   │   ├── Log.class.php
│   │   │   ├── Model/
│   │   │   │   ├── AdvModel.class.php
│   │   │   │   ├── MergeModel.class.php
│   │   │   │   ├── MongoModel.class.php
│   │   │   │   ├── RelationModel.class.php
│   │   │   │   └── ViewModel.class.php
│   │   │   ├── Model.class.php
│   │   │   ├── Page.class.php
│   │   │   ├── Route.class.php
│   │   │   ├── Session/
│   │   │   │   └── Driver/
│   │   │   │       ├── Db.class.php
│   │   │   │       ├── Memcache.class.php
│   │   │   │       └── Mysqli.class.php
│   │   │   ├── Storage/
│   │   │   │   └── Driver/
│   │   │   │       ├── File.class.php
│   │   │   │       └── Sae.class.php
│   │   │   ├── Storage.class.php
│   │   │   ├── Template/
│   │   │   │   ├── Driver/
│   │   │   │   │   ├── Ease.class.php
│   │   │   │   │   ├── Lite.class.php
│   │   │   │   │   ├── Mobile.class.php
│   │   │   │   │   ├── Smart.class.php
│   │   │   │   │   └── Smarty.class.php
│   │   │   │   ├── TagLib/
│   │   │   │   │   ├── Cx.class.php
│   │   │   │   │   └── Html.class.php
│   │   │   │   └── TagLib.class.php
│   │   │   ├── Template.class.php
│   │   │   ├── Think.class.php
│   │   │   ├── Upload/
│   │   │   │   └── Driver/
│   │   │   │       ├── Bcs/
│   │   │   │       │   ├── bcs.class.php
│   │   │   │       │   ├── mimetypes.class.php
│   │   │   │       │   └── requestcore.class.php
│   │   │   │       ├── Bcs.class.php
│   │   │   │       ├── Ftp.class.php
│   │   │   │       ├── Local.class.php
│   │   │   │       ├── Qiniu/
│   │   │   │       │   └── QiniuStorage.class.php
│   │   │   │       ├── Qiniu.class.php
│   │   │   │       ├── Sae.class.php
│   │   │   │       └── Upyun.class.php
│   │   │   ├── Upload.class.php
│   │   │   ├── Verify.class.php
│   │   │   └── View.class.php
│   │   └── Vendor/
│   │       ├── Boris/
│   │       │   ├── Boris.php
│   │       │   ├── CLIOptionsHandler.php
│   │       │   ├── ColoredInspector.php
│   │       │   ├── Config.php
│   │       │   ├── DumpInspector.php
│   │       │   ├── EvalWorker.php
│   │       │   ├── ExportInspector.php
│   │       │   ├── Inspector.php
│   │       │   ├── ReadlineClient.php
│   │       │   └── ShallowParser.php
│   │       ├── EaseTemplate/
│   │       │   ├── template.core.php
│   │       │   └── template.ease.php
│   │       ├── Hprose/
│   │       │   ├── HproseClassManager.php
│   │       │   ├── HproseClient.php
│   │       │   ├── HproseCommon.php
│   │       │   ├── HproseFormatter.php
│   │       │   ├── HproseHttpClient.php
│   │       │   ├── HproseHttpServer.php
│   │       │   ├── HproseIO.php
│   │       │   ├── HproseIOStream.php
│   │       │   ├── HproseReader.php
│   │       │   ├── HproseTags.php
│   │       │   └── HproseWriter.php
│   │       ├── README.txt
│   │       ├── SmartTemplate/
│   │       │   ├── class.smarttemplate.php
│   │       │   ├── class.smarttemplatedebugger.php
│   │       │   └── class.smarttemplateparser.php
│   │       ├── Smarty/
│   │       │   ├── Smarty.class.php
│   │       │   ├── SmartyBC.class.php
│   │       │   ├── debug.tpl
│   │       │   ├── plugins/
│   │       │   │   ├── block.textformat.php
│   │       │   │   ├── function.counter.php
│   │       │   │   ├── function.cycle.php
│   │       │   │   ├── function.fetch.php
│   │       │   │   ├── function.html_checkboxes.php
│   │       │   │   ├── function.html_image.php
│   │       │   │   ├── function.html_options.php
│   │       │   │   ├── function.html_radios.php
│   │       │   │   ├── function.html_select_date.php
│   │       │   │   ├── function.html_select_time.php
│   │       │   │   ├── function.html_table.php
│   │       │   │   ├── function.mailto.php
│   │       │   │   ├── function.math.php
│   │       │   │   ├── modifier.capitalize.php
│   │       │   │   ├── modifier.date_format.php
│   │       │   │   ├── modifier.debug_print_var.php
│   │       │   │   ├── modifier.escape.php
│   │       │   │   ├── modifier.regex_replace.php
│   │       │   │   ├── modifier.replace.php
│   │       │   │   ├── modifier.spacify.php
│   │       │   │   ├── modifier.truncate.php
│   │       │   │   ├── modifiercompiler.cat.php
│   │       │   │   ├── modifiercompiler.count_characters.php
│   │       │   │   ├── modifiercompiler.count_paragraphs.php
│   │       │   │   ├── modifiercompiler.count_sentences.php
│   │       │   │   ├── modifiercompiler.count_words.php
│   │       │   │   ├── modifiercompiler.default.php
│   │       │   │   ├── modifiercompiler.escape.php
│   │       │   │   ├── modifiercompiler.from_charset.php
│   │       │   │   ├── modifiercompiler.indent.php
│   │       │   │   ├── modifiercompiler.lower.php
│   │       │   │   ├── modifiercompiler.noprint.php
│   │       │   │   ├── modifiercompiler.string_format.php
│   │       │   │   ├── modifiercompiler.strip.php
│   │       │   │   ├── modifiercompiler.strip_tags.php
│   │       │   │   ├── modifiercompiler.to_charset.php
│   │       │   │   ├── modifiercompiler.unescape.php
│   │       │   │   ├── modifiercompiler.upper.php
│   │       │   │   ├── modifiercompiler.wordwrap.php
│   │       │   │   ├── outputfilter.trimwhitespace.php
│   │       │   │   ├── shared.escape_special_chars.php
│   │       │   │   ├── shared.literal_compiler_param.php
│   │       │   │   ├── shared.make_timestamp.php
│   │       │   │   ├── shared.mb_str_replace.php
│   │       │   │   ├── shared.mb_unicode.php
│   │       │   │   ├── shared.mb_wordwrap.php
│   │       │   │   └── variablefilter.htmlspecialchars.php
│   │       │   └── sysplugins/
│   │       │       ├── smarty_cacheresource.php
│   │       │       ├── smarty_cacheresource_custom.php
│   │       │       ├── smarty_cacheresource_keyvaluestore.php
│   │       │       ├── smarty_config_source.php
│   │       │       ├── smarty_internal_cacheresource_file.php
│   │       │       ├── smarty_internal_compile_append.php
│   │       │       ├── smarty_internal_compile_assign.php
│   │       │       ├── smarty_internal_compile_block.php
│   │       │       ├── smarty_internal_compile_break.php
│   │       │       ├── smarty_internal_compile_call.php
│   │       │       ├── smarty_internal_compile_capture.php
│   │       │       ├── smarty_internal_compile_config_load.php
│   │       │       ├── smarty_internal_compile_continue.php
│   │       │       ├── smarty_internal_compile_debug.php
│   │       │       ├── smarty_internal_compile_eval.php
│   │       │       ├── smarty_internal_compile_extends.php
│   │       │       ├── smarty_internal_compile_for.php
│   │       │       ├── smarty_internal_compile_foreach.php
│   │       │       ├── smarty_internal_compile_function.php
│   │       │       ├── smarty_internal_compile_if.php
│   │       │       ├── smarty_internal_compile_include.php
│   │       │       ├── smarty_internal_compile_include_php.php
│   │       │       ├── smarty_internal_compile_insert.php
│   │       │       ├── smarty_internal_compile_ldelim.php
│   │       │       ├── smarty_internal_compile_nocache.php
│   │       │       ├── smarty_internal_compile_private_block_plugin.php
│   │       │       ├── smarty_internal_compile_private_function_plugin.php
│   │       │       ├── smarty_internal_compile_private_modifier.php
│   │       │       ├── smarty_internal_compile_private_object_block_function.php
│   │       │       ├── smarty_internal_compile_private_object_function.php
│   │       │       ├── smarty_internal_compile_private_print_expression.php
│   │       │       ├── smarty_internal_compile_private_registered_block.php
│   │       │       ├── smarty_internal_compile_private_registered_function.php
│   │       │       ├── smarty_internal_compile_private_special_variable.php
│   │       │       ├── smarty_internal_compile_rdelim.php
│   │       │       ├── smarty_internal_compile_section.php
│   │       │       ├── smarty_internal_compile_setfilter.php
│   │       │       ├── smarty_internal_compile_while.php
│   │       │       ├── smarty_internal_compilebase.php
│   │       │       ├── smarty_internal_config.php
│   │       │       ├── smarty_internal_config_file_compiler.php
│   │       │       ├── smarty_internal_configfilelexer.php
│   │       │       ├── smarty_internal_configfileparser.php
│   │       │       ├── smarty_internal_data.php
│   │       │       ├── smarty_internal_debug.php
│   │       │       ├── smarty_internal_filter_handler.php
│   │       │       ├── smarty_internal_function_call_handler.php
│   │       │       ├── smarty_internal_get_include_path.php
│   │       │       ├── smarty_internal_nocache_insert.php
│   │       │       ├── smarty_internal_parsetree.php
│   │       │       ├── smarty_internal_resource_eval.php
│   │       │       ├── smarty_internal_resource_extends.php
│   │       │       ├── smarty_internal_resource_file.php
│   │       │       ├── smarty_internal_resource_php.php
│   │       │       ├── smarty_internal_resource_registered.php
│   │       │       ├── smarty_internal_resource_stream.php
│   │       │       ├── smarty_internal_resource_string.php
│   │       │       ├── smarty_internal_smartytemplatecompiler.php
│   │       │       ├── smarty_internal_template.php
│   │       │       ├── smarty_internal_templatebase.php
│   │       │       ├── smarty_internal_templatecompilerbase.php
│   │       │       ├── smarty_internal_templatelexer.php
│   │       │       ├── smarty_internal_templateparser.php
│   │       │       ├── smarty_internal_utility.php
│   │       │       ├── smarty_internal_write_file.php
│   │       │       ├── smarty_resource.php
│   │       │       ├── smarty_resource_custom.php
│   │       │       ├── smarty_resource_recompiled.php
│   │       │       ├── smarty_resource_uncompiled.php
│   │       │       └── smarty_security.php
│   │       ├── TemplateLite/
│   │       │   ├── class.compiler.php
│   │       │   ├── class.config.php
│   │       │   ├── class.template.php
│   │       │   └── internal/
│   │       │       ├── compile.compile_config.php
│   │       │       ├── compile.compile_custom_block.php
│   │       │       ├── compile.compile_custom_function.php
│   │       │       ├── compile.compile_if.php
│   │       │       ├── compile.generate_compiler_debug_output.php
│   │       │       ├── compile.include.php
│   │       │       ├── compile.parse_is_expr.php
│   │       │       ├── compile.section_start.php
│   │       │       ├── debug.tpl
│   │       │       ├── template.build_dir.php
│   │       │       ├── template.config_loader.php
│   │       │       ├── template.destroy_dir.php
│   │       │       ├── template.fetch_compile_include.php
│   │       │       └── template.generate_debug_output.php
│   │       ├── jsonRPC/
│   │       │   ├── jsonRPCClient.php
│   │       │   └── jsonRPCServer.php
│   │       ├── phpRPC/
│   │       │   ├── bigint.php
│   │       │   ├── compat.php
│   │       │   ├── dhparams/
│   │       │   │   ├── 1024.dhp
│   │       │   │   ├── 128.dhp
│   │       │   │   ├── 1536.dhp
│   │       │   │   ├── 160.dhp
│   │       │   │   ├── 192.dhp
│   │       │   │   ├── 2048.dhp
│   │       │   │   ├── 256.dhp
│   │       │   │   ├── 3072.dhp
│   │       │   │   ├── 4096.dhp
│   │       │   │   ├── 512.dhp
│   │       │   │   ├── 768.dhp
│   │       │   │   └── 96.dhp
│   │       │   ├── dhparams.php
│   │       │   ├── pecl/
│   │       │   │   └── xxtea/
│   │       │   │       ├── CREDITS
│   │       │   │       ├── INSTALL
│   │       │   │       ├── LICENSE
│   │       │   │       ├── README
│   │       │   │       ├── config.m4
│   │       │   │       ├── config.w32
│   │       │   │       ├── php_xxtea.c
│   │       │   │       ├── php_xxtea.dsp
│   │       │   │       ├── php_xxtea.h
│   │       │   │       ├── php_xxtea.sln
│   │       │   │       ├── php_xxtea.vcproj
│   │       │   │       ├── test/
│   │       │   │       │   └── test.php
│   │       │   │       ├── xxtea.c
│   │       │   │       └── xxtea.h
│   │       │   ├── phprpc_client.php
│   │       │   ├── phprpc_date.php
│   │       │   ├── phprpc_server.php
│   │       │   └── xxtea.php
│   │       └── spyc/
│   │           ├── COPYING
│   │           ├── README.md
│   │           ├── Spyc.php
│   │           ├── composer.json
│   │           ├── examples/
│   │           │   ├── yaml-dump.php
│   │           │   └── yaml-load.php
│   │           ├── php4/
│   │           │   ├── 5to4.php
│   │           │   ├── spyc.php4
│   │           │   └── test.php4
│   │           ├── spyc.yaml
│   │           └── tests/
│   │               ├── DumpTest.php
│   │               ├── IndentTest.php
│   │               ├── ParseTest.php
│   │               ├── RoundTripTest.php
│   │               ├── comments.yaml
│   │               ├── failing1.yaml
│   │               ├── indent_1.yaml
│   │               └── quotes.yaml
│   ├── Mode/
│   │   ├── Api/
│   │   │   ├── App.class.php
│   │   │   ├── Controller.class.php
│   │   │   ├── Dispatcher.class.php
│   │   │   └── functions.php
│   │   ├── Lite/
│   │   │   ├── App.class.php
│   │   │   ├── Controller.class.php
│   │   │   ├── Dispatcher.class.php
│   │   │   ├── Model.class.php
│   │   │   ├── View.class.php
│   │   │   ├── convention.php
│   │   │   └── functions.php
│   │   ├── Sae/
│   │   │   └── convention.php
│   │   ├── api.php
│   │   ├── common.php
│   │   ├── lite.php
│   │   └── sae.php
│   ├── ThinkPHP.php
│   └── Tpl/
│       ├── dispatch_jump.tpl
│       ├── page_trace.tpl
│       └── think_exception.tpl
├── index.php
└── 导入数据库/
    ├── cloud_2017-01-17.sql
    └── 请看.txt
Download .txt
Showing preview only (584K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6837 symbols across 653 files)

FILE: Application/Common/Controller/BaseController.class.php
  class BaseController (line 8) | class BaseController extends Controller {
    method getVerifyImg (line 15) | public function getVerifyImg() {
    method check_verify (line 26) | public function check_verify($code, $id = ''){
    method isEmpty (line 32) | protected function isEmpty($str){
    method __construct (line 36) | public function __construct() {
    method signout (line 66) | protected function signout(){
    method getUserId (line 72) | protected function getUserId(){
    method showTableAndPage (line 87) | protected function showTableAndPage($table_name, $sql) {
    method getSoftwareList (line 166) | protected function getSoftwareList() {

FILE: Application/Home/Common/Des/DES.php
  class DES (line 3) | class DES
    method pkcs5_pad (line 5) | public static function pkcs5_pad ($text, $blocksize) {
    method pkcs5_unpad (line 10) | public static function pkcs5_unpad($text) {
  function encrypt (line 21) | function encrypt($key, $data) {
  function decrypt (line 33) | function decrypt($key, $data) {

FILE: Application/Home/Common/Email/email.class.php
  class smtp (line 2) | class smtp
    method smtp (line 31) | function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$p...
    method sendmail (line 61) | function sendmail($to, $from, $subject = "", $body = "", $mailtype, $c...
    method smtp_send (line 153) | function smtp_send($helo, $from, $to, $header, $body = "")
    method smtp_sockopen (line 223) | function smtp_sockopen($address)
    method smtp_sockopen_relay (line 239) | function smtp_sockopen_relay()
    method smtp_sockopen_mx (line 263) | function smtp_sockopen_mx($address)
    method smtp_message (line 306) | function smtp_message($header, $body)
    method smtp_eom (line 318) | function smtp_eom()
    method smtp_ok (line 330) | function smtp_ok()
    method smtp_putcmd (line 354) | function smtp_putcmd($cmd, $arg = "")
    method smtp_error (line 374) | function smtp_error($string)
    method log_write (line 384) | function log_write($message)
    method strip_comment (line 418) | function strip_comment($address)
    method get_address (line 436) | function get_address($address)
    method smtp_debug (line 448) | function smtp_debug($message)

FILE: Application/Home/Common/Rsa/BigInteger.php
  class Math_BigInteger (line 191) | class Math_BigInteger {
    method Math_BigInteger (line 268) | function Math_BigInteger($x = 0, $base = 10)
    method toBytes (line 472) | function toBytes($twos_compliment = false)
    method toHex (line 569) | function toHex($twos_compliment = false)
    method toBits (line 596) | function toBits($twos_compliment = false)
    method toString (line 624) | function toString()
    method copy (line 675) | function copy()
    method __toString (line 695) | function __toString()
    method __clone (line 712) | function __clone()
    method __sleep (line 725) | function __sleep()
    method __wakeup (line 747) | function __wakeup()
    method add (line 781) | function add($y)
    method _add (line 815) | function _add($x_value, $x_negative, $y_value, $y_negative)
    method subtract (line 912) | function subtract($y)
    method _subtract (line 946) | function _subtract($x_value, $x_negative, $y_value, $y_negative)
    method multiply (line 1047) | function multiply($x)
    method _multiply (line 1081) | function _multiply($x_value, $x_negative, $y_value, $y_negative)
    method _regularMultiply (line 1118) | function _regularMultiply($x_value, $y_value)
    method _karatsuba (line 1182) | function _karatsuba($x_value, $y_value)
    method _square (line 1220) | function _square($x = false)
    method _baseSquare (line 1238) | function _baseSquare($value)
    method _karatsubaSquare (line 1277) | function _karatsubaSquare($value)
    method divide (line 1334) | function divide($y)
    method _divide_digit (line 1516) | function _divide_digit($dividend, $divisor)
    method modPow (line 1572) | function modPow($e, $n)
    method powMod (line 1671) | function powMod($e, $n)
    method _slidingWindow (line 1690) | function _slidingWindow($e, $n, $mode)
    method _reduce (line 1765) | function _reduce($x, $n, $mode)
    method _prepareReduce (line 1802) | function _prepareReduce($x, $n, $mode)
    method _multiplyReduce (line 1821) | function _multiplyReduce($x, $y, $n, $mode)
    method _squareReduce (line 1840) | function _squareReduce($x, $n, $mode)
    method _mod2 (line 1859) | function _mod2($n)
    method _barrett (line 1890) | function _barrett($n, $m)
    method _regularBarrett (line 1987) | function _regularBarrett($x, $n)
    method _multiplyLower (line 2060) | function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, ...
    method _montgomery (line 2139) | function _montgomery($x, $n)
    method _montgomeryMultiply (line 2187) | function _montgomeryMultiply($x, $y, $m)
    method _prepMontgomery (line 2233) | function _prepMontgomery($x, $n)
    method _modInverse67108864 (line 2270) | function _modInverse67108864($x) // 2**26 == 67108864
    method modInverse (line 2310) | function modInverse($n)
    method extendedGCD (line 2376) | function extendedGCD($n)
    method gcd (line 2507) | function gcd($n)
    method abs (line 2519) | function abs()
    method compare (line 2555) | function compare($y)
    method _compare (line 2578) | function _compare($x_value, $x_negative, $y_value, $y_negative)
    method equals (line 2613) | function equals($x)
    method setPrecision (line 2633) | function setPrecision($bits)
    method bitwise_and (line 2654) | function bitwise_and($x)
    method bitwise_or (line 2695) | function bitwise_or($x)
    method bitwise_xor (line 2735) | function bitwise_xor($x)
    method bitwise_not (line 2774) | function bitwise_not()
    method bitwise_rightShift (line 2813) | function bitwise_rightShift($shift)
    method bitwise_leftShift (line 2851) | function bitwise_leftShift($shift)
    method bitwise_leftRotate (line 2888) | function bitwise_leftRotate($shift)
    method bitwise_rightRotate (line 2932) | function bitwise_rightRotate($shift)
    method setRandomGenerator (line 2951) | function setRandomGenerator($generator)
    method random (line 2964) | function random($min = false, $max = false)
    method randomPrime (line 3028) | function randomPrime($min = false, $max = false, $timeout = false)
    method _make_odd (line 3129) | function _make_odd()
    method isPrime (line 3159) | function isPrime($t = false)
    method _lshift (line 3305) | function _lshift($shift)
    method _rshift (line 3340) | function _rshift($shift)
    method _normalize (line 3376) | function _normalize($result)
    method _trim (line 3424) | function _trim($value)
    method _array_repeat (line 3444) | function _array_repeat($input, $multiplier)
    method _base256_lshift (line 3459) | function _base256_lshift(&$x, $shift)
    method _base256_rshift (line 3488) | function _base256_rshift(&$x, $shift)
    method _int2bytes (line 3529) | function _int2bytes($x)
    method _bytes2int (line 3541) | function _bytes2int($x)

FILE: Application/Home/Common/Rsa/rsa.php
  function rsa_encrypt (line 43) | function rsa_encrypt($message, $public_key, $modulus, $keylength)
  function rsa_decrypt (line 53) | function rsa_decrypt($message, $private_key, $modulus, $keylength)
  function rsa_sign (line 61) | function rsa_sign($message, $private_key, $modulus, $keylength)
  function rsa_verify (line 71) | function rsa_verify($message, $public_key, $modulus, $keylength)
  function rsa_kyp_verify (line 76) | function rsa_kyp_verify($message, $public_key, $modulus, $keylength)
  function pow_mod (line 114) | function pow_mod($p, $q, $r)
  function add_PKCS1_padding (line 163) | function add_PKCS1_padding($data, $isPublicKey, $blocksize)
  function remove_KYP_padding (line 223) | function remove_KYP_padding($data, $blocksize)
  function number_to_binary (line 254) | function number_to_binary($number, $blocksize)

FILE: Application/Home/Controller/AuthController.class.php
  class AuthController (line 13) | class AuthController extends BaseController {
    method __construct (line 21) | public function __construct() {
    method traceHttp (line 33) | private function traceHttp() {
    method beforeHandle (line 47) | private function beforeHandle() {
    method signin (line 84) | public function signin() {
    method valid (line 108) | public function valid() {
    method recommend (line 114) | private function recommend() {
    method reg (line 200) | private function reg() {
    method unbind (line 283) | private function unbind() {
    method check (line 312) | private function check() {
    method trial (line 377) | private function trial() {
    method offline (line 447) | private function offline() {
    method isComputerIdValid (line 453) | private function isComputerIdValid() {
    method isSoftwareFrozen (line 460) | private function isSoftwareFrozen() {
    method isCodeValid (line 478) | private function isCodeValid() {
    method returnJson (line 513) | private function returnJson($error, $msg) {
    method secretReturn (line 522) | private function secretReturn($data){
    method logReturnJson (line 533) | private function logReturnJson($a) {
    method searchIsOnline (line 548) | private function searchIsOnline() {

FILE: Application/Home/Controller/BatchoperaController.class.php
  class BatchoperaController (line 7) | class BatchoperaController extends BaseController {
    method index (line 8) | public function index(){

FILE: Application/Home/Controller/ChangesoftController.class.php
  class ChangesoftController (line 7) | class ChangesoftController extends BaseController {
    method index (line 10) | public function index() {
    method change (line 50) | private function change() {

FILE: Application/Home/Controller/ContactController.class.php
  class ContactController (line 7) | class ContactController extends BaseController {
    method index (line 9) | public function index() {
    method init (line 15) | private function init() {

FILE: Application/Home/Controller/CreatecodeController.class.php
  class CreatecodeController (line 7) | class CreatecodeController extends BaseController {
    method index (line 10) | public function index(){
    method init (line 16) | private function init() {
    method produceCode (line 29) | private function produceCode() {

FILE: Application/Home/Controller/ForgetController.class.php
  class ForgetController (line 10) | class ForgetController extends BaseController {
    method index (line 11) | public function index() {
    method init (line 16) | private function init() {
    method rand (line 64) | private function rand( $len = 6 ) {
    method sendEmail (line 73) | private function sendEmail($username, $password, $smtpemailto) {

FILE: Application/Home/Controller/IndexController.class.php
  class IndexController (line 7) | class IndexController extends BaseController {
    method index (line 10) | public function index(){
    method logout (line 17) | public function logout() {
    method init (line 21) | private function init() {
    method querySoftware (line 37) | private function querySoftware() {
    method loadNotice (line 47) | private function loadNotice() {
    method queryCode (line 68) | private function queryCode() {

FILE: Application/Home/Controller/LoginController.class.php
  class LoginController (line 8) | class LoginController extends BaseController {
    method index (line 9) | public function index() {
    method init (line 14) | private function init() {

FILE: Application/Home/Controller/ManagecodeController.class.php
  class ManagecodeController (line 8) | class ManagecodeController extends BaseController {
    method index (line 11) | public function index() {
    method codedetail (line 19) | public function codedetail() {
    method codedetailHandle (line 24) | private function codedetailHandle(){
    method unbind (line 61) | private function unbind() {
    method change (line 68) | private function change() {
    method init (line 81) | private function init() {
    method exportTxt (line 108) | private function exportTxt($op) {
    method deleteCode (line 142) | private function deleteCode(){
    method searchHandle (line 158) | private function searchHandle() {

FILE: Application/Home/Controller/ManagesoftController.class.php
  class ManagesoftController (line 6) | class ManagesoftController extends BaseController {
    method index (line 8) | public function index(){
    method deleteSoft (line 19) | private function deleteSoft(){

FILE: Application/Home/Controller/ModifypasswordController.class.php
  class ModifyPasswordController (line 6) | class ModifyPasswordController extends BaseController {
    method index (line 9) | public function index() {
    method init (line 14) | private function init() {

FILE: Application/Home/Controller/NoticeController.class.php
  class NoticeController (line 7) | class NoticeController extends BaseController {
    method index (line 9) | public function index(){
    method init (line 15) | private function init() {

FILE: Application/Home/Controller/RecommendController.class.php
  class RecommendController (line 6) | class RecommendController extends BaseController {
    method index (line 7) | public function index() {
    method init (line 13) | private function init() {
    method saveRule (line 27) | private function saveRule() {

FILE: Application/Home/Controller/RegController.class.php
  class RegController (line 8) | class RegController extends BaseController {
    method index (line 9) | public function index() {
    method reg (line 14) | private function reg() {

FILE: Application/Home/Controller/SupportController.class.php
  class SupportController (line 7) | class SupportController extends BaseController {
    method index (line 9) | public function index() {

FILE: Application/Home/Tool/HJCTool.class.php
  class HJCTool (line 4) | class HJCTool {
    method alertBack (line 5) | static public function alertBack($msg) {
    method alert (line 10) | static public function alert($msg) {
    method alertToLocation (line 15) | static public function alertToLocation($msg, $url) {
    method getRealIP (line 24) | static public function getRealIP() {
    method secret (line 39) | static public function secret($msg) {
    method strReplaceOnce (line 51) | static function strReplaceOnce($text, $word, $cword, $pos = 1) {

FILE: Application/Home/Tool/Secret.class.php
  class Secret (line 4) | class Secret {
    method privateEncode (line 6) | public function privateEncode($encryptData) {
    method createRandRegisterCode (line 49) | public function createRandRegisterCode() {

FILE: Application/Index/Controller/IndexController.class.php
  class IndexController (line 4) | class IndexController extends Controller {
    method index (line 5) | public function index(){

FILE: Application/Index/Controller/IntroController.class.php
  class IntroController (line 4) | class IntroController extends Controller {
    method index (line 5) | public function index(){

FILE: Application/Index/Controller/SdkController.class.php
  class SdkController (line 4) | class SdkController extends Controller {
    method index (line 5) | public function index(){

FILE: Application/Index/View/Sdk/phpwind/Application/Common/Controller/BaseController.class.php
  class BaseController (line 8) | class BaseController extends Controller {
    method getVerifyImg (line 15) | public function getVerifyImg() {
    method check_verify (line 26) | public function check_verify($code, $id = ''){
    method isEmpty (line 32) | protected function isEmpty($str){
    method __construct (line 36) | public function __construct() {
    method signout (line 66) | protected function signout(){
    method getUserId (line 72) | protected function getUserId(){
    method showTableAndPage (line 87) | protected function showTableAndPage($table_name, $sql) {
    method getSoftwareList (line 166) | protected function getSoftwareList() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Common/Des/DES.php
  class DES (line 3) | class DES
    method pkcs5_pad (line 5) | public static function pkcs5_pad ($text, $blocksize) {
    method pkcs5_unpad (line 10) | public static function pkcs5_unpad($text) {
  function encrypt (line 21) | function encrypt($key, $data) {
  function decrypt (line 33) | function decrypt($key, $data) {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Common/Email/email.class.php
  class smtp (line 2) | class smtp
    method smtp (line 31) | function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$p...
    method sendmail (line 61) | function sendmail($to, $from, $subject = "", $body = "", $mailtype, $c...
    method smtp_send (line 153) | function smtp_send($helo, $from, $to, $header, $body = "")
    method smtp_sockopen (line 223) | function smtp_sockopen($address)
    method smtp_sockopen_relay (line 239) | function smtp_sockopen_relay()
    method smtp_sockopen_mx (line 263) | function smtp_sockopen_mx($address)
    method smtp_message (line 306) | function smtp_message($header, $body)
    method smtp_eom (line 318) | function smtp_eom()
    method smtp_ok (line 330) | function smtp_ok()
    method smtp_putcmd (line 354) | function smtp_putcmd($cmd, $arg = "")
    method smtp_error (line 374) | function smtp_error($string)
    method log_write (line 384) | function log_write($message)
    method strip_comment (line 418) | function strip_comment($address)
    method get_address (line 436) | function get_address($address)
    method smtp_debug (line 448) | function smtp_debug($message)

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Common/Rsa/BigInteger.php
  class Math_BigInteger (line 191) | class Math_BigInteger {
    method Math_BigInteger (line 268) | function Math_BigInteger($x = 0, $base = 10)
    method toBytes (line 472) | function toBytes($twos_compliment = false)
    method toHex (line 569) | function toHex($twos_compliment = false)
    method toBits (line 596) | function toBits($twos_compliment = false)
    method toString (line 624) | function toString()
    method copy (line 675) | function copy()
    method __toString (line 695) | function __toString()
    method __clone (line 712) | function __clone()
    method __sleep (line 725) | function __sleep()
    method __wakeup (line 747) | function __wakeup()
    method add (line 781) | function add($y)
    method _add (line 815) | function _add($x_value, $x_negative, $y_value, $y_negative)
    method subtract (line 912) | function subtract($y)
    method _subtract (line 946) | function _subtract($x_value, $x_negative, $y_value, $y_negative)
    method multiply (line 1047) | function multiply($x)
    method _multiply (line 1081) | function _multiply($x_value, $x_negative, $y_value, $y_negative)
    method _regularMultiply (line 1118) | function _regularMultiply($x_value, $y_value)
    method _karatsuba (line 1182) | function _karatsuba($x_value, $y_value)
    method _square (line 1220) | function _square($x = false)
    method _baseSquare (line 1238) | function _baseSquare($value)
    method _karatsubaSquare (line 1277) | function _karatsubaSquare($value)
    method divide (line 1334) | function divide($y)
    method _divide_digit (line 1516) | function _divide_digit($dividend, $divisor)
    method modPow (line 1572) | function modPow($e, $n)
    method powMod (line 1671) | function powMod($e, $n)
    method _slidingWindow (line 1690) | function _slidingWindow($e, $n, $mode)
    method _reduce (line 1765) | function _reduce($x, $n, $mode)
    method _prepareReduce (line 1802) | function _prepareReduce($x, $n, $mode)
    method _multiplyReduce (line 1821) | function _multiplyReduce($x, $y, $n, $mode)
    method _squareReduce (line 1840) | function _squareReduce($x, $n, $mode)
    method _mod2 (line 1859) | function _mod2($n)
    method _barrett (line 1890) | function _barrett($n, $m)
    method _regularBarrett (line 1987) | function _regularBarrett($x, $n)
    method _multiplyLower (line 2060) | function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, ...
    method _montgomery (line 2139) | function _montgomery($x, $n)
    method _montgomeryMultiply (line 2187) | function _montgomeryMultiply($x, $y, $m)
    method _prepMontgomery (line 2233) | function _prepMontgomery($x, $n)
    method _modInverse67108864 (line 2270) | function _modInverse67108864($x) // 2**26 == 67108864
    method modInverse (line 2310) | function modInverse($n)
    method extendedGCD (line 2376) | function extendedGCD($n)
    method gcd (line 2507) | function gcd($n)
    method abs (line 2519) | function abs()
    method compare (line 2555) | function compare($y)
    method _compare (line 2578) | function _compare($x_value, $x_negative, $y_value, $y_negative)
    method equals (line 2613) | function equals($x)
    method setPrecision (line 2633) | function setPrecision($bits)
    method bitwise_and (line 2654) | function bitwise_and($x)
    method bitwise_or (line 2695) | function bitwise_or($x)
    method bitwise_xor (line 2735) | function bitwise_xor($x)
    method bitwise_not (line 2774) | function bitwise_not()
    method bitwise_rightShift (line 2813) | function bitwise_rightShift($shift)
    method bitwise_leftShift (line 2851) | function bitwise_leftShift($shift)
    method bitwise_leftRotate (line 2888) | function bitwise_leftRotate($shift)
    method bitwise_rightRotate (line 2932) | function bitwise_rightRotate($shift)
    method setRandomGenerator (line 2951) | function setRandomGenerator($generator)
    method random (line 2964) | function random($min = false, $max = false)
    method randomPrime (line 3028) | function randomPrime($min = false, $max = false, $timeout = false)
    method _make_odd (line 3129) | function _make_odd()
    method isPrime (line 3159) | function isPrime($t = false)
    method _lshift (line 3305) | function _lshift($shift)
    method _rshift (line 3340) | function _rshift($shift)
    method _normalize (line 3376) | function _normalize($result)
    method _trim (line 3424) | function _trim($value)
    method _array_repeat (line 3444) | function _array_repeat($input, $multiplier)
    method _base256_lshift (line 3459) | function _base256_lshift(&$x, $shift)
    method _base256_rshift (line 3488) | function _base256_rshift(&$x, $shift)
    method _int2bytes (line 3529) | function _int2bytes($x)
    method _bytes2int (line 3541) | function _bytes2int($x)

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Common/Rsa/rsa.php
  function rsa_encrypt (line 43) | function rsa_encrypt($message, $public_key, $modulus, $keylength)
  function rsa_decrypt (line 53) | function rsa_decrypt($message, $private_key, $modulus, $keylength)
  function rsa_sign (line 61) | function rsa_sign($message, $private_key, $modulus, $keylength)
  function rsa_verify (line 71) | function rsa_verify($message, $public_key, $modulus, $keylength)
  function rsa_kyp_verify (line 76) | function rsa_kyp_verify($message, $public_key, $modulus, $keylength)
  function pow_mod (line 114) | function pow_mod($p, $q, $r)
  function add_PKCS1_padding (line 163) | function add_PKCS1_padding($data, $isPublicKey, $blocksize)
  function remove_KYP_padding (line 223) | function remove_KYP_padding($data, $blocksize)
  function number_to_binary (line 254) | function number_to_binary($number, $blocksize)

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/AuthController.class.php
  class AuthController (line 13) | class AuthController extends BaseController {
    method __construct (line 21) | public function __construct() {
    method traceHttp (line 33) | private function traceHttp() {
    method beforeHandle (line 47) | private function beforeHandle() {
    method signin (line 84) | public function signin() {
    method valid (line 108) | public function valid() {
    method recommend (line 114) | private function recommend() {
    method reg (line 200) | private function reg() {
    method unbind (line 283) | private function unbind() {
    method check (line 312) | private function check() {
    method trial (line 377) | private function trial() {
    method offline (line 447) | private function offline() {
    method isComputerIdValid (line 454) | private function isComputerIdValid() {
    method isSoftwareFrozen (line 461) | private function isSoftwareFrozen() {
    method isCodeValid (line 479) | private function isCodeValid() {
    method returnJson (line 514) | private function returnJson($error, $msg) {
    method secretReturn (line 523) | private function secretReturn($data){
    method logReturnJson (line 534) | private function logReturnJson($a) {
    method searchIsOnline (line 549) | private function searchIsOnline() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/BatchoperaController.class.php
  class BatchoperaController (line 7) | class BatchoperaController extends BaseController {
    method index (line 8) | public function index(){

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/ChangesoftController.class.php
  class ChangesoftController (line 7) | class ChangesoftController extends BaseController {
    method index (line 10) | public function index() {
    method change (line 50) | private function change() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/ContactController.class.php
  class ContactController (line 7) | class ContactController extends BaseController {
    method index (line 9) | public function index() {
    method init (line 15) | private function init() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/CreatecodeController.class.php
  class CreatecodeController (line 7) | class CreatecodeController extends BaseController {
    method index (line 10) | public function index(){
    method init (line 16) | private function init() {
    method produceCode (line 29) | private function produceCode() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/ForgetController.class.php
  class ForgetController (line 10) | class ForgetController extends BaseController {
    method index (line 11) | public function index() {
    method init (line 16) | private function init() {
    method rand (line 64) | private function rand( $len = 6 ) {
    method sendEmail (line 73) | private function sendEmail($username, $password, $smtpemailto) {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/IndexController.class.php
  class IndexController (line 7) | class IndexController extends BaseController {
    method index (line 10) | public function index(){
    method logout (line 17) | public function logout() {
    method init (line 21) | private function init() {
    method querySoftware (line 37) | private function querySoftware() {
    method loadNotice (line 47) | private function loadNotice() {
    method queryCode (line 68) | private function queryCode() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/LoginController.class.php
  class LoginController (line 8) | class LoginController extends BaseController {
    method index (line 9) | public function index() {
    method init (line 14) | private function init() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/ManagecodeController.class.php
  class ManagecodeController (line 8) | class ManagecodeController extends BaseController {
    method index (line 11) | public function index() {
    method codedetail (line 19) | public function codedetail() {
    method codedetailHandle (line 24) | private function codedetailHandle(){
    method unbind (line 61) | private function unbind() {
    method change (line 68) | private function change() {
    method init (line 81) | private function init() {
    method exportTxt (line 108) | private function exportTxt($op) {
    method deleteCode (line 142) | private function deleteCode(){
    method searchHandle (line 158) | private function searchHandle() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/ManagesoftController.class.php
  class ManagesoftController (line 6) | class ManagesoftController extends BaseController {
    method index (line 8) | public function index(){
    method deleteSoft (line 19) | private function deleteSoft(){

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/ModifypasswordController.class.php
  class ModifyPasswordController (line 6) | class ModifyPasswordController extends BaseController {
    method index (line 9) | public function index() {
    method init (line 14) | private function init() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/NoticeController.class.php
  class NoticeController (line 7) | class NoticeController extends BaseController {
    method index (line 9) | public function index(){
    method init (line 15) | private function init() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/RecommendController.class.php
  class RecommendController (line 6) | class RecommendController extends BaseController {
    method index (line 7) | public function index() {
    method init (line 13) | private function init() {
    method saveRule (line 27) | private function saveRule() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Controller/RegController.class.php
  class RegController (line 8) | class RegController extends BaseController {
    method index (line 9) | public function index() {
    method reg (line 14) | private function reg() {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Tool/HJCTool.class.php
  class HJCTool (line 4) | class HJCTool {
    method alertBack (line 5) | static public function alertBack($msg) {
    method alert (line 10) | static public function alert($msg) {
    method alertToLocation (line 15) | static public function alertToLocation($msg, $url) {
    method getRealIP (line 24) | static public function getRealIP() {
    method secret (line 39) | static public function secret($msg) {
    method strReplaceOnce (line 51) | static function strReplaceOnce($text, $word, $cword, $pos = 1) {

FILE: Application/Index/View/Sdk/phpwind/Application/Home/Tool/Secret.class.php
  class Secret (line 4) | class Secret {
    method privateEncode (line 6) | public function privateEncode($encryptData) {
    method createRandRegisterCode (line 49) | public function createRandRegisterCode() {

FILE: Application/Index/View/Sdk/phpwind/Application/Index/Controller/IndexController.class.php
  class IndexController (line 4) | class IndexController extends Controller {
    method index (line 5) | public function index(){

FILE: Application/Index/View/Sdk/phpwind/Application/Index/Controller/IntroController.class.php
  class IntroController (line 4) | class IntroController extends Controller {
    method index (line 5) | public function index(){

FILE: Application/Index/View/Sdk/phpwind/Application/Index/Controller/SdkController.class.php
  class SdkController (line 4) | class SdkController extends Controller {
    method index (line 5) | public function index(){

FILE: Application/Index/View/Sdk/phpwind/Application/Runtime/common~runtime.php
  function C (line 1) | function C($name=null, $value=null,$default=null) { static $_config = ar...
  function load_config (line 1) | function load_config($file,$parse=CONF_PARSE){ $ext = pathinfo($file,PAT...
  function yaml_parse_file (line 1) | function yaml_parse_file($file) { vendor('spyc.Spyc'); return Spyc::YAML...
  function E (line 1) | function E($msg, $code=0) { throw new Think\Exception($msg, $code); }
  function G (line 1) | function G($start,$end='',$dec=4) { static $_info = array(); static $_me...
  function L (line 1) | function L($name=null, $value=null) { static $_lang = array(); if (empty...
  function trace (line 1) | function trace($value='[think]',$label='',$level='DEBUG',$record=false) ...
  function compile (line 1) | function compile($filename) { $content = php_strip_whitespace($filename)...
  function T (line 1) | function T($template='',$layer=''){ if(false === strpos($template,'://')...
  function I (line 1) | function I($name,$default='',$filter=null,$datas=null) { static $_PUT = ...
  function array_map_recursive (line 1) | function array_map_recursive($filter, $data) { $result = array(); foreac...
  function N (line 1) | function N($key, $step=0,$save=false) { static $_num = array(); if (!iss...
  function parse_name (line 1) | function parse_name($name, $type=0) { if ($type) { return ucfirst(preg_r...
  function require_cache (line 1) | function require_cache($filename) { static $_importFiles = array(); if (...
  function file_exists_case (line 1) | function file_exists_case($filename) { if (is_file($filename)) { if (IS_...
  function import (line 1) | function import($class, $baseUrl = '', $ext=EXT) { static $_file = array...
  function load (line 1) | function load($name, $baseUrl='', $ext='.php') { $name = str_replace(arr...
  function vendor (line 1) | function vendor($class, $baseUrl = '', $ext='.php') { if (empty($baseUrl...
  function D (line 1) | function D($name='',$layer='') { if(empty($name)) return new Think\Model...
  function M (line 1) | function M($name='', $tablePrefix='',$connection='') { static $_model = ...
  function parse_res_name (line 1) | function parse_res_name($name,$layer,$level=1){ if(strpos($name,'://')) ...
  function controller (line 1) | function controller($name,$path=''){ $layer = C('DEFAULT_C_LAYER'); if(!...
  function A (line 1) | function A($name,$layer='',$level=0) { static $_action = array(); $layer...
  function R (line 1) | function R($url,$vars=array(),$layer='') { $info = pathinfo($url); $acti...
  function tag (line 1) | function tag($tag, &$params=NULL) { \Think\Hook::listen($tag,$params); }
  function B (line 1) | function B($name, $tag='',&$params=NULL) { if(''==$tag){ $name .= 'Behav...
  function strip_whitespace (line 1) | function strip_whitespace($content) { $stripStr = ''; $tokens = token_ge...
  function throw_exception (line 1) | function throw_exception($msg, $type='Think\\Exception', $code=0) { Thin...
  function dump (line 1) | function dump($var, $echo=true, $label=null, $strict=true) { $label = ($...
  function layout (line 1) | function layout($layout) { if(false !== $layout) { C('LAYOUT_ON',true); ...
  function U (line 1) | function U($url='',$vars='',$suffix=true,$domain=false) { $info = parse_...
  function W (line 1) | function W($name, $data=array()) { return R($name,$data,'Widget'); }
  function is_ssl (line 1) | function is_ssl() { if(isset($_SERVER['HTTPS']) && ('1' == $_SERVER['HTT...
  function redirect (line 1) | function redirect($url, $time=0, $msg='') { $url = str_replace(array("\n...
  function S (line 1) | function S($name,$value='',$options=null) { static $cache = ''; if(is_ar...
  function F (line 1) | function F($name, $value='', $path=DATA_PATH) { static $_cache = array()...
  function to_guid_string (line 1) | function to_guid_string($mix) { if (is_object($mix)) { return spl_object...
  function xml_encode (line 1) | function xml_encode($data, $root='think', $item='item', $attr='', $id='i...
  function data_to_xml (line 1) | function data_to_xml($data, $item='item', $id='id') { $xml = $attr = '';...
  function session (line 1) | function session($name='',$value='') { $prefix = C('SESSION_PREFIX'); if...
  function cookie (line 1) | function cookie($name='', $value='', $option=null) { $config = array( 'p...
  function load_ext_file (line 1) | function load_ext_file($path) { if($files = C('LOAD_EXT_FILE')) { $files...
  function get_client_ip (line 1) | function get_client_ip($type = 0,$adv=false) { $type = $type ? 1 : 0; st...
  function send_http_status (line 1) | function send_http_status($code) { static $_status = array( 100 => 'Cont...
  function think_filter (line 1) | function think_filter(&$value){ if(preg_match('/^(EXP|NEQ|GT|EGT|LT|ELT|...
  function in_array_case (line 1) | function in_array_case($value,$array){ return in_array(strtolower($value...
  class Hook (line 1) | class Hook { static private $tags = array(); static public function add(...
    method add (line 1) | static public function add($tag,$name) { if(!isset(self::$tags[$tag]))...
    method import (line 1) | static public function import($data,$recursive=true) { if(!$recursive)...
    method get (line 1) | static public function get($tag='') { if(empty($tag)){ return self::$t...
    method listen (line 1) | static public function listen($tag, &$params=NULL) { if(isset(self::$t...
    method exec (line 1) | static public function exec($name, $tag,&$params=NULL) { if('Behavior'...
  class App (line 1) | class App { static public function init() { load_ext_file(COMMON_PATH); ...
    method init (line 1) | static public function init() { load_ext_file(COMMON_PATH); C('LOG_PAT...
    method exec (line 1) | static public function exec() { if(!preg_match('/^[A-Za-z](\/|\w)*$/',...
    method invokeAction (line 1) | public static function invokeAction($module,$action){ if(!preg_match('...
    method run (line 1) | static public function run() { Hook::listen('app_init'); App::init(); ...
    method logo (line 1) | static public function logo(){ return 'iVBORw0KGgoAAAANSUhEUgAAADAAAAA...
  class Dispatcher (line 1) | class Dispatcher { static public function dispatch() { $varPath = C('VAR...
    method dispatch (line 1) | static public function dispatch() { $varPath = C('VAR_PATHINFO'); $var...
    method getSpace (line 1) | static private function getSpace($var,$urlCase) { $space = !empty($_GE...
    method getController (line 1) | static private function getController($var,$urlCase) { $controller = (...
    method getAction (line 1) | static private function getAction($var,$urlCase) { $action = !empty($_...
    method getModule (line 1) | static private function getModule($var) { $module = (!empty($_GET[$var...
  class Route (line 1) | class Route { public static function check(){ $depr = C('URL_PATHINFO_DE...
    method check (line 1) | public static function check(){ $depr = C('URL_PATHINFO_DEPR'); $regx ...
    method checkUrlMatch (line 1) | private static function checkUrlMatch($regx,$rule) { $m1 = explode('/'...
    method parseUrl (line 1) | private static function parseUrl($url) { $var = array(); if(false !== ...
    method parseRule (line 1) | private static function parseRule($rule,$route,$regx) { $url = is_arra...
    method parseRegex (line 1) | private static function parseRegex($matches,$route,$regx) { $url = is_...
    method invokeRegx (line 1) | static private function invokeRegx($closure, $var = array()) { $reflec...
    method invokeRule (line 1) | static private function invokeRule($closure, $var = array()) { $reflec...
  class Controller (line 1) | abstract class Controller { protected $view = null; protected $config = ...
    method __construct (line 1) | public function __construct() { Hook::listen('action_begin',$this->con...
    method display (line 1) | protected function display($templateFile='',$charset='',$contentType='...
    method show (line 1) | protected function show($content,$charset='',$contentType='',$prefix='...
    method fetch (line 1) | protected function fetch($templateFile='',$content='',$prefix='') { re...
    method buildHtml (line 1) | protected function buildHtml($htmlfile='',$htmlpath='',$templateFile='...
    method theme (line 1) | protected function theme($theme){ $this->view->theme($theme); return $...
    method assign (line 1) | protected function assign($name,$value='') { $this->view->assign($name...
    method __set (line 1) | public function __set($name,$value) { $this->assign($name,$value); }
    method get (line 1) | public function get($name='') { return $this->view->get($name); }
    method __get (line 1) | public function __get($name) { return $this->get($name); }
    method __isset (line 1) | public function __isset($name) { return $this->get($name); }
    method __call (line 1) | public function __call($method,$args) { if( 0 === strcasecmp($method,A...
    method error (line 1) | protected function error($message='',$jumpUrl='',$ajax=false) { $this-...
    method success (line 1) | protected function success($message='',$jumpUrl='',$ajax=false) { $thi...
    method ajaxReturn (line 1) | protected function ajaxReturn($data,$type='',$json_option=0) { if(empt...
    method redirect (line 1) | protected function redirect($url,$params=array(),$delay=0,$msg='') { $...
    method dispatchJump (line 1) | private function dispatchJump($message,$status=1,$jumpUrl='',$ajax=fal...
    method __destruct (line 1) | public function __destruct() { Hook::listen('action_end'); }
  class View (line 1) | class View { protected $tVar = array(); protected $theme = ''; public fu...
    method assign (line 1) | public function assign($name,$value=''){ if(is_array($name)) { $this->...
    method get (line 1) | public function get($name=''){ if('' === $name) { return $this->tVar; ...
    method display (line 1) | public function display($templateFile='',$charset='',$contentType='',$...
    method render (line 1) | private function render($content,$charset='',$contentType=''){ if(empt...
    method fetch (line 1) | public function fetch($templateFile='',$content='',$prefix='') { if(em...
    method parseTemplate (line 1) | public function parseTemplate($template='') { if(is_file($template)) {...
    method getThemePath (line 1) | protected function getThemePath($module=MODULE_NAME){ $theme = $this->...
    method theme (line 1) | public function theme($theme){ $this->theme = $theme; return $this; }
    method getTemplateTheme (line 1) | private function getTemplateTheme() { if($this->theme) { $theme = $thi...
  class BuildLiteBehavior (line 1) | class BuildLiteBehavior { public function run(&$params) { if(!defined('B...
    method run (line 1) | public function run(&$params) { if(!defined('BUILD_LITE_FILE')) return...
    method buildArrayDefine (line 1) | private function buildArrayDefine($array) { $content = "\n"; foreach (...
  class ParseTemplateBehavior (line 1) | class ParseTemplateBehavior { public function run(&$_data){ $engine = st...
    method run (line 1) | public function run(&$_data){ $engine = strtolower(C('TMPL_ENGINE_TYPE...
    method checkCache (line 1) | protected function checkCache($tmplTemplateFile,$prefix='') { if (!C('...
    method checkContentCache (line 1) | protected function checkContentCache($tmplContent,$prefix='') { if(Sto...
  class ContentReplaceBehavior (line 1) | class ContentReplaceBehavior { public function run(&$content){ $content ...
    method run (line 1) | public function run(&$content){ $content = $this->templateContentRepla...
    method templateContentReplace (line 1) | protected function templateContentReplace($content) { $replace = array...

FILE: Application/Index/View/Sdk/phpwind/Public/js/common.js
  function create_code (line 1) | function create_code(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Common/functions.php
  function C (line 23) | function C($name=null, $value=null,$default=null) {
  function load_config (line 60) | function load_config($file,$parse=CONF_PARSE){
  function yaml_parse_file (line 88) | function yaml_parse_file($file) {
  function E (line 101) | function E($msg, $code=0) {
  function G (line 122) | function G($start,$end='',$dec=4) {
  function L (line 149) | function L($name=null, $value=null) {
  function trace (line 185) | function trace($value='[think]',$label='',$level='DEBUG',$record=false) {
  function compile (line 194) | function compile($filename) {
  function T (line 215) | function T($template='',$layer=''){
  function I (line 271) | function I($name,$default='',$filter=null,$datas=null) {
  function array_map_recursive (line 406) | function array_map_recursive($filter, $data) {
  function N (line 430) | function N($key, $step=0,$save=false) {
  function parse_name (line 453) | function parse_name($name, $type=0) {
  function require_cache (line 466) | function require_cache($filename) {
  function file_exists_case (line 484) | function file_exists_case($filename) {
  function import (line 502) | function import($class, $baseUrl = '', $ext=EXT) {
  function load (line 544) | function load($name, $baseUrl='', $ext='.php') {
  function vendor (line 568) | function vendor($class, $baseUrl = '', $ext='.php') {
  function D (line 580) | function D($name='',$layer='') {
  function M (line 612) | function M($name='', $tablePrefix='',$connection='') {
  function parse_res_name (line 633) | function parse_res_name($name,$layer,$level=1){
  function controller (line 667) | function controller($name,$path=''){
  function A (line 694) | function A($name,$layer='',$level=0) {
  function R (line 719) | function R($url,$vars=array(),$layer='') {
  function tag (line 740) | function tag($tag, &$params=NULL) {
  function B (line 751) | function B($name, $tag='',&$params=NULL) {
  function strip_whitespace (line 763) | function strip_whitespace($content) {
  function throw_exception (line 815) | function throw_exception($msg, $type='Think\\Exception', $code=0) {
  function dump (line 831) | function dump($var, $echo=true, $label=null, $strict=true) {
  function layout (line 861) | function layout($layout) {
  function U (line 881) | function U($url='',$vars='',$suffix=true,$domain=false) {
  function W (line 1038) | function W($name, $data=array()) {
  function is_ssl (line 1046) | function is_ssl() {
  function redirect (line 1062) | function redirect($url, $time=0, $msg='') {
  function S (line 1091) | function S($name,$value='',$options=null) {
  function F (line 1125) | function F($name, $value='', $path=DATA_PATH) {
  function to_guid_string (line 1161) | function to_guid_string($mix) {
  function xml_encode (line 1182) | function xml_encode($data, $root='think', $item='item', $attr='', $id='i...
  function data_to_xml (line 1206) | function data_to_xml($data, $item='item', $id='id') {
  function session (line 1226) | function session($name='',$value='') {
  function cookie (line 1350) | function cookie($name='', $value='', $option=null) {
  function load_ext_file (line 1425) | function load_ext_file($path) {
  function get_client_ip (line 1452) | function get_client_ip($type = 0,$adv=false) {
  function send_http_status (line 1481) | function send_http_status($code) {
  function think_filter (line 1538) | function think_filter(&$value){
  function in_array_case (line 1548) | function in_array_case($value,$array){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/AgentCheckBehavior.class.php
  class AgentCheckBehavior (line 15) | class AgentCheckBehavior {
    method run (line 16) | public function run(&$params) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/BorisBehavior.class.php
  class BorisBehavior (line 16) | class BorisBehavior {
    method run (line 17) | public function run(&$params) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/BrowserCheckBehavior.class.php
  class BrowserCheckBehavior (line 15) | class BrowserCheckBehavior {
    method run (line 16) | public function run(&$params) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/BuildLiteBehavior.class.php
  class BuildLiteBehavior (line 15) | class BuildLiteBehavior {
    method run (line 16) | public function run(&$params) {
    method buildArrayDefine (line 70) | private function buildArrayDefine($array) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/CheckActionRouteBehavior.class.php
  class CheckActionRouteBehavior (line 15) | class CheckActionRouteBehavior {
    method run (line 18) | public function run(&$config){
    method checkUrlMatch (line 53) | private function checkUrlMatch($regx,$rule) {
    method parseUrl (line 82) | private function parseUrl($url) {
    method parseRule (line 104) | private function parseRule($rule,$route,$regx) {
    method parseRegex (line 168) | private function parseRegex($matches,$route,$regx) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/CheckLangBehavior.class.php
  class CheckLangBehavior (line 15) | class CheckLangBehavior {
    method run (line 18) | public function run(&$params){
    method checkLanguage (line 29) | private function checkLanguage() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/ChromeShowPageTraceBehavior.class.php
  class ChromeShowPageTraceBehavior (line 35) | class ChromeShowPageTraceBehavior {
    method run (line 40) | public function run(&$params){
    method showTrace (line 49) | private function showTrace() {
    method showTime (line 138) | private function showTime() {
  function chrome_debug (line 148) | function chrome_debug($msg,$type='trace',$trace_level=1){
  class ChromePhp (line 188) | class ChromePhp{
    method __construct (line 295) | private function __construct()
    method getInstance (line 307) | public static function getInstance()
    method log (line 321) | public static function log()
    method warn (line 333) | public static function warn()
    method error (line 345) | public static function error()
    method group (line 356) | public static function group()
    method info (line 368) | public static function info()
    method groupCollapsed (line 379) | public static function groupCollapsed()
    method groupEnd (line 390) | public static function groupEnd()
    method table (line 401) | public static function table()
    method _log (line 413) | protected static function _log($type, array $args)
    method _convert (line 446) | protected function _convert($object)
    method _getPropertyKey (line 510) | protected function _getPropertyKey(ReflectionProperty $property)
    method _addRow (line 532) | protected function _addRow(array $logs, $backtrace, $type)
    method _writeHeader (line 555) | protected function _writeHeader($data)
    method _encode (line 566) | protected function _encode($data)
    method addSetting (line 578) | public function addSetting($key, $value)
    method addSettings (line 589) | public function addSettings(array $settings)
    method getSetting (line 602) | public function getSetting($key)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/ContentReplaceBehavior.class.php
  class ContentReplaceBehavior (line 15) | class ContentReplaceBehavior {
    method run (line 18) | public function run(&$content){
    method templateContentReplace (line 28) | protected function templateContentReplace($content) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/CronRunBehavior.class.php
  class CronRunBehavior (line 15) | class CronRunBehavior {
    method run (line 17) | public function run(&$params) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/FireShowPageTraceBehavior.class.php
  class FireShowPageTraceBehavior (line 34) | class FireShowPageTraceBehavior {
    method run (line 38) | public function run(&$params){
    method showTrace (line 46) | private function showTrace() {
    method showTime (line 113) | private function showTime() {
  function fb (line 124) | function fb()
  class FB (line 133) | class FB
    method setEnabled (line 142) | public static function setEnabled($Enabled)
    method getEnabled (line 154) | public static function getEnabled()
    method setObjectFilter (line 170) | public static function setObjectFilter($Class, $Filter)
    method setOptions (line 183) | public static function setOptions($Options)
    method getOptions (line 195) | public static function getOptions()
    method send (line 209) | public static function send()
    method group (line 227) | public static function group($Name, $Options=null)
    method groupEnd (line 239) | public static function groupEnd()
    method log (line 253) | public static function log($Object, $Label=null)
    method info (line 267) | public static function info($Object, $Label=null)
    method warn (line 281) | public static function warn($Object, $Label=null)
    method error (line 295) | public static function error($Object, $Label=null)
    method dump (line 309) | public static function dump($Key, $Variable)
    method trace (line 322) | public static function trace($Label)
    method table (line 336) | public static function table($Label, $Table)
  method __sleep (line 546) | public function __sleep()
  method getInstance (line 557) | public static function getInstance($AutoCreate = false)
  method init (line 570) | public static function init()
  method setInstance (line 581) | public static function setInstance($instance)
  method setLogToInsightConsole (line 592) | public function setLogToInsightConsole($console)
  method setEnabled (line 610) | public function setEnabled($Enabled)
  method getEnabled (line 620) | public function getEnabled()
  method setObjectFilter (line 634) | public function setObjectFilter($Class, $Filter)
  method setOptions (line 652) | public function setOptions($Options)
  method getOptions (line 662) | public function getOptions()
  method setOption (line 675) | public function setOption($Name, $Value)
  method getOption (line 690) | public function getOption($Name)
  method registerErrorHandler (line 705) | public function registerErrorHandler($throwErrorExceptions = false)
  method errorHandler (line 728) | public function errorHandler($errno, $errstr, $errfile, $errline, $errco...
  method registerExceptionHandler (line 753) | public function registerExceptionHandler()
  method exceptionHandler (line 766) | function exceptionHandler($Exception)
  method registerAssertionHandler (line 788) | public function registerAssertionHandler($convertAssertionErrorsToExcept...
  method assertionHandler (line 809) | public function assertionHandler($file, $line, $code)
  method group (line 838) | public function group($Name, $Options = null)
  method groupEnd (line 863) | public function groupEnd()
  method log (line 877) | public function log($Object, $Label = null, $Options = array())
  method info (line 891) | public function info($Object, $Label = null, $Options = array())
  method warn (line 905) | public function warn($Object, $Label = null, $Options = array())
  method error (line 919) | public function error($Object, $Label = null, $Options = array())
  method dump (line 933) | public function dump($Key, $Variable, $Options = array())
  method trace (line 955) | public function trace($Label)
  method table (line 969) | public function table($Label, $Table, $Options = array())
  method to (line 979) | public static function to()
  method plugin (line 994) | public static function plugin()
  method detectClientExtension (line 1009) | public function detectClientExtension()
  method fb (line 1032) | public function fb($Object)
  method _standardizePath (line 1349) | protected function _standardizePath($Path)
  method _escapeTrace (line 1360) | protected function _escapeTrace($Trace)
  method _escapeTraceFile (line 1380) | protected function _escapeTraceFile($File)
  method headersSent (line 1399) | protected function headersSent(&$Filename, &$Linenum)
  method setHeader (line 1410) | protected function setHeader($Name, $Value)
  method getUserAgent (line 1420) | protected function getUserAgent()
  method getAllRequestHeaders (line 1431) | public static function getAllRequestHeaders() {
  method getRequestHeader (line 1456) | protected function getRequestHeader($Name)
  method newException (line 1471) | protected function newException($Message)
  method jsonEncode (line 1484) | public function jsonEncode($Object, $skipObjectEncode = false)
  method encodeTable (line 1505) | protected function encodeTable($Table)
  function json_name_value (line 2043) | function json_name_value($name, $value)
  function setProcessorUrl (line 2067) | function setProcessorUrl($URL)
  function setRendererUrl (line 2075) | function setRendererUrl($URL)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/ParseTemplateBehavior.class.php
  class ParseTemplateBehavior (line 17) | class ParseTemplateBehavior {
    method run (line 20) | public function run(&$_data){
    method checkCache (line 57) | protected function checkCache($tmplTemplateFile,$prefix='') {
    method checkContentCache (line 88) | protected function checkContentCache($tmplContent,$prefix='') {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/ReadHtmlCacheBehavior.class.php
  class ReadHtmlCacheBehavior (line 16) | class ReadHtmlCacheBehavior {
    method run (line 18) | public function run(&$params){
    method requireHtmlCache (line 31) | static private function requireHtmlCache() {
    method checkHTMLCache (line 101) | static public function checkHTMLCache($cacheFile='',$cacheTime='') {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/RobotCheckBehavior.class.php
  class RobotCheckBehavior (line 16) | class RobotCheckBehavior {
    method run (line 18) | public function run(&$params) {
    method isRobot (line 26) | static private function isRobot() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/ShowPageTraceBehavior.class.php
  class ShowPageTraceBehavior (line 16) | class ShowPageTraceBehavior {
    method run (line 20) | public function run(&$params){
    method showTrace (line 30) | private function showTrace() {
    method showTime (line 112) | private function showTime() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/ShowRuntimeBehavior.class.php
  class ShowRuntimeBehavior (line 15) | class ShowRuntimeBehavior {
    method run (line 18) | public function run(&$content){
    method showTime (line 39) | private function showTime() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/TokenBuildBehavior.class.php
  class TokenBuildBehavior (line 15) | class TokenBuildBehavior {
    method run (line 17) | public function run(&$content){
    method getToken (line 36) | private function getToken(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/UpgradeNoticeBehavior.class.php
  class UpgradeNoticeBehavior (line 35) | class UpgradeNoticeBehavior {
    method run (line 42) | public function run(&$params) {
    method send_sms (line 65) | private function send_sms($msg) {
    method send (line 92) | private function send($url, $params = array() , $headers = array()) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Behavior/WriteHtmlCacheBehavior.class.php
  class WriteHtmlCacheBehavior (line 16) | class WriteHtmlCacheBehavior {
    method run (line 19) | public function run(&$content) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Net/Http.class.php
  class Http (line 17) | class Http {
    method curlDownload (line 26) | static public function curlDownload($remote,$local) {
    method fsockopenDownload (line 52) | static public function fsockopenDownload($url, $conf = array()) {
    method download (line 145) | static public function download ($filename, $showname='',$content='',$...
    method getHeaderInfo (line 189) | static function getHeaderInfo($header='',$echo=true) {
    method sendHttpStatus (line 213) | static function sendHttpStatus($code) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Net/IpLocation.class.php
  class IpLocation (line 17) | class IpLocation {
    method __construct (line 52) | public function __construct($filename = "UTFWry.dat") {
    method getlong (line 67) | private function getlong() {
    method getlong3 (line 79) | private function getlong3() {
    method packip (line 92) | private function packip($ip) {
    method getstring (line 105) | private function getstring($data = "") {
    method getarea (line 120) | private function getarea() {
    method getlocation (line 145) | public function getlocation($ip='') {
    method __destruct (line 226) | public function __destruct() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Util/ArrayList.class.php
  class ArrayList (line 19) | class ArrayList implements \IteratorAggregate {
    method __construct (line 33) | public function __construct($elements = array()) {
    method getIterator (line 44) | public function getIterator() {
    method add (line 54) | public function add($element) {
    method unshift (line 59) | public function unshift($element) {
    method pop (line 64) | public function pop() {
    method addAll (line 74) | public function addAll($list) {
    method clear (line 87) | public function clear() {
    method contains (line 97) | public function contains($element) {
    method get (line 107) | public function get($index) {
    method indexOf (line 118) | public function indexOf($element) {
    method isEmpty (line 127) | public function isEmpty() {
    method lastIndexOf (line 137) | public function lastIndexOf($element) {
    method toJson (line 143) | public function toJson() {
    method remove (line 154) | public function remove($index) {
    method removeRange (line 166) | public function removeRange($offset , $length) {
    method unique (line 174) | public function unique() {
    method range (line 184) | public function range($offset,$length=null) {
    method set (line 196) | public function set($index, $element) {
    method size (line 207) | public function size() {
    method toArray (line 216) | public function toArray() {
    method ksort (line 221) | public function ksort() {
    method asort (line 226) | public function asort() {
    method rsort (line 231) | public function rsort() {
    method natsort (line 236) | public function natsort() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Util/CodeSwitch.class.php
  class CodeSwitch (line 12) | class CodeSwitch {
    method error (line 18) | static private function error($msg) {
    method info (line 22) | static private function info($info) {
    method DetectAndSwitch (line 35) | static function DetectAndSwitch($filename,$out_charset) {
    method searchdir (line 138) | static function searchdir($path,$mode = "FULL",$file_types = array(".h...
    method CodingSwitch (line 186) | static function CodingSwitch($app = "./",$charset='UTF-8',$mode = "FIL...
    method getError (line 193) | static public function getError() {
    method getInfo (line 197) | static public function getInfo() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Util/Date.class.php
  class Date (line 21) | class Date {
    method __construct (line 138) | public function __construct($date='') {
    method parse (line 152) | public function parse($date) {
    method valid (line 187) | public function valid($date) {
    method setDate (line 198) | public function setDate($date) {
    method format (line 227) | public function format($format = "%Y-%m-%d %H:%M:%S") {
    method isLeapYear (line 237) | public function isLeapYear($year='') {
    method dateDiff (line 258) | public function dateDiff($date, $elaps = "d") {
    method timeDiff (line 298) | public function timeDiff( $time ,$precision=false) {
    method getDayOfWeek (line 326) | public function getDayOfWeek($n){
    method firstDayOfWeek (line 336) | public function firstDayOfWeek() {
    method firstDayOfMonth (line 345) | public function firstDayOfMonth() {
    method firstDayOfYear (line 354) | public function firstDayOfYear() {
    method lastDayOfWeek (line 363) | public function lastDayOfWeek() {
    method lastDayOfMonth (line 372) | public function lastDayOfMonth() {
    method lastDayOfYear (line 381) | public function lastDayOfYear() {
    method maxDayOfMonth (line 390) | public function maxDayOfMonth() {
    method dateAdd (line 413) | public function dateAdd($number = 0, $interval = "d") {
    method numberToCh (line 482) | public function  numberToCh($number) {
    method yearToCh (line 510) | public function  yearToCh( $yearStr ,$flag=false ) {
    method magicInfo (line 528) | public function magicInfo($type) {
    method __toString (line 566) | public function __toString() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Util/Rbac.class.php
  class Rbac (line 75) | class Rbac {
    method authenticate (line 77) | static public function authenticate($map,$model='') {
    method saveAccessList (line 84) | static function saveAccessList($authId=null) {
    method getRecordAccessList (line 94) | static function getRecordAccessList($authId=null,$module='') {
    method checkAccess (line 103) | static function checkAccess() {
    method checkLogin (line 138) | static public function checkLogin() {
    method AccessDecision (line 158) | static public function AccessDecision($appName=MODULE_NAME) {
    method getAccessList (line 201) | static public function getAccessList($authId) {
    method getModuleAccessList (line 269) | static public function getModuleAccessList($authId,$module) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Util/Stack.class.php
  class Stack (line 20) | class Stack extends ArrayList {
    method __construct (line 27) | public function __construct($values = array()) {
    method peek (line 36) | public function peek() {
    method push (line 46) | public function push($value) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Org/Util/String.class.php
  function uuid (line 19) | function uuid() {
  function keyGen (line 36) | function keyGen() {
  function isUtf8 (line 45) | function isUtf8($str) {
  function msubstr (line 82) | function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
  function randString (line 107) | function randString($len=6,$type='',$addChars='') {
  function buildCountRand (line 153) | function buildCountRand ($number,$length=4,$mode=1) {
  function buildFormatRand (line 182) | function buildFormatRand($format,$number=1) {
  function randNumber (line 215) | function randNumber ($min, $max) {
  function autoCharset (line 220) | function autoCharset($string, $from='gbk', $to='utf-8') {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/App.class.php
  class App (line 15) | class App {
    method init (line 22) | static public function init() {
    method exec (line 62) | static public function exec() {
    method invokeAction (line 118) | public static function invokeAction($module,$action){
    method run (line 192) | static public function run() {
    method logo (line 210) | static public function logo(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Auth.class.php
  class Auth (line 69) | class Auth{
    method __construct (line 81) | public function __construct() {
    method check (line 101) | public function check($name, $uid, $type=1, $mode='url', $relation='or...
    method getGroups (line 147) | public function getGroups($uid) {
    method getAuthList (line 165) | protected function getAuthList($uid,$type) {
    method getUserInfo (line 223) | protected function getUserInfo($uid) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Behavior.class.php
  class Behavior (line 15) | abstract class Behavior {
    method run (line 22) | abstract public function run(&$params);

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Build.class.php
  class Build (line 15) | class Build {
    method checkDir (line 33) | static public function checkDir($module){
    method buildAppDir (line 44) | static public function buildAppDir($module) {
    method buildRuntime (line 103) | static public function buildRuntime() {
    method buildController (line 118) | static public function buildController($module,$controller='Index') {
    method buildModel (line 134) | static public function buildModel($module,$model) {
    method buildDirSecure (line 150) | static public function buildDirSecure($dirs=array()) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache.class.php
  class Cache (line 15) | class Cache {
    method connect (line 38) | public function connect($type='',$options=array()) {
    method getInstance (line 54) | static function getInstance($type='',$options=array()) {
    method __get (line 64) | public function __get($name) {
    method __set (line 68) | public function __set($name,$value) {
    method __unset (line 72) | public function __unset($name) {
    method setOptions (line 75) | public function setOptions($name,$value) {
    method getOptions (line 79) | public function getOptions($name) {
    method queue (line 90) | protected function queue($key) {
    method __call (line 118) | public function __call($method,$args){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Apachenote.class.php
  class Apachenote (line 17) | class Apachenote extends Cache {
    method __construct (line 24) | public function __construct($options=array()) {
    method get (line 48) | public function get($name) {
    method set (line 69) | public function set($name, $value) {
    method rm (line 95) | public function rm($name) {
    method close (line 109) | private function close() {
    method open (line 118) | private function open() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Apc.class.php
  class Apc (line 17) | class Apc extends Cache {
    method __construct (line 24) | public function __construct($options=array()) {
    method get (line 39) | public function get($name) {
    method set (line 52) | public function set($name, $value, $expire = null) {
    method rm (line 73) | public function rm($name) {
    method clear (line 82) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Db.class.php
  class Db (line 24) | class Db extends Cache {
    method __construct (line 31) | public function __construct($options=array()) {
    method get (line 50) | public function get($name) {
    method set (line 82) | public function set($name, $value,$expire=null) {
    method rm (line 124) | public function rm($name) {
    method clear (line 134) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Eaccelerator.class.php
  class Eaccelerator (line 17) | class Eaccelerator extends Cache {
    method __construct (line 24) | public function __construct($options=array()) {
    method get (line 36) | public function get($name) {
    method set (line 49) | public function set($name, $value, $expire = null) {
    method rm (line 73) | public function rm($name) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/File.class.php
  class File (line 17) | class File extends Cache {
    method __construct (line 23) | public function __construct($options=array()) {
    method init (line 40) | private function init() {
    method filename (line 53) | private function filename($name) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Memcache.class.php
  class Memcache (line 17) | class Memcache extends Cache {
    method __construct (line 24) | function __construct($options=array()) {
    method get (line 53) | public function get($name) {
    method set (line 66) | public function set($name, $value, $expire = null) {
    method rm (line 88) | public function rm($name, $ttl = false) {
    method clear (line 100) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Memcached.class.php
  class Memcached (line 20) | class Memcached extends Cache {
    method __construct (line 26) | public function __construct($options = array()) {
    method get (line 52) | public function get($name) {
    method set (line 65) | public function set($name, $value, $expire = null) {
    method rm (line 87) | public function rm($name, $ttl = false) {
    method clear (line 99) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Memcachesae.class.php
  class Memcachesae (line 22) | class Memcachesae extends Cache {
    method __construct (line 29) | function __construct($options=array()) {
    method isConnected (line 51) | private function isConnected() {
    method get (line 61) | public function get($name) {
    method set (line 74) | public function set($name, $value, $expire = null) {
    method rm (line 96) | public function rm($name, $ttl = false) {
    method clear (line 108) | public function clear() {
    method queue (line 119) | protected function queue($key) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Redis.class.php
  class Redis (line 19) | class Redis extends Cache {
    method __construct (line 25) | public function __construct($options=array()) {
    method get (line 53) | public function get($name) {
    method set (line 68) | public function set($name, $value, $expire = null) {
    method rm (line 94) | public function rm($name) {
    method clear (line 103) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Shmop.class.php
  class Shmop (line 17) | class Shmop extends Cache {
    method __construct (line 24) | public function __construct($options=array()) {
    method get (line 48) | public function get($name = false) {
    method set (line 81) | public function set($name, $value) {
    method rm (line 109) | public function rm($name) {
    method _ftok (line 125) | private function _ftok($project) {
    method _write (line 144) | private function _write(&$val, &$lh) {
    method _lock (line 162) | private function _lock() {
    method _unlock (line 179) | private function _unlock(&$fp) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Sqlite.class.php
  class Sqlite (line 17) | class Sqlite extends Cache {
    method __construct (line 24) | public function __construct($options=array()) {
    method get (line 49) | public function get($name) {
    method set (line 73) | public function set($name, $value,$expire=null) {
    method rm (line 102) | public function rm($name) {
    method clear (line 114) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Wincache.class.php
  class Wincache (line 17) | class Wincache extends Cache {
    method __construct (line 24) | public function __construct($options=array()) {
    method get (line 39) | public function get($name) {
    method set (line 53) | public function set($name, $value,$expire=null) {
    method rm (line 75) | public function rm($name) {
    method clear (line 84) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Cache/Driver/Xcache.class.php
  class Xcache (line 17) | class Xcache extends Cache {
    method __construct (line 24) | public function __construct($options=array()) {
    method get (line 39) | public function get($name) {
    method set (line 56) | public function set($name, $value,$expire=null) {
    method rm (line 78) | public function rm($name) {
    method clear (line 87) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Controller.class.php
  class Controller (line 15) | abstract class Controller {
    method __construct (line 35) | public function __construct() {
    method display (line 55) | protected function display($templateFile='',$charset='',$contentType='...
    method show (line 68) | protected function show($content,$charset='',$contentType='',$prefix='...
    method fetch (line 82) | protected function fetch($templateFile='',$content='',$prefix='') {
    method buildHtml (line 95) | protected function buildHtml($htmlfile='',$htmlpath='',$templateFile='...
    method theme (line 109) | protected function theme($theme){
    method assign (line 121) | protected function assign($name,$value='') {
    method __set (line 126) | public function __set($name,$value) {
    method get (line 136) | public function get($name='') {
    method __get (line 140) | public function __get($name) {
    method __isset (line 150) | public function __isset($name) {
    method __call (line 161) | public function __call($method,$args) {
    method error (line 186) | protected function error($message='',$jumpUrl='',$ajax=false) {
    method success (line 198) | protected function success($message='',$jumpUrl='',$ajax=false) {
    method ajaxReturn (line 210) | protected function ajaxReturn($data,$type='',$json_option=0) {
    method redirect (line 245) | protected function redirect($url,$params=array(),$delay=0,$msg='') {
    method dispatchJump (line 261) | private function dispatchJump($message,$status=1,$jumpUrl='',$ajax=fal...
    method __destruct (line 301) | public function __destruct() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Controller/HproseController.class.php
  class HproseController (line 15) | class HproseController {
    method __construct (line 27) | public function __construct() {
    method __call (line 60) | public function __call($method,$args){}

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Controller/JsonRpcController.class.php
  class JsonRpcController (line 15) | class JsonRpcController {
    method __construct (line 21) | public function __construct() {
    method __call (line 38) | public function __call($method,$args){}

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Controller/RestController.class.php
  class RestController (line 17) | class RestController extends Controller {
    method __construct (line 41) | public function __construct() {
    method __call (line 70) | public function __call($method,$args) {
    method getAcceptType (line 97) | protected function getAcceptType(){
    method sendHttpStatus (line 127) | protected function sendHttpStatus($code) {
    method encodeData (line 191) | protected function encodeData($data,$type='') {
    method setContentType (line 214) | public function setContentType($type, $charset=''){
    method response (line 230) | protected function response($data,$type='',$code=200) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Controller/RpcController.class.php
  class RpcController (line 15) | class RpcController {
    method __construct (line 24) | public function __construct() {
    method __call (line 55) | public function __call($method,$args){}

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Controller/YarController.class.php
  class YarController (line 15) | class YarController {
    method __construct (line 21) | public function __construct() {
    method __call (line 41) | public function __call($method,$args){}

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Crypt.class.php
  class Crypt (line 15) | class Crypt {
    method init (line 19) | public static function init($type=''){
    method encrypt (line 32) | public static function encrypt($data,$key,$expire=0){
    method decrypt (line 46) | public static function decrypt($data,$key){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Crypt/Driver/Base64.class.php
  class Base64 (line 15) | class Base64 {
    method encrypt (line 24) | public static function encrypt($data,$key,$expire=0) {
    method decrypt (line 49) | public static function decrypt($data,$key) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Crypt/Driver/Crypt.class.php
  class Crypt (line 19) | class Crypt {
    method encrypt (line 28) | public static function encrypt($str,$key,$expire=0){
    method decrypt (line 51) | public static function decrypt($str,$key) {
    method ed (line 70) | static private function ed($str,$key) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Crypt/Driver/Des.class.php
  method encrypt (line 28) | public static function encrypt($str, $key,$expire=0) {
  method decrypt (line 43) | public static function decrypt($str, $key) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Crypt/Driver/Think.class.php
  class Think (line 15) | class Think {
    method encrypt (line 24) | public static function encrypt($data,$key,$expire=0) {
    method decrypt (line 51) | public static function decrypt($data,$key) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Crypt/Driver/Xxtea.class.php
  class Xxtea (line 15) | class Xxtea {
    method encrypt (line 24) | public static function encrypt($str, $key,$expire=0) {
    method decrypt (line 57) | public static function decrypt($str, $key) {
    method long2str (line 88) | private static function long2str($v, $w) {
    method str2long (line 101) | private static function str2long($s, $w) {
    method int32 (line 110) | private static function int32($n) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db.class.php
  class Db (line 17) | class Db {
    method getInstance (line 29) | static public function getInstance($config=array()) {
    method parseConfig (line 56) | static private function parseConfig($config){
    method parseDsn (line 109) | static private function parseDsn($dsnStr) {
    method __callStatic (line 134) | static public function __callStatic($method, $params){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver.class.php
  class Driver (line 18) | abstract class Driver {
    method __construct (line 79) | public function __construct($config=''){
    method connect (line 92) | public function connect($config='',$linkNum=0,$autoConnection=false) {
    method parseDsn (line 122) | protected function parseDsn($config){}
    method free (line 128) | public function free() {
    method query (line 139) | public function query($str,$fetchSql=false) {
    method execute (line 192) | public function execute($str,$fetchSql=false) {
    method startTrans (line 247) | public function startTrans() {
    method commit (line 263) | public function commit() {
    method rollback (line 280) | public function rollback() {
    method getResult (line 297) | private function getResult() {
    method getQueryTimes (line 310) | public function getQueryTimes($execute=false){
    method getExecuteTimes (line 319) | public function getExecuteTimes(){
    method close (line 327) | public function close() {
    method error (line 337) | public function error() {
    method parseLock (line 361) | protected function parseLock($lock=false) {
    method parseSet (line 371) | protected function parseSet($data) {
    method bindParam (line 397) | protected function bindParam($name,$value){
    method parseKey (line 407) | protected function parseKey(&$key) {
    method parseValue (line 417) | protected function parseValue($value) {
    method parseField (line 438) | protected function parseField($fields) {
    method parseTable (line 466) | protected function parseTable($tables) {
    method parseWhere (line 489) | protected function parseWhere($where) {
    method parseWhereItem (line 547) | protected function parseWhereItem($key,$val) {
    method parseThinkWhere (line 624) | protected function parseThinkWhere($key,$val) {
    method parseLimit (line 659) | protected function parseLimit($limit) {
    method parseJoin (line 669) | protected function parseJoin($join) {
    method parseOrder (line 683) | protected function parseOrder($order) {
    method parseGroup (line 704) | protected function parseGroup($group) {
    method parseHaving (line 714) | protected function parseHaving($having) {
    method parseComment (line 724) | protected function parseComment($comment) {
    method parseDistinct (line 734) | protected function parseDistinct($distinct) {
    method parseUnion (line 744) | protected function parseUnion($union) {
    method parseBind (line 764) | protected function parseBind($bind){
    method parseForce (line 774) | protected function parseForce($index) {
    method parseDuplicate (line 786) | protected function parseDuplicate($duplicate){
    method insert (line 798) | public function insert($data,$options=array(),$replace=false) {
    method insertAll (line 836) | public function insertAll($dataSet,$options=array(),$replace=false) {
    method selectInsert (line 874) | public function selectInsert($fields,$table,$options=array()) {
    method update (line 891) | public function update($data,$options) {
    method delete (line 915) | public function delete($options=array()) {
    method select (line 942) | public function select($options=array()) {
    method buildSelectSql (line 956) | public function buildSelectSql($options=array()) {
    method parseSql (line 975) | public function parseSql($sql,$options=array()){
    method getLastSql (line 1002) | public function getLastSql($model='') {
    method getLastInsID (line 1011) | public function getLastInsID() {
    method getError (line 1020) | public function getError() {
    method escapeString (line 1030) | public function escapeString($str) {
    method setModel (line 1040) | public function setModel($model){
    method debug (line 1049) | protected function debug($start) {
    method initConnect (line 1069) | protected function initConnect($master=true) {
    method multiConnect (line 1084) | protected function multiConnect($master=false) {
    method __destruct (line 1141) | public function __destruct() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver/Firebird.class.php
  class Firebird (line 17) | class Firebird extends Driver{
    method parseDsn (line 26) | protected function parseDsn($config){
    method execute (line 38) | public function execute($str,$fetchSql=false) {
    method getFields (line 82) | public function getFields($tableName) {
    method getTables (line 113) | public function getTables($dbName='') {
    method escapeString (line 129) | public function escapeString($str) {
    method parseLimit (line 139) | public function parseLimit($limit) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver/Mongo.class.php
  class Mongo (line 18) | class Mongo extends Driver {
    method __construct (line 32) | public function __construct($config=''){
    method connect (line 48) | public function connect($config='',$linkNum=0) {
    method switchCollection (line 69) | public function switchCollection($collection,$db='',$master=true){
    method free (line 99) | public function free() {
    method command (line 109) | public function command($command=array(), $options=array()) {
    method execute (line 146) | public function execute($code,$args=array()) {
    method close (line 164) | public function close() {
    method error (line 179) | public function error() {
    method insert (line 193) | public function insert($data,$options=array(),$replace=false) {
    method insertAll (line 229) | public function insertAll($dataList,$options=array()) {
    method getMongoNextId (line 252) | public function getMongoNextId($pk) {
    method update (line 274) | public function update($data,$options) {
    method delete (line 309) | public function delete($options=array()) {
    method clear (line 336) | public function clear($options=array()){
    method select (line 362) | public function select($options=array()) {
    method find (line 427) | public function find($options=array()){
    method count (line 439) | public function count($options=array()){
    method group (line 462) | public function group($keys,$initial,$reduce,$options=array()){
    method getFields (line 507) | public function getFields($collection=''){
    method getTables (line 541) | public function getTables(){
    method getDB (line 562) | public function getDB(){
    method getCollection (line 571) | public function getCollection(){
    method parseSet (line 581) | protected function parseSet($data) {
    method parseOrder (line 615) | protected function parseOrder($order) {
    method parseLimit (line 638) | protected function parseLimit($limit) {
    method parseField (line 653) | public function parseField($fields){
    method parseWhere (line 681) | public function parseWhere($where){
    method parseThinkWhere (line 737) | protected function parseThinkWhere($key,$val) {
    method parseWhereItem (line 777) | protected function parseWhereItem($key,$val) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver/Mysql.class.php
  class Mysql (line 18) | class Mysql extends Driver{
    method parseDsn (line 26) | protected function parseDsn($config){
    method getFields (line 46) | public function getFields($tableName) {
    method getTables (line 80) | public function getTables($dbName='') {
    method parseKey (line 96) | protected function parseKey(&$key) {
    method insertAll (line 112) | public function insertAll($dataSet,$options=array(),$replace=false) {
    method parseDuplicate (line 150) | protected function parseDuplicate($duplicate){
    method procedure (line 195) | public function procedure($str,$fetchSql=false) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver/Oracle.class.php
  class Oracle (line 18) | class Oracle extends Driver{
    method parseDsn (line 29) | protected function parseDsn($config){
    method execute (line 44) | public function execute($str,$fetchSql=false) {
    method getFields (line 97) | public function getFields($tableName) {
    method getTables (line 123) | public function getTables($dbName='') {
    method escapeString (line 138) | public function escapeString($str) {
    method parseLimit (line 147) | public function parseLimit($limit) {
    method parseLock (line 164) | protected function parseLock($lock=false) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver/Pgsql.class.php
  class Pgsql (line 18) | class Pgsql extends Driver{
    method parseDsn (line 26) | protected function parseDsn($config){
    method getFields (line 39) | public function getFields($tableName) {
    method getTables (line 63) | public function getTables($dbName='') {
    method parseLimit (line 78) | public function parseLimit($limit) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver/Sqlite.class.php
  class Sqlite (line 18) | class Sqlite extends Driver {
    method parseDsn (line 26) | protected function parseDsn($config){
    method getFields (line 36) | public function getFields($tableName) {
    method getTables (line 60) | public function getTables($dbName='') {
    method escapeString (line 77) | public function escapeString($str) {
    method parseLimit (line 86) | public function parseLimit($limit) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Driver/Sqlsrv.class.php
  class Sqlsrv (line 19) | class Sqlsrv extends Driver{
    method parseDsn (line 35) | protected function parseDsn($config){
    method getFields (line 48) | public function getFields($tableName) {
    method getTables (line 78) | public function getTables($dbName='') {
    method parseOrder (line 96) | protected function parseOrder($order) {
    method parseKey (line 106) | protected function parseKey(&$key) {
    method parseLimit (line 120) | public function parseLimit($limit) {
    method update (line 137) | public function update($data,$options) {
    method delete (line 155) | public function delete($options=array()) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Db/Lite.class.php
  class Lite (line 18) | class Lite {
    method __construct (line 77) | public function __construct($config=''){
    method connect (line 90) | public function connect($config='',$linkNum=0) {
    method parseDsn (line 114) | protected function parseDsn($config){}
    method free (line 120) | public function free() {
    method query (line 131) | public function query($str,$bind=array()) {
    method execute (line 173) | public function execute($str,$bind=array()) {
    method startTrans (line 217) | public function startTrans() {
    method commit (line 233) | public function commit() {
    method rollback (line 250) | public function rollback() {
    method getResult (line 267) | private function getResult() {
    method getQueryTimes (line 280) | public function getQueryTimes($execute=false){
    method getExecuteTimes (line 289) | public function getExecuteTimes(){
    method close (line 297) | public function close() {
    method error (line 307) | public function error() {
    method getLastSql (line 332) | public function getLastSql($model='') {
    method getLastInsID (line 341) | public function getLastInsID() {
    method getError (line 350) | public function getError() {
    method escapeString (line 360) | public function escapeString($str) {
    method setModel (line 370) | public function setModel($model){
    method debug (line 379) | protected function debug($start) {
    method initConnect (line 399) | protected function initConnect($master=true) {
    method multiConnect (line 414) | protected function multiConnect($master=false) {
    method __destruct (line 458) | public function __destruct() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Dispatcher.class.php
  class Dispatcher (line 16) | class Dispatcher {
    method dispatch (line 23) | static public function dispatch() {
    method getSpace (line 256) | static private function getSpace($var,$urlCase) {
    method getController (line 265) | static private function getController($var,$urlCase) {
    method getAction (line 290) | static private function getAction($var,$urlCase) {
    method getModule (line 322) | static private function getModule($var) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Exception.class.php
  class Exception (line 15) | class Exception extends \Exception {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Hook.class.php
  class Hook (line 15) | class Hook {
    method add (line 25) | static public function add($tag,$name) {
    method import (line 42) | static public function import($data,$recursive=true) {
    method get (line 66) | static public function get($tag='') {
    method listen (line 81) | static public function listen($tag, &$params=NULL) {
    method exec (line 113) | static public function exec($name, $tag,&$params=NULL) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Image.class.php
  class Image (line 21) | class Image{
    method __construct (line 55) | public function __construct($type = self::IMAGE_GD, $imgname = null){
    method open (line 78) | public function open($imgname){
    method save (line 91) | public function save($imgname, $type = null, $quality=80,$interlace = ...
    method width (line 100) | public function width(){
    method height (line 108) | public function height(){
    method type (line 116) | public function type(){
    method mime (line 124) | public function mime(){
    method size (line 132) | public function size(){
    method crop (line 146) | public function crop($w, $h, $x = 0, $y = 0, $width = null, $height = ...
    method thumb (line 158) | public function thumb($width, $height, $type = self::IMAGE_THUMB_SCALE){
    method water (line 170) | public function water($source, $locate = self::IMAGE_WATER_SOUTHEAST,$...
    method text (line 186) | public function text($text, $font, $size, $color = '#00000000',

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Image/Driver/GIF.class.php
  class GIF (line 14) | class GIF{
    method __construct (line 32) | public function __construct($src = null, $mod = 'url') {
    method image (line 54) | public function image($stream = null){
    method nextImage (line 67) | public function nextImage(){
    method save (line 75) | public function save($gifname){
  method __construct (line 131) | public function __construct($GIF_src, $GIF_dly, $GIF_lop, $GIF_dis,$GIF_...
  method GIFAddHeader (line 182) | private function GIFAddHeader ( ) {
  function GIFAddFooter (line 274) | function GIFAddFooter ( ) {
  function GIFWord (line 303) | function GIFWord ( $int ) {
  function GetAnimation (line 313) | function GetAnimation ( ) {
  class GIFDecoder (line 336) | Class GIFDecoder {
    method __construct (line 357) | public function __construct ( $GIF_pointer ) {
    method GIFReadExtensions (line 423) | private function GIFReadExtensions ( ) {
    method GIFReadDescriptor (line 449) | private function GIFReadDescriptor ( ) {
    method GIFGetByte (line 524) | private function GIFGetByte ( $len ) {
    method GIFPutByte (line 541) | private function GIFPutByte ( $bytes ) {
    method GIFGetFrames (line 555) | public function GIFGetFrames ( ) {
    method GIFGetDelays (line 564) | public function GIFGetDelays ( ) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Image/Driver/Gd.class.php
  class Gd (line 15) | class Gd{
    method __construct (line 32) | public function __construct($imgname = null) {
    method open (line 40) | public function open($imgname){
    method save (line 81) | public function save($imgname, $type = null, $quality=80,$interlace = ...
    method width (line 107) | public function width(){
    method height (line 116) | public function height(){
    method type (line 125) | public function type(){
    method mime (line 134) | public function mime(){
    method size (line 143) | public function size(){
    method crop (line 157) | public function crop($w, $h, $x = 0, $y = 0, $width = null, $height = ...
    method thumb (line 189) | public function thumb($width, $height, $type = Image::IMAGE_THUMB_SCALE){
    method water (line 298) | public function water($source, $locate = Image::IMAGE_WATER_SOUTHEAST,...
    method text (line 409) | public function text($text, $font, $size, $color = '#00000000',
    method gifNext (line 518) | private function gifNext(){
    method __destruct (line 539) | public function __destruct() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Image/Driver/Imagick.class.php
  class Imagick (line 15) | class Imagick{
    method __construct (line 32) | public function __construct($imgname = null) {
    method open (line 40) | public function open($imgname){
    method save (line 66) | public function save($imgname, $type = null, $quality=80,$interlace = ...
    method width (line 101) | public function width(){
    method height (line 110) | public function height(){
    method type (line 119) | public function type(){
    method mime (line 128) | public function mime(){
    method size (line 137) | public function size(){
    method crop (line 151) | public function crop($w, $h, $x = 0, $y = 0, $width = null, $height = ...
    method _crop (line 177) | private function _crop($w, $h, $x, $y, $width, $height, $img = null){
    method thumb (line 203) | public function thumb($width, $height, $type = Image::IMAGE_THUMB_SCALE){
    method _fill (line 332) | private function _fill($newimg, $posx, $posy, $neww, $newh, $img = null){
    method water (line 351) | public function water($source, $locate = Image::IMAGE_WATER_SOUTHEAST,...
    method text (line 461) | public function text($text, $font, $size, $color = '#00000000',
    method __destruct (line 590) | public function __destruct() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Log.class.php
  class Log (line 15) | class Log {
    method init (line 35) | static public function init($config=array()){
    method record (line 51) | static function record($message,$level=self::ERR,$record=false) {
    method save (line 65) | static function save($type='',$destination='') {
    method write (line 92) | static function write($message,$level=self::ERR,$type='',$destination=...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Log/Driver/File.class.php
  class File (line 14) | class File {
    method __construct (line 23) | public function __construct($config=array()){
    method write (line 34) | public function write($log,$destination='') {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Log/Driver/Sae.class.php
  class Sae (line 14) | class Sae {
    method __construct (line 21) | public function __construct($config=array()){
    method write (line 32) | public function write($log,$destination='') {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Model.class.php
  class Model (line 16) | class Model {
    method __construct (line 72) | public function __construct($name='',$tablePrefix='',$connection='') {
    method _checkTableInfo (line 105) | protected function _checkTableInfo() {
    method flush (line 131) | public function flush() {
    method __set (line 177) | public function __set($name,$value) {
    method __get (line 188) | public function __get($name) {
    method __isset (line 198) | public function __isset($name) {
    method __unset (line 208) | public function __unset($name) {
    method __call (line 219) | public function __call($method,$args) {
    method _initialize (line 246) | protected function _initialize() {}
    method _facade (line 254) | protected function _facade($data) {
    method _before_write (line 290) | protected function _before_write(&$data) {}
    method add (line 300) | public function add($data='',$options=array(),$replace=false) {
    method _before_insert (line 341) | protected function _before_insert(&$data,$options) {}
    method _after_insert (line 343) | protected function _after_insert($data,$options) {}
    method addAll (line 345) | public function addAll($dataList,$options=array(),$replace=false){
    method selectAdd (line 375) | public function selectAdd($fields='',$table='',$options=array()) {
    method save (line 396) | public function save($data='',$options=array()) {
    method _before_update (line 459) | protected function _before_update(&$data,$options) {}
    method _after_update (line 461) | protected function _after_update($data,$options) {}
    method delete (line 469) | public function delete($options=array()) {
    method _before_delete (line 528) | protected function _before_delete($options) {}
    method _after_delete (line 530) | protected function _after_delete($data,$options) {}
    method select (line 538) | public function select($options=array()) {
    method _after_select (line 610) | protected function _after_select(&$resultSet,$options) {}
    method buildSql (line 617) | public function buildSql() {
    method _parseOptions (line 627) | protected function _parseOptions($options=array()) {
    method _options_filter (line 671) | protected function _options_filter(&$options) {}
    method _parseType (line 680) | protected function _parseType(&$data,$key) {
    method _read_data (line 701) | protected function _read_data($data) {
    method find (line 720) | public function find($options=array()) {
    method _after_find (line 783) | protected function _after_find(&$result,$options) {}
    method returnResult (line 785) | protected function returnResult($data,$type=''){
    method parseFieldsMap (line 807) | public function parseFieldsMap($data,$type=1) {
    method setField (line 835) | public function setField($field,$value='') {
    method setInc (line 852) | public function setInc($field,$step=1,$lazyTime=0) {
    method setDec (line 874) | public function setDec($field,$step=1,$lazyTime=0) {
    method lazyWrite (line 897) | protected function lazyWrite($guid,$step,$lazyTime) {
    method getField (line 924) | public function getField($field,$sepa=null) {
    method create (line 1001) | public function create($data='',$type='') {
    method autoCheckToken (line 1073) | public function autoCheckToken($data) {
    method regex (line 1102) | public function regex($value,$rule) {
    method autoOperation (line 1127) | private function autoOperation(&$data,$type) {
    method autoValidation (line 1184) | protected function autoValidation($data,$type) {
    method _validationField (line 1242) | protected function _validationField($data,$val) {
    method _validationFieldItem (line 1263) | protected function _validationFieldItem($data,$val) {
    method check (line 1315) | public function check($value,$rule,$type='regex'){
    method procedure (line 1365) | public function procedure($sql, $parse = false) {
    method query (line 1376) | public function query($sql,$parse=false) {
    method execute (line 1392) | public function execute($sql,$parse=false) {
    method parseSql (line 1408) | protected function parseSql($sql,$parse) {
    method db (line 1433) | public function db($linkNum='',$config='',$force=false) {
    method _after_db (line 1458) | protected function _after_db() {}
    method getModelName (line 1465) | public function getModelName() {
    method getTableName (line 1482) | public function getTableName() {
    method startTrans (line 1500) | public function startTrans() {
    method commit (line 1511) | public function commit() {
    method rollback (line 1520) | public function rollback() {
    method getError (line 1529) | public function getError(){
    method getDbError (line 1538) | public function getDbError() {
    method getLastInsID (line 1547) | public function getLastInsID() {
    method getLastSql (line 1556) | public function getLastSql() {
    method _sql (line 1560) | public function _sql(){
    method getPk (line 1569) | public function getPk() {
    method getDbFields (line 1578) | public function getDbFields(){
    method data (line 1606) | public function data($data=''){
    method table (line 1627) | public function table($table) {
    method using (line 1645) | public function using($using){
    method join (line 1664) | public function join($join,$type='INNER') {
    method union (line 1687) | public function union($union,$all=false) {
    method cache (line 1722) | public function cache($key=true,$expire=null,$type=''){
    method field (line 1740) | public function field($field,$except=false){
    method scope (line 1762) | public function scope($scope='',$args=NULL){
    method where (line 1797) | public function where($where,$parse=null){
    method limit (line 1829) | public function limit($offset,$length=null){
    method page (line 1844) | public function page($page,$listRows=null){
    method comment (line 1858) | public function comment($comment){
    method fetchSql (line 1869) | public function fetchSql($fetch=true){
    method bind (line 1881) | public function bind($key,$value=false) {
    method setProperty (line 1904) | public function setProperty($name,$value) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Model/AdvModel.class.php
  class AdvModel (line 16) | class AdvModel extends Model {
    method __construct (line 26) | public function __construct($name='',$tablePrefix='',$connection='') {
    method __call (line 43) | public function __call($method,$args) {
    method _facade (line 60) | protected function _facade($data) {
    method _after_find (line 67) | protected function _after_find(&$result,$options='') {
    method _after_select (line 79) | protected function _after_select(&$resultSet,$options='') {
    method _before_insert (line 89) | protected function _before_insert(&$data,$options='') {
    method _after_insert (line 98) | protected function _after_insert($data,$options) {
    method _before_update (line 104) | protected function _before_update(&$data,$options='') {
    method _after_update (line 121) | protected function _after_update($data,$options) {
    method _after_delete (line 126) | protected function _after_delete($data,$options) {
    method recordLockVersion (line 137) | protected function recordLockVersion($data) {
    method cacheLockVersion (line 153) | protected function cacheLockVersion($data) {
    method checkLockVersion (line 169) | protected function checkLockVersion($id,&$data) {
    method topN (line 202) | public function topN($count,$options=array()) {
    method getN (line 215) | public function getN($position=0,$options=array()) {
    method first (line 232) | public function first($options=array()) {
    method last (line 242) | public function last($options=array()) {
    method returnResult (line 253) | public function returnResult($data,$type='') {
    method getFilterFields (line 273) | protected function getFilterFields(&$result) {
    method getFilterListFields (line 293) | protected function getFilterListFields(&$resultSet) {
    method setFilterFields (line 307) | protected function setFilterFields($data) {
    method returnResultSet (line 334) | protected function returnResultSet(&$resultSet,$type='') {
    method checkBlobFields (line 340) | protected function checkBlobFields(&$data) {
    method getListBlobFields (line 363) | protected function getListBlobFields(&$resultSet,$field='') {
    method getBlobFields (line 380) | protected function getBlobFields(&$data,$field='') {
    method saveBlobFields (line 403) | protected function saveBlobFields(&$data) {
    method delBlobFields (line 420) | protected function delBlobFields(&$data,$field='') {
    method serializeField (line 442) | protected function serializeField(&$data) {
    method checkSerializeField (line 465) | protected function checkSerializeField(&$result) {
    method checkListSerializeField (line 481) | protected function checkListSerializeField(&$resultSet) {
    method checkReadonlyField (line 505) | protected function checkReadonlyField(&$data) {
    method patchQuery (line 522) | public function patchQuery($sql=array()) {
    method getPartitionTableName (line 549) | public function getPartitionTableName($data=array()) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Model/MergeModel.class.php
  class MergeModel (line 16) | class MergeModel extends Model {
    method __construct (line 32) | public function __construct($name='',$tablePrefix='',$connection=''){
    method getTableName (line 66) | public function getTableName() {
    method _checkTableInfo (line 83) | protected function _checkTableInfo() {}
    method add (line 93) | public function add($data='',$options=array(),$replace=false){
    method _facade (line 137) | protected function _facade($data) {
    method save (line 177) | public function save($data='',$options=array()){
    method delete (line 227) | public function delete($options=array()){
    method _options_filter (line 279) | protected function _options_filter(&$options) {
    method checkCondition (line 303) | protected function checkCondition($where) {
    method checkOrder (line 324) | protected function checkOrder($order='') {
    method checkGroup (line 349) | protected function checkGroup($group='') {
    method checkFields (line 372) | protected function checkFields($fields='') {
    method getDbFields (line 399) | public function getDbFields(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Model/MongoModel.class.php
  class MongoModel (line 17) | class MongoModel extends Model{
    method __call (line 41) | public function __call($method,$args) {
    method flush (line 67) | public function flush() {
    method _before_write (line 90) | protected function _before_write(&$data) {
    method count (line 103) | public function count(){
    method distinct (line 114) | public function distinct($field, $where=array() ){
    method getMongoNextId (line 135) | public function getMongoNextId($pk=''){
    method add (line 150) | public function add($data='',$options=array(),$replace=false) {
    method _before_insert (line 181) | protected function _before_insert(&$data,$options) {
    method clear (line 191) | public function clear(){
    method _after_select (line 196) | protected function _after_select(&$resultSet,$options) {
    method checkMongoId (line 206) | protected function checkMongoId(&$result){
    method _options_filter (line 214) | protected function _options_filter(&$options) {
    method find (line 227) | public function find($options=array()) {
    method setInc (line 257) | public function setInc($field,$step=1) {
    method setDec (line 268) | public function setDec($field,$step=1) {
    method getField (line 279) | public function getField($field,$sepa=null) {
    method command (line 331) | public function command($command, $options=array()) {
    method mongoCode (line 343) | public function mongoCode($code,$args=array()) {
    method _after_db (line 348) | protected function _after_db() {
    method getTableName (line 358) | public function getTableName() {
    method group (line 376) | public function group($key, $init, $reduce, $option=array()) {
    method getLastError (line 391) | public function getLastError(){
    method status (line 400) | public function status(){
    method getDB (line 410) | public function getDB(){
    method getCollection (line 419) | public function getCollection(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Model/RelationModel.class.php
  class RelationModel (line 16) | class RelationModel extends Model {
    method __call (line 33) | public function __call($method,$args) {
    method getRelationTableName (line 50) | public function getRelationTableName($relation) {
    method _after_find (line 58) | protected function _after_find(&$result,$options) {
    method _after_select (line 65) | protected function _after_select(&$result,$options) {
    method _after_insert (line 72) | protected function _after_insert($data,$options) {
    method _after_update (line 79) | protected function _after_update($data,$options) {
    method _after_delete (line 86) | protected function _after_delete($data,$options) {
    method _facade (line 98) | protected function _facade($data) {
    method getRelations (line 110) | protected function getRelations(&$resultSet,$name='') {
    method getRelation (line 127) | protected function getRelation(&$result,$name='',$return=false) {
    method opRelation (line 247) | protected function opRelation($opType,$data='',$name='') {
    method relation (line 396) | public function relation($name) {
    method relationGet (line 407) | public function relationGet($name) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Model/ViewModel.class.php
  class ViewModel (line 16) | class ViewModel extends Model {
    method _checkTableInfo (line 25) | protected function _checkTableInfo() {}
    method getTableName (line 32) | public function getTableName() {
    method _options_filter (line 67) | protected function _options_filter(&$options) {
    method _checkFields (line 87) | private function _checkFields($name,$fields) {
    method checkCondition (line 101) | protected function checkCondition($where) {
    method checkOrder (line 128) | protected function checkOrder($order='') {
    method checkGroup (line 159) | protected function checkGroup($group='') {
    method checkFields (line 187) | protected function checkFields($fields='') {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Page.class.php
  class Page (line 13) | class Page{
    method __construct (line 42) | public function __construct($totalRows, $listRows=20, $parameter = arr...
    method setConfig (line 58) | public function setConfig($name,$value) {
    method url (line 69) | private function url($page){
    method show (line 77) | public function show() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Route.class.php
  class Route (line 15) | class Route {
    method check (line 18) | public static function check(){
    method checkUrlMatch (line 97) | private static function checkUrlMatch($regx,$rule) {
    method parseUrl (line 138) | private static function parseUrl($url) {
    method parseRule (line 170) | private static function parseRule($rule,$route,$regx) {
    method parseRegex (line 246) | private static function parseRegex($matches,$route,$regx) {
    method invokeRegx (line 285) | static private function invokeRegx($closure, $var = array()) {
    method invokeRule (line 301) | static private function invokeRule($closure, $var = array()) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Session/Driver/Db.class.php
  class Db (line 21) | class Db {
    method open (line 44) | public function open($savePath, $sessName) {
    method close (line 109) | public function close() {
    method read (line 123) | public function read($sessID) {
    method write (line 139) | public function write($sessID,$sessData) {
    method destroy (line 154) | public function destroy($sessID) {
    method gc (line 167) | public function gc($sessMaxLifeTime) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Session/Driver/Memcache.class.php
  class Memcache (line 4) | class Memcache {
    method open (line 15) | public function open($savePath, $sessName) {
    method close (line 36) | public function close() {
    method read (line 48) | public function read($sessID) {
    method write (line 58) | public function write($sessID, $sessData) {
    method destroy (line 67) | public function destroy($sessID) {
    method gc (line 76) | public function gc($sessMaxLifeTime) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Session/Driver/Mysqli.class.php
  class Mysqli (line 23) | class Mysqli
    method open (line 47) | public function open($savePath, $sessName)
    method close (line 116) | public function close()
    method read (line 131) | public function read($sessID)
    method write (line 148) | public function write($sessID, $sessData)
    method destroy (line 163) | public function destroy($sessID)
    method gc (line 177) | public function gc($sessMaxLifeTime)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Storage.class.php
  class Storage (line 13) | class Storage {
    method connect (line 29) | static public function connect($type='File',$options=array()) {
    method __callstatic (line 34) | static public function __callstatic($method,$args){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Storage/Driver/File.class.php
  class File (line 14) | class File extends Storage{
    method __construct (line 22) | public function __construct() {
    method read (line 31) | public function read($filename,$type=''){
    method put (line 42) | public function put($filename,$content,$type=''){
    method append (line 62) | public function append($filename,$content,$type=''){
    method load (line 76) | public function load($_filename,$vars=null){
    method has (line 89) | public function has($filename,$type=''){
    method unlink (line 99) | public function unlink($filename,$type=''){
    method get (line 111) | public function get($filename,$name,$type=''){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Storage/Driver/Sae.class.php
  class Sae (line 14) | class Sae extends Storage{
    method __construct (line 24) | public function __construct() {
    method getKv (line 39) | private function getKv(){
    method read (line 56) | public function read($filename,$type=''){
    method put (line 76) | public function put($filename,$content,$type=''){
    method append (line 105) | public function append($filename,$content,$type=''){
    method load (line 119) | public function load($_filename,$vars=null){
    method has (line 131) | public function has($filename,$type=''){
    method unlink (line 145) | public function unlink($filename,$type=''){
    method get (line 168) | public function get($filename,$name,$type=''){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template.class.php
  class Template (line 17) | class  Template {
    method __construct (line 33) | public function __construct(){
    method stripPreg (line 47) | private function stripPreg($str) {
    method get (line 55) | public function get($name) {
    method set (line 62) | public function set($name,$value) {
    method fetch (line 74) | public function fetch($templateFile,$templateVar,$prefix='') {
    method loadTemplate (line 88) | public function loadTemplate ($templateFile,$prefix='') {
    method compiler (line 124) | protected function compiler($tmplContent) {
    method parse (line 145) | public function parse($content) {
    method parsePhp (line 189) | protected function parsePhp($content) {
    method parseLayout (line 202) | protected function parseLayout($content) {
    method parseInclude (line 224) | protected function parseInclude($content, $extend = true) {
    method parseExtend (line 245) | protected function parseExtend($content) {
    method parseXmlAttrs (line 273) | private function parseXmlAttrs($attrs) {
    method parseLiteral (line 289) | private function parseLiteral($content) {
    method restoreLiteral (line 305) | private function restoreLiteral($tag) {
    method parseBlock (line 321) | private function parseBlock($name,$content = '') {
    method replaceBlock (line 336) | private function replaceBlock($content){
    method getIncludeTagLib (line 367) | public function getIncludeTagLib(& $content) {
    method parseTagLib (line 388) | public function parseTagLib($tagLib,&$content,$hide=false) {
    method parseXmlTag (line 444) | public function parseXmlTag($tagLib,$tag,$attr,$content) {
    method parseTag (line 460) | public function parseTag($tagStr){
    method parseVar (line 491) | public function parseVar($varStr){
    method parseVarFunction (line 554) | public function parseVarFunction($name,$varArray){
    method parseThinkVar (line 592) | public function parseThinkVar($varStr){
    method parseIncludeItem (line 666) | private function parseIncludeItem($tmplPublicName,$vars=array(),$extend){
    method parseTemplateName (line 683) | private function parseTemplateName($templateName){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/Driver/Ease.class.php
  class Ease (line 15) | class Ease {
    method fetch (line 23) | public function fetch($templateFile,$var) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/Driver/Lite.class.php
  class Lite (line 15) | class Lite {
    method fetch (line 23) | public function fetch($templateFile,$var) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/Driver/Mobile.class.php
  class Mobile (line 15) | class Mobile {
    method fetch (line 23) | public function fetch($templateFile,$var) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/Driver/Smart.class.php
  class Smart (line 15) | class Smart {
    method fetch (line 23) | public function fetch($templateFile,$var) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/Driver/Smarty.class.php
  class Smarty (line 15) | class Smarty {
    method fetch (line 24) | public function fetch($templateFile,$var) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/TagLib.class.php
  class TagLib (line 15) | class TagLib {
    method __construct (line 65) | public function __construct() {
    method parseXmlAttr (line 76) | public function parseXmlAttr($attr,$tag) {
    method parseCondition (line 126) | public function parseCondition($condition) {
    method autoBuildVar (line 150) | public function autoBuildVar($name) {
    method parseThinkVar (line 192) | public function parseThinkVar($varStr){
    method getTags (line 243) | public function getTags(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/TagLib/Cx.class.php
  class Cx (line 16) | class Cx extends TagLib {
    method _php (line 51) | public function _php($tag,$content) {
    method _volist (line 68) | public function _volist($tag,$content) {
    method _foreach (line 111) | public function _foreach($tag,$content) {
    method _if (line 139) | public function _if($tag,$content) {
    method _elseif (line 153) | public function _elseif($tag,$content) {
    method _else (line 165) | public function _else($tag) {
    method _switch (line 183) | public function _switch($tag,$content) {
    method _case (line 201) | public function _case($tag,$content) {
    method _default (line 235) | public function _default($tag) {
    method _compare (line 249) | public function _compare($tag,$content,$type='eq') {
    method _eq (line 268) | public function _eq($tag,$content) {
    method _equal (line 272) | public function _equal($tag,$content) {
    method _neq (line 276) | public function _neq($tag,$content) {
    method _notequal (line 280) | public function _notequal($tag,$content) {
    method _gt (line 284) | public function _gt($tag,$content) {
    method _lt (line 288) | public function _lt($tag,$content) {
    method _egt (line 292) | public function _egt($tag,$content) {
    method _elt (line 296) | public function _elt($tag,$content) {
    method _heq (line 300) | public function _heq($tag,$content) {
    method _nheq (line 304) | public function _nheq($tag,$content) {
    method _range (line 319) | public function _range($tag,$content,$type='in') {
    method _in (line 349) | public function _in($tag,$content) {
    method _notin (line 354) | public function _notin($tag,$content) {
    method _between (line 358) | public function _between($tag,$content){
    method _notbetween (line 362) | public function _notbetween($tag,$content){
    method _present (line 375) | public function _present($tag,$content) {
    method _notpresent (line 391) | public function _notpresent($tag,$content) {
    method _empty (line 407) | public function _empty($tag,$content) {
    method _notempty (line 414) | public function _notempty($tag,$content) {
    method _defined (line 428) | public function _defined($tag,$content) {
    method _notdefined (line 434) | public function _notdefined($tag,$content) {
    method _import (line 450) | public function _import($tag,$content,$isFile=false,$type='') {
    method _load (line 516) | public function _load($tag,$content) {
    method _css (line 521) | public function _css($tag,$content) {
    method _js (line 526) | public function _js($tag,$content) {
    method _assign (line 539) | public function _assign($tag,$content) {
    method _define (line 559) | public function _define($tag,$content) {
    method _for (line 578) | public function _for($tag, $content){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Template/TagLib/Html.class.php
  class Html (line 16) | class Html extends TagLib{
    method _editor (line 36) | public function _editor($tag,$content) {
    method _imageBtn (line 77) | public function _imageBtn($tag) {
    method _imgLink (line 101) | public function _imgLink($tag) {
    method _select (line 123) | public function _select($tag) {
    method _checkbox (line 179) | public function _checkbox($tag) {
    method _radio (line 204) | public function _radio($tag) {
    method _grid (line 230) | public function _grid($tag) {
    method _list (line 369) | public function _list($tag) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Think.class.php
  class Think (line 16) | class Think {
    method start (line 29) | static public function start() {
    method addMap (line 124) | static public function addMap($class, $map=''){
    method getMap (line 133) | static public function getMap($class=''){
    method autoload (line 148) | public static function autoload($class) {
    method instance (line 194) | static public function instance($class,$method='') {
    method appException (line 215) | static public function appException($e) {
    method appError (line 243) | static public function appError($errno, $errstr, $errfile, $errline) {
    method fatalError (line 263) | static public function fatalError() {
    method halt (line 284) | static public function halt($error) {
    method trace (line 326) | static public function trace($value='[think]',$label='',$level='DEBUG'...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload.class.php
  class Upload (line 12) | class Upload {
    method __construct (line 51) | public function __construct($config = array(), $driver = '', $driverCo...
    method __get (line 78) | public function __get($name) {
    method __set (line 82) | public function __set($name,$value){
    method __isset (line 93) | public function __isset($name){
    method getError (line 101) | public function getError(){
    method uploadOne (line 110) | public function uploadOne($file){
    method upload (line 119) | public function upload($files='') {
    method dealFiles (line 226) | private function dealFiles($files) {
    method setDriver (line 253) | private function setDriver($driver = null, $config = null){
    method check (line 267) | private function check($file) {
    method error (line 313) | private function error($errorNo) {
    method checkSize (line 342) | private function checkSize($size) {
    method checkMime (line 350) | private function checkMime($mime) {
    method checkExt (line 358) | private function checkExt($ext) {
    method getSaveName (line 366) | private function getSaveName($file) {
    method getSubPath (line 390) | private function getSubPath($filename) {
    method getName (line 410) | private function getName($rule, $filename){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Bcs.class.php
  class Bcs (line 13) | class Bcs {
    method __construct (line 41) | public function __construct($config){
    method checkRootPath (line 56) | public function checkRootPath($rootpath){
    method checkSavePath (line 67) | public function checkSavePath($savepath){
    method mkdir (line 76) | public function mkdir($savepath){
    method save (line 86) | public function save(&$file,$replace=true) {
    method download (line 100) | public function download($file){
    method getError (line 112) | public function getError(){
    method request (line 124) | private function request($path, $method, $headers = null, $body = null){
    method response (line 198) | private function response($text){
    method sign (line 207) | private function sign($method, $Bucket, $object='/', $size=''){
    method error (line 231) | private function error($header) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Bcs/bcs.class.php
  class BCS_Exception (line 25) | class BCS_Exception extends \Exception {
  class BaiduBCS (line 30) | class BaiduBCS {
    method __construct (line 119) | public function __construct($ak = NULL, $sk = NULL, $hostname = NULL) {
    method authenticate (line 154) | private function authenticate($opt) {
    method list_bucket (line 253) | public function list_bucket($opt = array()) {
    method create_bucket (line 271) | public function create_bucket($bucket, $acl = NULL, $opt = array()) {
    method delete_bucket (line 293) | public function delete_bucket($bucket, $opt = array()) {
    method set_bucket_acl (line 315) | public function set_bucket_acl($bucket, $acl, $opt = array()) {
    method get_bucket_acl (line 335) | public function get_bucket_acl($bucket, $opt = array()) {
    method list_object (line 357) | public function list_object($bucket, $opt = array()) {
    method list_object_by_dir (line 396) | public function list_object_by_dir($bucket, $dir = '/', $list_model = ...
    method create_object (line 432) | public function create_object($bucket, $object, $file, $opt = array()) {
    method create_object_by_content (line 464) | public function create_object_by_content($bucket, $object, $content, $...
    method create_object_superfile (line 500) | public function create_object_superfile($bucket, $object, $file, $opt ...
    method upload_directory (line 604) | public function upload_directory($bucket, $dir, $opt = array()) {
    method copy_object (line 752) | public function copy_object($source, $dest, $opt = array()) {
    method set_object_meta (line 787) | public function set_object_meta($bucket, $object, $meta, $opt = array(...
    method get_object_acl (line 817) | public function get_object_acl($bucket, $object, $opt = array()) {
    method set_object_acl (line 842) | public function set_object_acl($bucket, $object, $acl, $opt = array()) {
    method delete_object (line 865) | public function delete_object($bucket, $object, $opt = array()) {
    method is_object_exist (line 886) | public function is_object_exist($bucket, $object, $opt = array()) {
    method get_object_info (line 908) | public function get_object_info($bucket, $object, $opt = array()) {
    method get_object (line 927) | public function get_object($bucket, $object, $opt = array()) {
    method generate_user_url (line 962) | private function generate_user_url($method, $bucket, $object, $opt = a...
    method generate_get_object_url (line 984) | public function generate_get_object_url($bucket, $object, $opt = array...
    method generate_put_object_url (line 995) | public function generate_put_object_url($bucket, $object, $opt = array...
    method generate_post_object_url (line 1006) | public function generate_post_object_url($bucket, $object, $opt = arra...
    method generate_delete_object_url (line 1017) | public function generate_delete_object_url($bucket, $object, $opt = ar...
    method generate_head_object_url (line 1028) | public function generate_head_object_url($bucket, $object, $opt = arra...
    method getUse_ssl (line 1036) | public function getUse_ssl() {
    method setUse_ssl (line 1043) | public function setUse_ssl($use_ssl) {
    method validate_bucket (line 1055) | public static function validate_bucket($bucket) {
    method validate_object (line 1070) | public static function validate_object($object) {
    method set_header_into_opt (line 1086) | private static function set_header_into_opt($header, $value, &$opt) {
    method array_recursive (line 1104) | private static function array_recursive(&$array, $function, $apply_to_...
    method array_to_json (line 1126) | private static function array_to_json($array) {
    method analyze_user_acl (line 1145) | private function analyze_user_acl($acl) {
    method format_signature (line 1170) | private function format_signature($opt) {
    method check_user_acl (line 1209) | private function check_user_acl($acl) {
    method format_url (line 1242) | private function format_url($opt) {
    method trimUrl (line 1270) | public static function trimUrl($url) {
    method get_filetree (line 1284) | public static function get_filetree($dir, $file_prefix = "/*") {
    method log (line 1301) | public function log($log, $opt) {
    method assertParameterArray (line 1313) | private function assertParameterArray($opt) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Bcs/mimetypes.class.php
  class BCS_MimeTypes (line 3) | class BCS_MimeTypes {
    method get_mimetype (line 133) | public static function get_mimetype($ext) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Bcs/requestcore.class.php
  class BCS_RequestCore (line 14) | class BCS_RequestCore {
    method __construct (line 156) | public function __construct($url = null, $proxy = null, $helpers = nul...
    method __destruct (line 181) | public function __destruct() {
    method set_credentials (line 200) | public function set_credentials($user, $pass) {
    method add_header (line 213) | public function add_header($key, $value) {
    method remove_header (line 224) | public function remove_header($key) {
    method set_method (line 237) | public function set_method($method) {
    method set_useragent (line 248) | public function set_useragent($ua) {
    method set_body (line 259) | public function set_body($body) {
    method set_request_url (line 270) | public function set_request_url($url) {
    method set_curlopts (line 282) | public function set_curlopts($curlopts) {
    method set_read_stream_size (line 293) | public function set_read_stream_size($size) {
    method set_read_stream (line 307) | public function set_read_stream($resource, $size = null) {
    method set_read_file (line 327) | public function set_read_file($location) {
    method set_write_stream (line 339) | public function set_write_stream($resource) {
    method set_write_file (line 350) | public function set_write_file($location) {
    method set_proxy (line 362) | public function set_proxy($proxy) {
    method set_seek_position (line 377) | public function set_seek_position($position) {
    method register_streaming_read_callback (line 400) | public function register_streaming_read_callback($callback) {
    method register_streaming_write_callback (line 422) | public function register_streaming_write_callback($callback) {
    method streaming_read_callback (line 437) | public function streaming_read_callback($curl_handle, $file_handle, $l...
    method streaming_write_callback (line 466) | public function streaming_write_callback($curl_handle, $data) {
    method prep_request (line 490) | public function prep_request() {
    method isBaeEnv (line 590) | private function isBaeEnv() {
    method process_response (line 617) | public function process_response($curl_handle = null, $response = null) {
    method send_request (line 662) | public function send_request($parse = false) {
    method send_multi_request (line 690) | public function send_multi_request($handles, $opt = null) {
    method get_response_header (line 762) | public function get_response_header($header = null) {
    method get_response_body (line 775) | public function get_response_body() {
    method get_response_code (line 784) | public function get_response_code() {
  class BCS_ResponseCore (line 791) | class BCS_ResponseCore {
    method __construct (line 813) | public function __construct($header, $body, $status = null) {
    method isOK (line 826) | public function isOK($codes = array(200, 201, 204, 206)) {
  class BCS_RequestCore_Exception (line 836) | class BCS_RequestCore_Exception extends \Exception {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Ftp.class.php
  class Ftp (line 13) | class Ftp {
    method __construct (line 44) | public function __construct($config){
    method checkRootPath (line 59) | public function checkRootPath($rootpath){
    method checkSavePath (line 75) | public function checkSavePath($savepath){
    method save (line 91) | public function save($file, $replace=true) {
    method mkdir (line 113) | public function mkdir($savepath){
    method getError (line 133) | public function getError(){
    method login (line 141) | private function login(){
    method __destruct (line 159) | public function __destruct() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Local.class.php
  class Local (line 13) | class Local{
    method __construct (line 29) | public function __construct($config = null){
    method checkRootPath (line 38) | public function checkRootPath($rootpath){
    method checkSavePath (line 52) | public function checkSavePath($savepath){
    method save (line 73) | public function save($file, $replace=true) {
    method mkdir (line 96) | public function mkdir($savepath){
    method getError (line 114) | public function getError(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Qiniu.class.php
  class Qiniu (line 15) | class Qiniu{
    method __construct (line 40) | public function __construct($config){
    method checkRootPath (line 51) | public function checkRootPath($rootpath){
    method checkSavePath (line 61) | public function checkSavePath($savepath){
    method mkdir (line 70) | public function mkdir($savepath){
    method save (line 80) | public function save(&$file,$replace=true) {
    method getError (line 99) | public function getError(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Qiniu/QiniuStorage.class.php
  class QiniuStorage (line 4) | class QiniuStorage {
    method __construct (line 11) | public function __construct($config){
    method sign (line 19) | static function sign($sk, $ak, $data){
    method signWithData (line 24) | static function signWithData($sk, $ak, $data){
    method accessToken (line 29) | public function accessToken($url, $body=''){
    method UploadToken (line 44) | public function UploadToken($sk ,$ak ,$param){
    method upload (line 70) | public function upload($config, $file){
    method dealWithType (line 113) | public function dealWithType($key, $type){
    method buildUrlParam (line 150) | public function buildUrlParam(){
    method getList (line 155) | public function getList($query = array(), $path = ''){
    method info (line 164) | public function info($key){
    method downLink (line 175) | public function downLink($key){
    method rename (line 183) | public function rename($file, $new_file){
    method del (line 193) | public function del($file){
    method delBatch (line 202) | public function delBatch($files){
    method Qiniu_Encode (line 216) | static function Qiniu_Encode($str) {// URLSafeBase64Encode
    method Qiniu_escapeQuotes (line 222) | static function Qiniu_escapeQuotes($str){
    method request (line 236) | private function request($path, $method, $headers = null, $body = null){
    method response (line 308) | private function response($text){
    method error (line 325) | private function error($header, $body) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Sae.class.php
  class Sae (line 13) | class Sae{
    method __construct (line 32) | public function __construct($config = null){
    method checkRootPath (line 43) | public function checkRootPath($rootpath){
    method checkSavePath (line 65) | public function checkSavePath($savepath){
    method save (line 75) | public function save(&$file, $replace=true) {
    method mkdir (line 94) | public function mkdir(){
    method getError (line 102) | public function getError(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Upload/Driver/Upyun.class.php
  class Upyun (line 13) | class Upyun{
    method __construct (line 38) | public function __construct($config){
    method checkRootPath (line 49) | public function checkRootPath($rootpath){
    method checkSavePath (line 60) | public function checkSavePath($savepath){
    method mkdir (line 69) | public function mkdir($savepath){
    method save (line 79) | public function save($file, $replace = true) {
    method getError (line 94) | public function getError(){
    method request (line 106) | private function request($path, $method, $headers = null, $body = null){
    method response (line 181) | private function response($text){
    method sign (line 202) | private function sign($method, $uri, $date, $length){
    method error (line 211) | private function error($header) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/Verify.class.php
  class Verify (line 14) | class Verify {
    method __construct (line 41) | public function __construct($config=array()){
    method __get (line 51) | public function __get($name) {
    method __set (line 62) | public function __set($name,$value){
    method __isset (line 74) | public function __isset($name){
    method check (line 85) | public function check($code, $id = '') {
    method entry (line 113) | public function entry($id = '') {
    method _writeCurve (line 200) | private function _writeCurve() {
    method _writeNoise (line 249) | private function _writeNoise() {
    method _background (line 265) | private function _background() {
    method authcode (line 287) | private function authcode($str){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Think/View.class.php
  class View (line 15) | class View {
    method assign (line 36) | public function assign($name,$value=''){
    method get (line 50) | public function get($name=''){
    method display (line 67) | public function display($templateFile='',$charset='',$contentType='',$...
    method render (line 87) | private function render($content,$charset='',$contentType=''){
    method fetch (line 106) | public function fetch($templateFile='',$content='',$prefix='') {
    method parseTemplate (line 142) | public function parseTemplate($template='') {
    method getThemePath (line 178) | protected function getThemePath($module=MODULE_NAME){
    method theme (line 196) | public function theme($theme){
    method getTemplateTheme (line 206) | private function getTemplateTheme() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/Boris.php
  class Boris (line 10) | class Boris {
    method __construct (line 26) | public function __construct($prompt = 'boris> ', $historyFile = null) {
    method onStart (line 62) | public function onStart($hook) {
    method onFailure (line 90) | public function onFailure($hook){
    method setLocal (line 108) | public function setLocal($local, $value = null) {
    method setPrompt (line 121) | public function setPrompt($prompt) {
    method setInspector (line 130) | public function setInspector($inspector) {
    method start (line 139) | public function start() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/CLIOptionsHandler.php
  class CLIOptionsHandler (line 10) | class CLIOptionsHandler {
    method handle (line 16) | public function handle($boris) {
    method _handleRequire (line 51) | private function _handleRequire($boris, $paths) {
    method _handleUsageInfo (line 67) | private function _handleUsageInfo() {
    method _handleVersion (line 81) | private function _handleVersion() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/ColoredInspector.php
  class ColoredInspector (line 17) | class ColoredInspector implements Inspector {
    method __construct (line 77) | public function __construct($colorMap = null) {
    method inspect (line 87) | public function inspect($variable) {
    method objectVars (line 103) | public function objectVars($value) {
    method _dump (line 109) | public function _dump($value) {
    method _dumpNull (line 128) | private function _dumpNull($value) {
    method _dumpString (line 132) | private function _dumpString($value) {
    method _dumpBoolean (line 136) | private function _dumpBoolean($value) {
    method _dumpInteger (line 140) | private function _dumpInteger($value) {
    method _dumpFloat (line 144) | private function _dumpFloat($value) {
    method _dumpArray (line 148) | private function _dumpArray($value) {
    method _dumpObject (line 152) | private function _dumpObject($value) {
    method _dumpStructure (line 159) | private function _dumpStructure($type, $value) {
    method _buildAst (line 163) | public function _buildAst($type, $value, $seen = array()) {
    method _astToString (line 203) | public function _astToString($node, $indent = 0) {
    method _defaultColorMap (line 239) | private function _defaultColorMap() {
    method _colorize (line 251) | private function _colorize($type, $value) {
    method _isSeen (line 265) | private function _isSeen($value, $seen) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/Config.php
  class Config (line 10) | class Config {
    method __construct (line 26) | public function __construct($searchPaths = null, $cascade = false) {
    method apply (line 51) | public function apply(Boris $boris) {
    method loadedFiles (line 76) | public function loadedFiles() {
    method _loadInIsolation (line 82) | private function _loadInIsolation($path, $boris) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/DumpInspector.php
  class DumpInspector (line 10) | class DumpInspector implements Inspector {
    method inspect (line 11) | public function inspect($variable) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/EvalWorker.php
  class EvalWorker (line 10) | class EvalWorker {
    method __construct (line 32) | public function __construct($socket) {
    method setLocal (line 44) | public function setLocal($local, $value = null) {
    method setStartHooks (line 57) | public function setStartHooks($hooks) {
    method setFailureHooks (line 66) | public function setFailureHooks($hooks) {
    method setInspector (line 75) | public function setInspector($inspector) {
    method start (line 84) | public function start() {
    method cancelOperation (line 158) | public function cancelOperation() {
    method delegateExceptionHandler (line 168) | public function delegateExceptionHandler($ex) {
    method _runHooks (line 175) | private function _runHooks($hooks) {
    method _expungeOldWorker (line 199) | private function _expungeOldWorker() {
    method _write (line 204) | private function _write($socket, $data) {
    method _read (line 210) | private function _read($socket)
    method _select (line 224) | private function _select(&$read, &$except) {
    method _transform (line 232) | private function _transform($input) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/ExportInspector.php
  class ExportInspector (line 10) | class ExportInspector implements Inspector {
    method inspect (line 11) | public function inspect($variable) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/Inspector.php
  type Inspector (line 10) | interface Inspector {
    method inspect (line 18) | public function inspect($variable);

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/ReadlineClient.php
  class ReadlineClient (line 12) | class ReadlineClient {
    method __construct (line 23) | public function __construct($socket) {
    method start (line 35) | public function start($prompt, $historyFile) {
    method clear (line 105) | public function clear() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Boris/ShallowParser.php
  class ShallowParser (line 10) | class ShallowParser {
    method __construct (line 25) | public function __construct() {
    method statements (line 38) | public function statements($buffer) {
    method quote (line 70) | public function quote($token) {
    method _createResult (line 76) | private function _createResult($buffer) {
    method _resetResult (line 88) | private function _resetResult($result) {
    method _combineStatements (line 97) | private function _combineStatements($result) {
    method _prepareForDebug (line 111) | private function _prepareForDebug($result) {
    method _initializeHeredoc (line 115) | private function _initializeHeredoc($result) {
    method _scanWsp (line 129) | private function _scanWsp($result) {
    method _scanEscapedChar (line 144) | private function _scanEscapedChar($result) {
    method _scanRegion (line 157) | private function _scanRegion($result) {
    method _scanStateEntrant (line 173) | private function _scanStateEntrant($result) {
    method _scanChar (line 185) | private function _scanChar($result) {
    method _isLambda (line 203) | private function _isLambda($input) {
    method _isReturnable (line 210) | private function _isReturnable($input) {
    method _prepareDebugStmt (line 226) | private function _prepareDebugStmt($input) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/EaseTemplate/template.core.php
  class ETCore (line 14) | class ETCore{
    method ETCoreStart (line 33) | function ETCoreStart(
    method set_var (line 134) | function set_var(
    method set_file (line 150) | function set_file(
    method ParseCode (line 172) | function ParseCode(
    method lang (line 277) | function lang(
    method inc_preg (line 356) | function inc_preg(
    method inc (line 366) | function inc(
    method CompilePHP (line 401) | function CompilePHP(
    method FixPHP (line 428) | function FixPHP(
    method FileUpdate (line 441) | function FileUpdate($filname,$settime=0){
    method output (line 468) | function output(
    method n (line 609) | function n(){
    method r (line 619) | function r(
    method p (line 630) | function p(
    method ImgCheck (line 640) | function ImgCheck(
    method Value (line 674) | function Value(){
    method clear (line 682) | function clear(){
    method htm_w (line 690) | function htm_w(
    method htm_time (line 724) | function htm_time($times=0){
    method htm_dir (line 734) | function htm_dir($Name = ''){
    method HtmCheck (line 744) | function HtmCheck(
    method htm_p (line 763) | function htm_p(
    method htm_r (line 776) | function htm_r(
    method FileName (line 789) | function FileName(
    method inc_php (line 804) | function inc_php(
    method Row (line 821) | function Row(
    method Color (line 846) | function Color(
    method Dirs (line 861) | function Dirs(
    method reader (line 875) | function reader(
    method writer (line 887) | function writer(
    method inc_list (line 907) | function inc_list(){

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/EaseTemplate/template.ease.php
  class template (line 19) | Class template extends ETCore{
    method template (line 24) | function template(

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseClassManager.php
  class HproseClassManager (line 23) | class HproseClassManager {
    method register (line 26) | public static function register($class, $alias) {
    method getClassAlias (line 30) | public static function getClassAlias($class) {
    method getClass (line 38) | public static function getClass($alias) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseClient.php
  class HproseClient (line 26) | abstract class HproseClient {
    method send (line 30) | protected abstract function send($request);
    method __construct (line 31) | public function __construct($url = '') {
    method useService (line 36) | public function useService($url = '', $namespace = '') {
    method invoke (line 42) | public function invoke($functionName, &$arguments = array(), $byRef = ...
    method getFilter (line 99) | public function getFilter() {
    method setFilter (line 102) | public function setFilter($filter) {
    method getSimpleMode (line 105) | public function getSimpleMode() {
    method setSimpleMode (line 108) | public function setSimpleMode($simple = true) {
    method __call (line 111) | public function __call($function, $arguments) {
    method __get (line 114) | public function __get($name) {
  class HproseProxy (line 119) | class HproseProxy {
    method __construct (line 122) | public function __construct($client, $namespace = '') {
    method __call (line 126) | public function __call($function, $arguments) {
    method __get (line 130) | public function __get($name) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseCommon.php
  class HproseResultMode (line 23) | class HproseResultMode {
  class HproseException (line 30) | class HproseException extends Exception {}
  type HproseFilter (line 32) | interface HproseFilter {
    method inputFilter (line 33) | function inputFilter($data);
    method outputFilter (line 34) | function outputFilter($data);
  class HproseDate (line 37) | class HproseDate {
    method __construct (line 42) | public function __construct() {
    method addDays (line 88) | public function addDays($days) {
    method addMonths (line 184) | public function addMonths($months) {
    method addYears (line 206) | public function addYears($years) {
    method timestamp (line 214) | public function timestamp() {
    method toString (line 222) | public function toString($fullformat = true) {
    method __toString (line 230) | public function __toString() {
    method isLeapYear (line 234) | public static function isLeapYear($year) {
    method daysInMonth (line 237) | public static function daysInMonth($year, $month) {
    method isValidDate (line 243) | public static function isValidDate($year, $month, $day) {
    method dayOfWeek (line 250) | public function dayOfWeek() {
    method dayOfYear (line 266) | public function dayOfYear() {
  class HproseTime (line 286) | class HproseTime {
    method __construct (line 292) | public function __construct() {
    method timestamp (line 346) | public function timestamp() {
    method toString (line 356) | public function toString($fullformat = true) {
    method __toString (line 374) | public function __toString() {
    method isValidTime (line 377) | public static function isValidTime($hour, $minute, $second, $microseco...
  class HproseDateTime (line 385) | class HproseDateTime extends HproseDate {
    method __construct (line 390) | public function __construct() {
    method addMicroseconds (line 502) | public function addMicroseconds($microseconds) {
    method addSeconds (line 520) | public function addSeconds($seconds) {
    method addMinutes (line 537) | public function addMinutes($minutes) {
    method addHours (line 554) | public function addHours($hours) {
    method after (line 571) | public function after($when) {
    method before (line 592) | public function before($when) {
    method equals (line 613) | public function equals($when) {
    method timestamp (line 626) | public function timestamp() {
    method toString (line 646) | public function toString($fullformat = true) {
    method __toString (line 675) | public function __toString() {
    method isValidTime (line 678) | public static function isValidTime($hour, $minute, $second, $microseco...
  function is_utf8 (line 688) | function is_utf8($s) {
  function is_utf8 (line 693) | function is_utf8($s) {
  function is_utf8 (line 698) | function is_utf8($s) {
  function is_list (line 780) | function is_list(array $a) {
  function array_ref_search (line 790) | function array_ref_search(&$value, &$array) {
  function spl_object_hash (line 809) | function spl_object_hash($object) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseFormatter.php
  class HproseFormatter (line 27) | class HproseFormatter {
    method serialize (line 28) | public static function serialize(&$var, $simple = false) {
    method unserialize (line 34) | public static function &unserialize($data, $simple = false) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseHttpClient.php
  class HproseBaseHttpClient (line 27) | abstract class HproseBaseHttpClient extends HproseClient {
    method hproseKeepCookieInSession (line 37) | static function hproseKeepCookieInSession() {
    method keepSession (line 40) | public static function keepSession() {
    method setCookie (line 46) | protected function setCookie($headers) {
    method formatCookie (line 84) | protected abstract function formatCookie($cookies);
    method getCookie (line 85) | protected function getCookie() {
    method __construct (line 108) | public function __construct($url = '') {
    method useService (line 112) | public function useService($url = '', $namespace = '') {
    method setHeader (line 125) | public function setHeader($name, $value) {
    method setProxy (line 138) | public function setProxy($proxy = NULL) {
    method setTimeout (line 141) | public function setTimeout($timeout) {
    method getTimeout (line 144) | public function getTimeout() {
    method setKeepAlive (line 147) | public function setKeepAlive($keepAlive = true) {
    method getKeepAlive (line 150) | public function getKeepAlive() {
    method setKeepAliveTimeout (line 153) | public function setKeepAliveTimeout($timeout) {
    method getKeepAliveTimeout (line 156) | public function getKeepAliveTimeout() {
  class HproseHttpClient (line 162) | class HproseHttpClient extends HproseBaseHttpClient {
    method formatCookie (line 163) | protected function formatCookie($cookies) {
    method send (line 169) | protected function send($request) {
    method formatCookie (line 203) | protected function formatCookie($cookies) {
    method __construct (line 209) | public function __construct($url = '') {
    method send (line 213) | protected function send($request) {
    method __destruct (line 267) | public function __destruct() {
    method formatCookie (line 274) | protected function formatCookie($cookies) {
    method __errorHandler (line 280) | public function __errorHandler($errno, $errstr, $errfile, $errline) {
    method send (line 283) | protected function send($request) {
  class HproseHttpClient (line 201) | class HproseHttpClient extends HproseBaseHttpClient {
    method formatCookie (line 163) | protected function formatCookie($cookies) {
    method send (line 169) | protected function send($request) {
    method formatCookie (line 203) | protected function formatCookie($cookies) {
    method __construct (line 209) | public function __construct($url = '') {
    method send (line 213) | protected function send($request) {
    method __destruct (line 267) | public function __destruct() {
    method formatCookie (line 274) | protected function formatCookie($cookies) {
    method __errorHandler (line 280) | public function __errorHandler($errno, $errstr, $errfile, $errline) {
    method send (line 283) | protected function send($request) {
  class HproseHttpClient (line 273) | class HproseHttpClient extends HproseBaseHttpClient {
    method formatCookie (line 163) | protected function formatCookie($cookies) {
    method send (line 169) | protected function send($request) {
    method formatCookie (line 203) | protected function formatCookie($cookies) {
    method __construct (line 209) | public function __construct($url = '') {
    method send (line 213) | protected function send($request) {
    method __destruct (line 267) | public function __destruct() {
    method formatCookie (line 274) | protected function formatCookie($cookies) {
    method __errorHandler (line 280) | public function __errorHandler($errno, $errstr, $errfile, $errline) {
    method send (line 283) | protected function send($request) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseHttpServer.php
  class HproseHttpServer (line 26) | class HproseHttpServer {
    method __construct (line 57) | public function __construct() {
    method __filterHandler (line 78) | public function __filterHandler($data) {
    method __errorHandler (line 93) | public function __errorHandler($errno, $errstr, $errfile, $errline) {
    method sendHeader (line 101) | private function sendHeader() {
    method sendError (line 121) | private function sendError() {
    method doInvoke (line 132) | private function doInvoke() {
    method doFunctionList (line 217) | private function doFunctionList() {
    method getDeclaredOnlyMethods (line 225) | private function getDeclaredOnlyMethods($class) {
    method addMissingFunction (line 236) | public function addMissingFunction($function, $resultMode = HproseResu...
    method addFunction (line 239) | public function addFunction($function, $alias = NULL, $resultMode = Hp...
    method addFunctions (line 264) | public function addFunctions($functions, $aliases = NULL, $resultMode ...
    method addMethod (line 280) | public function addMethod($methodname, $belongto, $alias = NULL, $resu...
    method addMethods (line 291) | public function addMethods($methods, $belongto, $aliases = NULL, $resu...
    method addInstanceMethods (line 320) | public function addInstanceMethods($object, $class = NULL, $aliasPrefi...
    method addClassMethods (line 324) | public function addClassMethods($class, $execclass = NULL, $aliasPrefi...
    method add (line 328) | public function add() {
    method isDebugEnabled (line 403) | public function isDebugEnabled() {
    method setDebugEnabled (line 406) | public function setDebugEnabled($enable = true) {
    method isCrossDomainEnabled (line 409) | public function isCrossDomainEnabled() {
    method setCrossDomainEnabled (line 412) | public function setCrossDomainEnabled($enable = true) {
    method isP3PEnabled (line 415) | public function isP3PEnabled() {
    method setP3PEnabled (line 418) | public function setP3PEnabled($enable = true) {
    method isGetEnabled (line 421) | public function isGetEnabled() {
    method setGetEnabled (line 424) | public function setGetEnabled($enable = true) {
    method getFilter (line 427) | public function getFilter() {
    method setFilter (line 430) | public function setFilter($filter) {
    method getSimpleMode (line 433) | public function getSimpleMode() {
    method setSimpleMode (line 436) | public function setSimpleMode($simple = true) {
    method getErrorTypes (line 439) | public function getErrorTypes() {
    method setErrorTypes (line 442) | public function setErrorTypes($error_types) {
    method handle (line 445) | public function handle() {
    method start (line 479) | public function start() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseIOStream.php
  class HproseAbstractStream (line 23) | abstract class HproseAbstractStream {
    method close (line 24) | public abstract function close();
    method getc (line 25) | public abstract function getc();
    method read (line 26) | public abstract function read($length);
    method readuntil (line 27) | public abstract function readuntil($char);
    method seek (line 28) | public abstract function seek($offset, $whence = SEEK_SET);
    method mark (line 29) | public abstract function mark();
    method unmark (line 30) | public abstract function unmark();
    method reset (line 31) | public abstract function reset();
    method skip (line 32) | public abstract function skip($n);
    method eof (line 33) | public abstract function eof();
    method write (line 34) | public abstract function write($string, $length = -1);
  class HproseStringStream (line 37) | class HproseStringStream extends HproseAbstractStream {
    method __construct (line 42) | public function __construct($string = '') {
    method close (line 48) | public function close() {
    method length (line 54) | public function length() {
    method getc (line 57) | public function getc() {
    method read (line 60) | public function read($length) {
    method readuntil (line 65) | public function readuntil($tag) {
    method seek (line 77) | public function seek($offset, $whence = SEEK_SET) {
    method mark (line 92) | public function mark() {
    method unmark (line 95) | public function unmark() {
    method reset (line 98) | public function reset() {
    method skip (line 103) | public function skip($n) {
    method eof (line 106) | public function eof() {
    method write (line 109) | public function write($string, $length = -1) {
    method toString (line 119) | public function toString() {
  class HproseFileStream (line 124) | class HproseFileStream extends HproseAbstractStream {
    method __construct (line 130) | public function __construct($fp) {
    method close (line 137) | public function close() {
    method getc (line 140) | public function getc() {
    method read (line 160) | public function read($length) {
    method readuntil (line 188) | public function readuntil($char) {
    method seek (line 193) | public function seek($offset, $whence = SEEK_SET) {
    method mark (line 203) | public function mark() {
    method unmark (line 216) | public function unmark() {
    method reset (line 219) | public function reset() {
    method skip (line 222) | public function skip($n) {
    method eof (line 225) | public function eof() {
    method write (line 229) | public function write($string, $length = -1) {
  class HproseProcStream (line 235) | class HproseProcStream extends HproseAbstractStream {
    method __construct (line 242) | public function __construct($process, $pipes) {
    method close (line 250) | public function close() {
    method getc (line 255) | public function getc() {
    method read (line 275) | public function read($length) {
    method readuntil (line 303) | public function readuntil($char) {
    method seek (line 308) | public function seek($offset, $whence = SEEK_SET) {
    method mark (line 318) | public function mark() {
    method unmark (line 331) | public function unmark() {
    method reset (line 334) | public function reset() {
    method skip (line 337) | public function skip($n) {
    method eof (line 340) | public function eof() {
    method write (line 344) | public function write($string, $length = -1) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseReader.php
  class HproseRawReader (line 27) | class HproseRawReader {
    method __construct (line 29) | function __construct(&$stream) {
    method readRaw (line 32) | public function readRaw($ostream = NULL, $tag = NULL) {
    method readNumberRaw (line 104) | private function readNumberRaw($ostream, $tag) {
    method readDateTimeRaw (line 111) | private function readDateTimeRaw($ostream, $tag) {
    method readUTF8CharRaw (line 121) | private function readUTF8CharRaw($ostream, $tag) {
    method readBytesRaw (line 138) | private function readBytesRaw($ostream, $tag) {
    method readStringRaw (line 145) | private function readStringRaw($ostream, $tag) {
    method readGuidRaw (line 197) | private function readGuidRaw($ostream, $tag) {
    method readComplexRaw (line 202) | private function readComplexRaw($ostream, $tag) {
  class HproseSimpleReader (line 214) | class HproseSimpleReader extends HproseRawReader {
    method __construct (line 216) | function __construct(&$stream) {
    method unserialize (line 220) | public function &unserialize($tag = NULL) {
    method checkTag (line 262) | public function checkTag($expectTag, $tag = NULL) {
    method checkTags (line 268) | public function checkTags($expectTags, $tag = NULL) {
    method readInteger (line 276) | public function readInteger($includeTag = false) {
    method readLong (line 286) | public function readLong($includeTag = false) {
    method readDouble (line 296) | public function readDouble($includeTag = false) {
    method readNaN (line 306) | public function readNaN() {
    method readInfinity (line 310) | public function readInfinity($includeTag = false) {
    method readNull (line 314) | public function readNull() {
    method readEmpty (line 318) | public function readEmpty() {
    method readBoolean (line 322) | public function readBoolean() {
    method readDate (line 326) | public function readDate($includeTag = false) {
    method readTime (line 369) | public function readTime($includeTag = false) {
    method readBytes (line 396) | public function readBytes($includeTag = false) {
    method readUTF8Char (line 403) | public function readUTF8Char($includeTag = false) {
    method readString (line 419) | public function readString($includeTag = false) {
    method readGuid (line 469) | public function readGuid($includeTag = false) {
    method readListBegin (line 476) | protected function &readListBegin() {
    method readListEnd (line 480) | protected function &readListEnd(&$list) {
    method readList (line 488) | public function &readList($includeTag = false) {
    method readMapBegin (line 493) | protected function &readMapBegin() {
    method readMapEnd (line 497) | protected function &readMapEnd(&$map) {
    method readMap (line 506) | public function &readMap($includeTag = false) {
    method readObjectBegin (line 511) | protected function readObjectBegin() {
    method readObjectEnd (line 516) | protected function readObjectEnd($object, $fields) {
    method readObject (line 540) | public function readObject($includeTag = false) {
    method readClass (line 551) | protected function readClass() {
    method reset (line 561) | public function reset() {
  class HproseReader (line 566) | class HproseReader extends HproseSimpleReader {
    method __construct (line 568) | function __construct(&$stream) {
    method unserialize (line 572) | public function &unserialize($tag = NULL) {
    method readDate (line 581) | public function readDate($includeTag = false) {
    method readTime (line 590) | public function readTime($includeTag = false) {
    method readBytes (line 599) | public function readBytes($includeTag = false) {
    method readString (line 608) | public function readString($includeTag = false) {
    method readGuid (line 617) | public function readGuid($includeTag = false) {
    method readList (line 626) | public function &readList($includeTag = false) {
    method readMap (line 635) | public function &readMap($includeTag = false) {
    method readObject (line 644) | public function readObject($includeTag = false) {
    method readRef (line 657) | private function &readRef() {
    method reset (line 667) | public function reset() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseTags.php
  class HproseTags (line 23) | class HproseTags {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Hprose/HproseWriter.php
  class HproseSimpleWriter (line 27) | class HproseSimpleWriter {
    method __construct (line 31) | function __construct(&$stream) {
    method serialize (line 36) | public function serialize(&$var) {
    method writeInteger (line 91) | public function writeInteger($integer) {
    method writeLong (line 99) | public function writeLong($long) {
    method writeDouble (line 107) | public function writeDouble($double) {
    method writeNaN (line 118) | public function writeNaN() {
    method writeInfinity (line 121) | public function writeInfinity($positive = true) {
    method writeNull (line 124) | public function writeNull() {
    method writeEmpty (line 127) | public function writeEmpty() {
    method writeBoolean (line 130) | public function writeBoolean($bool) {
    method writeDate (line 133) | public function writeDate($date, $checkRef = false) {
    method writeTime (line 141) | public function writeTime($time, $checkRef = false) {
    method writeBytes (line 149) | public function writeBytes($bytes, $checkRef = false) {
    method writeUTF8Char (line 155) | public function writeUTF8Char($char) {
    method writeString (line 158) | public function writeString($str, $checkRef = false) {
    method writeList (line 164) | public function writeList(&$list, $checkRef = false) {
    method writeMap (line 174) | public function writeMap(&$map, $checkRef = false) {
    method writeStdObject (line 185) | public function writeStdObject($obj, $checkRef = false) {
    method writeObjectBegin (line 189) | protected function writeObjectBegin($obj) {
    method writeObjectEnd (line 201) | protected function writeObjectEnd($obj, $index) {
    method writeObject (line 211) | public function writeObject($obj, $checkRef = false) {
    method writeClass (line 214) | protected function writeClass($alias, $fields) {
    method reset (line 234) | public function reset() {
  class HproseWriter (line 239) | class HproseWriter extends HproseSimpleWriter {
    method __construct (line 242) | function __construct(&$stream) {
    method writeRef (line 247) | private function writeRef(&$obj, $checkRef, $writeBegin, $writeEnd) {
    method writeDate (line 271) | public function writeDate($date, $checkRef = false) {
    method writeTime (line 274) | public function writeTime($time, $checkRef = false) {
    method writeBytes (line 277) | public function writeBytes($bytes, $checkRef = false) {
    method writeString (line 280) | public function writeString($str, $checkRef = false) {
    method writeList (line 283) | public function writeList(&$list, $checkRef = false) {
    method writeMap (line 286) | public function writeMap(&$map, $checkRef = false) {
    method writeStdObject (line 289) | public function writeStdObject($obj, $checkRef = false) {
    method writeObject (line 292) | public function writeObject($obj, $checkRef = false) {
    method reset (line 295) | public function reset() {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/SmartTemplate/class.smarttemplate.php
  class SmartTemplate (line 31) | class SmartTemplate
    method SmartTemplate (line 120) | function SmartTemplate ( $template_filename = '' )
    method set_templatefile (line 145) | function set_templatefile ($template_filename)	{	$this->tpl_file  =  $...
    method add_value (line 146) | function add_value ($name, $value )				{	$this->assign($name, $value);	}
    method add_array (line 147) | function add_array ($name, $value )				{	$this->append($name, $value);	}
    method assign (line 165) | function assign ( $name, $value = '' )
    method append (line 193) | function append ( $name, $value )
    method result (line 215) | function result ( $_top = '' )
    method output (line 233) | function output ( $_top = '' )
    method debug (line 309) | function debug ( $_top = '' )
    method use_cache (line 339) | function use_cache ( $key = '' )
    method cache_callback (line 364) | function cache_callback ( $output )
    method mtime (line 383) | function mtime ( $filename )

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/SmartTemplate/class.smarttemplatedebugger.php
  class SmartTemplateDebugger (line 13) | class SmartTemplateDebugger
    method SmartTemplateDebugger (line 34) | function SmartTemplateDebugger ( $template_filename )
    method start (line 61) | function start ( $vars )
    method toggleview (line 341) | function toggleview ( $suffix = '')
    method tip (line 361) | function tip ( $value )
    method vardump (line 384) | function vardump($var, $depth = 0)
    method var_name (line 411) | function var_name($tag)
    method highlight_html (line 445) | function highlight_html ( $code )

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/SmartTemplate/class.smarttemplateparser.php
  class SmartTemplateParser (line 13) | class SmartTemplateParser
    method SmartTemplateParser (line 48) | function SmartTemplateParser ( $template_filename )
    method compile (line 77) | function compile( $compiled_template_filename = '' )
    method var_name (line 288) | function var_name($tag)
    method cmd_name (line 336) | function cmd_name($tag)
    method count_subtemplates (line 357) | function count_subtemplates()

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/Smarty.class.php
  class Smarty (line 101) | class Smarty extends Smarty_Internal_TemplateBase {
    method __construct (line 582) | public function __construct()
    method __destruct (line 607) | public function __destruct()
    method __clone (line 615) | public function __clone()
    method __get (line 630) | public function __get($name)
    method __set (line 656) | public function __set($name, $value)
    method templateExists (line 679) | public function templateExists($resource_name)
    method getGlobal (line 697) | public function getGlobal($varname = null)
    method clearAllCache (line 721) | function clearAllCache($exp_time = null, $type = null)
    method clearCache (line 739) | public function clearCache($template_name, $cache_id = null, $compile_...
    method enableSecurity (line 754) | public function enableSecurity($security_class = null)
    method disableSecurity (line 780) | public function disableSecurity()
    method setTemplateDir (line 793) | public function setTemplateDir($template_dir)
    method addTemplateDir (line 812) | public function addTemplateDir($template_dir, $key=null)
    method getTemplateDir (line 844) | public function getTemplateDir($index=null)
    method setConfigDir (line 859) | public function setConfigDir($config_dir)
    method addConfigDir (line 877) | public function addConfigDir($config_dir, $key=null)
    method getConfigDir (line 910) | public function getConfigDir($index=null)
    method setPluginsDir (line 925) | public function setPluginsDir($plugins_dir)
    method addPluginsDir (line 942) | public function addPluginsDir($plugins_dir)
    method getPluginsDir (line 971) | public function getPluginsDir()
    method setCompileDir (line 982) | public function setCompileDir($compile_dir)
    method getCompileDir (line 996) | public function getCompileDir()
    method setCacheDir (line 1007) | public function setCacheDir($cache_dir)
    method getCacheDir (line 1021) | public function getCacheDir()
    method setDefaultModifiers (line 1032) | public function setDefaultModifiers($modifiers)
    method addDefaultModifiers (line 1044) | public function addDefaultModifiers($modifiers)
    method getDefaultModifiers (line 1060) | public function getDefaultModifiers()
    method setAutoloadFilters (line 1073) | public function setAutoloadFilters($filters, $type=null)
    method addAutoloadFilters (line 1091) | public function addAutoloadFilters($filters, $type=null)
    method getAutoloadFilters (line 1118) | public function getAutoloadFilters($type=null)
    method getDebugTemplate (line 1132) | public function getDebugTemplate()
    method setDebugTemplate (line 1144) | public function setDebugTemplate($tpl_name)
    method createTemplate (line 1164) | public function createTemplate($template, $cache_id = null, $compile_i...
    method loadPlugin (line 1230) | public function loadPlugin($plugin_name, $check = true)
    method compileAllTemplates (line 1290) | public function compileAllTemplates($extention = '.tpl', $force_compil...
    method compileAllConfig (line 1304) | public function compileAllConfig($extention = '.conf', $force_compile ...
    method clearCompiledTemplate (line 1317) | public function clearCompiledTemplate($resource_name = null, $compile_...
    method getTags (line 1329) | public function getTags(Smarty_Internal_Template $template)
    method testInstall (line 1340) | public function testInstall(&$errors=null)
    method mutingErrorHandler (line 1352) | public static function mutingErrorHandler($errno, $errstr, $errfile, $...
    method muteExpectedErrors (line 1397) | public static function muteExpectedErrors()
    method unmuteExpectedErrors (line 1429) | public static function unmuteExpectedErrors()
  class SmartyException (line 1439) | class SmartyException extends Exception {
  class SmartyCompilerException (line 1446) | class SmartyCompilerException extends SmartyException  {
  function smartyAutoload (line 1452) | function smartyAutoload($class)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/SmartyBC.class.php
  class SmartyBC (line 42) | class SmartyBC extends Smarty {
    method __construct (line 55) | public function __construct(array $options=array())
    method assign_by_ref (line 68) | public function assign_by_ref($tpl_var, &$value)
    method append_by_ref (line 80) | public function append_by_ref($tpl_var, &$value, $merge = false)
    method clear_assign (line 90) | public function clear_assign($tpl_var)
    method register_function (line 103) | public function register_function($function, $function_impl, $cacheabl...
    method unregister_function (line 113) | public function unregister_function($function)
    method register_object (line 127) | public function register_object($object, $object_impl, $allowed = arra...
    method unregister_object (line 139) | public function unregister_object($object)
    method register_block (line 152) | public function register_block($block, $block_impl, $cacheable=true, $...
    method unregister_block (line 162) | public function unregister_block($block)
    method register_compiler_function (line 174) | public function register_compiler_function($function, $function_impl, ...
    method unregister_compiler_function (line 184) | public function unregister_compiler_function($function)
    method register_modifier (line 195) | public function register_modifier($modifier, $modifier_impl)
    method unregister_modifier (line 205) | public function unregister_modifier($modifier)
    method register_resource (line 216) | public function register_resource($type, $functions)
    method unregister_resource (line 226) | public function unregister_resource($type)
    method register_prefilter (line 237) | public function register_prefilter($function)
    method unregister_prefilter (line 247) | public function unregister_prefilter($function)
    method register_postfilter (line 258) | public function register_postfilter($function)
    method unregister_postfilter (line 268) | public function unregister_postfilter($function)
    method register_outputfilter (line 279) | public function register_outputfilter($function)
    method unregister_outputfilter (line 289) | public function unregister_outputfilter($function)
    method load_filter (line 300) | public function load_filter($type, $name)
    method clear_cache (line 314) | public function clear_cache($tpl_file = null, $cache_id = null, $compi...
    method clear_all_cache (line 325) | public function clear_all_cache($exp_time = null)
    method is_cached (line 338) | public function is_cached($tpl_file, $cache_id = null, $compile_id = n...
    method clear_all_assign (line 346) | public function clear_all_assign()
    method clear_compiled_tpl (line 361) | public function clear_compiled_tpl($tpl_file = null, $compile_id = nul...
    method template_exists (line 372) | public function template_exists($tpl_file)
    method get_template_vars (line 383) | public function get_template_vars($name=null)
    method get_config_vars (line 394) | public function get_config_vars($name=null)
    method config_load (line 406) | public function config_load($file, $section = null, $scope = 'global')
    method get_registered_object (line 417) | public function get_registered_object($name)
    method clear_config (line 427) | public function clear_config($var = null)
    method trigger_error (line 438) | public function trigger_error($error_msg, $error_type = E_USER_WARNING)
  function smarty_php_tag (line 454) | function smarty_php_tag($params, $content, $template, &$repeat)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/block.textformat.php
  function smarty_block_textformat (line 35) | function smarty_block_textformat($params, $content, $template, &$repeat)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.counter.php
  function smarty_function_counter (line 22) | function smarty_function_counter($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.cycle.php
  function smarty_function_cycle (line 46) | function smarty_function_cycle($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.fetch.php
  function smarty_function_fetch (line 23) | function smarty_function_fetch($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.html_checkboxes.php
  function smarty_function_html_checkboxes (line 45) | function smarty_function_html_checkboxes($params, $template)
  function smarty_function_html_checkboxes_output (line 153) | function smarty_function_html_checkboxes_output($name, $value, $output, ...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.html_image.php
  function smarty_function_html_image (line 37) | function smarty_function_html_image($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.html_options.php
  function smarty_function_html_options (line 36) | function smarty_function_html_options($params, $template)
  function smarty_function_html_options_optoutput (line 132) | function smarty_function_html_options_optoutput($key, $value, $selected,...
  function smarty_function_html_options_optgroup (line 164) | function smarty_function_html_options_optgroup($key, $values, $selected,...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.html_radios.php
  function smarty_function_html_radios (line 45) | function smarty_function_html_radios($params, $template)
  function smarty_function_html_radios_output (line 140) | function smarty_function_html_radios_output($name, $value, $output, $sel...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.html_select_date.php
  function smarty_function_html_select_date (line 54) | function smarty_function_html_select_date($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.html_select_time.php
  function smarty_function_html_select_time (line 34) | function smarty_function_html_select_time($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.html_table.php
  function smarty_function_html_table (line 50) | function smarty_function_html_table($params, $template)
  function smarty_function_html_table_cycle (line 166) | function smarty_function_html_table_cycle($name, $var, $no)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.mailto.php
  function smarty_function_mailto (line 51) | function smarty_function_mailto($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/function.math.php
  function smarty_function_math (line 24) | function smarty_function_math($params, $template)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.capitalize.php
  function smarty_modifier_capitalize (line 25) | function smarty_modifier_capitalize($string, $uc_digits = false, $lc_res...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.date_format.php
  function smarty_modifier_date_format (line 29) | function smarty_modifier_date_format($string, $format = SMARTY_RESOURCE_...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.debug_print_var.php
  function smarty_modifier_debug_print_var (line 22) | function smarty_modifier_debug_print_var ($var, $depth = 0, $length = 40)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.escape.php
  function smarty_modifier_escape (line 24) | function smarty_modifier_escape($string, $esc_type = 'html', $char_set =...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.regex_replace.php
  function smarty_modifier_regex_replace (line 24) | function smarty_modifier_regex_replace($string, $search, $replace)
  function _smarty_regex_replace_check (line 41) | function _smarty_regex_replace_check($search)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.replace.php
  function smarty_modifier_replace (line 23) | function smarty_modifier_replace($string, $search, $replace)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.spacify.php
  function smarty_modifier_spacify (line 21) | function smarty_modifier_spacify($string, $spacify_char = ' ')

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifier.truncate.php
  function smarty_modifier_truncate (line 27) | function smarty_modifier_truncate($string, $length = 80, $etc = '...', $...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.cat.php
  function smarty_modifiercompiler_cat (line 25) | function smarty_modifiercompiler_cat($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.count_characters.php
  function smarty_modifiercompiler_count_characters (line 21) | function smarty_modifiercompiler_count_characters($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.count_paragraphs.php
  function smarty_modifiercompiler_count_paragraphs (line 22) | function smarty_modifiercompiler_count_paragraphs($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.count_sentences.php
  function smarty_modifiercompiler_count_sentences (line 22) | function smarty_modifiercompiler_count_sentences($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.count_words.php
  function smarty_modifiercompiler_count_words (line 21) | function smarty_modifiercompiler_count_words($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.default.php
  function smarty_modifiercompiler_default (line 21) | function smarty_modifiercompiler_default ($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.escape.php
  function smarty_modifiercompiler_escape (line 26) | function smarty_modifiercompiler_escape($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.from_charset.php
  function smarty_modifiercompiler_from_charset (line 20) | function smarty_modifiercompiler_from_charset($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.indent.php
  function smarty_modifiercompiler_indent (line 21) | function smarty_modifiercompiler_indent($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.lower.php
  function smarty_modifiercompiler_lower (line 22) | function smarty_modifiercompiler_lower($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.noprint.php
  function smarty_modifiercompiler_noprint (line 20) | function smarty_modifiercompiler_noprint($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.string_format.php
  function smarty_modifiercompiler_string_format (line 21) | function smarty_modifiercompiler_string_format($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.strip.php
  function smarty_modifiercompiler_strip (line 25) | function smarty_modifiercompiler_strip($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.strip_tags.php
  function smarty_modifiercompiler_strip_tags (line 21) | function smarty_modifiercompiler_strip_tags($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.to_charset.php
  function smarty_modifiercompiler_to_charset (line 20) | function smarty_modifiercompiler_to_charset($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.unescape.php
  function smarty_modifiercompiler_unescape (line 20) | function smarty_modifiercompiler_unescape($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.upper.php
  function smarty_modifiercompiler_upper (line 21) | function smarty_modifiercompiler_upper($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/modifiercompiler.wordwrap.php
  function smarty_modifiercompiler_wordwrap (line 21) | function smarty_modifiercompiler_wordwrap($params, $compiler)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/outputfilter.trimwhitespace.php
  function smarty_outputfilter_trimwhitespace (line 19) | function smarty_outputfilter_trimwhitespace($source, Smarty_Internal_Tem...

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/shared.escape_special_chars.php
  function smarty_function_escape_special_chars (line 21) | function smarty_function_escape_special_chars($string)
  function smarty_function_escape_special_chars (line 40) | function smarty_function_escape_special_chars($string)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/shared.literal_compiler_param.php
  function smarty_literal_compiler_param (line 19) | function smarty_literal_compiler_param($params, $index, $default=null)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/shared.make_timestamp.php
  function smarty_make_timestamp (line 17) | function smarty_make_timestamp($string)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/shared.mb_str_replace.php
  function smarty_mb_str_replace (line 20) | function smarty_mb_str_replace($search, $replace, $subject, &$count=0)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/shared.mb_unicode.php
  function smarty_mb_to_unicode (line 18) | function smarty_mb_to_unicode($string, $encoding=null) {
  function smarty_mb_from_unicode (line 36) | function smarty_mb_from_unicode($unicode, $encoding=null) {

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/shared.mb_wordwrap.php
  function smarty_mb_wordwrap (line 22) | function smarty_mb_wordwrap($str, $width=75, $break="\n", $cut=false)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/plugins/variablefilter.htmlspecialchars.php
  function smarty_variablefilter_htmlspecialchars (line 16) | function smarty_variablefilter_htmlspecialchars($source, $smarty)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/sysplugins/smarty_cacheresource.php
  class Smarty_CacheResource (line 16) | abstract class Smarty_CacheResource {
    method populate (line 38) | public abstract function populate(Smarty_Template_Cached $cached, Smar...
    method populateTimestamp (line 46) | public abstract function populateTimestamp(Smarty_Template_Cached $cac...
    method process (line 55) | public abstract function process(Smarty_Internal_Template $_template, ...
    method writeCachedContent (line 64) | public abstract function writeCachedContent(Smarty_Internal_Template $...
    method getCachedContent (line 72) | public function getCachedContent(Smarty_Internal_Template $_template)
    method clearAll (line 89) | public abstract function clearAll(Smarty $smarty, $exp_time=null);
    method clear (line 101) | public abstract function clear(Smarty $smarty, $resource_name, $cache_...
    method locked (line 104) | public function locked(Smarty $smarty, Smarty_Template_Cached $cached)
    method hasLock (line 120) | public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
    method acquireLock (line 126) | public function acquireLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method releaseLock (line 132) | public function releaseLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method load (line 146) | public static function load(Smarty $smarty, $type = null)
    method invalidLoadedCache (line 187) | public static function invalidLoadedCache(Smarty $smarty)
  class Smarty_Template_Cached (line 207) | class Smarty_Template_Cached {
    method __construct (line 285) | public function __construct(Smarty_Internal_Template $_template)
    method write (line 364) | public function write(Smarty_Internal_Template $_template, $content)

FILE: Application/Index/View/Sdk/phpwind/ThinkPHP/Library/Vendor/Smarty/sysplugins/smarty_cacheresource_custom.php
  class Smarty_CacheResource_Custom (line 16) | abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource {
    method fetch (line 29) | protected abstract function fetch($id, $name, $cache_id, $compile_id, ...
    method fetchTimestamp (line 43) | protected function fetchTimestamp($id, $name, $cache_id, $compile_id)
    method save (line 59) | protected abstract function save($id, $name, $cache_id, $compile_id, $...
    method delete (line 70) | protected abstract function delete($name, $cache_id, $compile_id, $exp...
    method populate (line 79) | public function populate(Smarty_Template_Cached $cached, Smarty_Intern...
    method populateTimestamp (line 94) | public function populateTimestamp(Smarty_Template_Cached $cached)
    method process (line 115) | public function process(Smarty_Internal_Template $_template, Smarty_Te...
    method writeCachedContent (line 147) | public function writeCachedContent(Smarty_Internal_Template $_template...
    method clearAll (line 166) | public function clearAll(Smarty $smarty, $exp_time=null)
    method clear (line 182) | public function clear(Smarty $smarty, $resource_name, $cache_id, $comp...
    method hasLock (line 195) | public function hasLock(Smarty $smarty, Smarty_T
Copy disabled (too large) Download .json
Condensed preview — 1051 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (24,344K chars).
[
  {
    "path": ".htaccess",
    "chars": 173,
    "preview": "<IfModule mod_rewrite.c>\n RewriteEngine on\n RewriteCond %{REQUEST_FILENAME} !-d\n RewriteCond %{REQUEST_FILENAME} !-f\n Re"
  },
  {
    "path": "Application/Common/Conf/config.php",
    "chars": 156,
    "preview": "<?php\nreturn array(//'配置项'=>'配置值'\n    'MODULE_ALLOW_LIST'    =>    array('Home','Index'),\n    'DEFAULT_MODULE'       => "
  },
  {
    "path": "Application/Common/Conf/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Common/Controller/BaseController.class.php",
    "chars": 5704,
    "preview": "<?php\n// 所有控制器的父控制器\n\nnamespace Common\\Controller;\nuse Home\\Tool\\HJCTool;\nuse Think\\Controller;\n\nclass BaseController ext"
  },
  {
    "path": "Application/Common/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Home/Common/Des/DES.php",
    "chars": 1454,
    "preview": "<?php\n\nclass DES\n{\n    public static function pkcs5_pad ($text, $blocksize) {\n        $pad = $blocksize - (strlen($text)"
  },
  {
    "path": "Application/Home/Common/Email/email.class.php",
    "chars": 7050,
    "preview": "<?php\r\nclass smtp\r\n\r\n{\r\n\r\n/* Public Variables */\r\n\r\nvar $smtp_port;\r\n\r\nvar $time_out;\r\n\r\nvar $host_name;\r\n\r\nvar $log_fil"
  },
  {
    "path": "Application/Home/Common/Rsa/BigInteger.php",
    "chars": 118451,
    "preview": "<?php\n\n/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */\n \n/**\n * Pure-PHP arbitrary precision integer arit"
  },
  {
    "path": "Application/Home/Common/Rsa/rsa.php",
    "chars": 7265,
    "preview": "<?php\n\n/*\n * PHP implementation of the RSA algorithm\n * (C) Copyright 2004 Edsko de Vries, Ireland\n *\n * Licensed under "
  },
  {
    "path": "Application/Home/Common/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Home/Conf/config.php",
    "chars": 440,
    "preview": "<?php\n\nreturn array(//'配置项'=>'配置值'\n\n    'DB_TYPE' => 'mysql', 'DB_HOST' => '127.0.0.1', // 服务器地址\n    'DB_NAME' => 'cloud"
  },
  {
    "path": "Application/Home/Conf/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Home/Controller/AuthController.class.php",
    "chars": 21848,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\n//"
  },
  {
    "path": "Application/Home/Controller/BatchoperaController.class.php",
    "chars": 1633,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncla"
  },
  {
    "path": "Application/Home/Controller/ChangesoftController.class.php",
    "chars": 6136,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ChangesoftControll"
  },
  {
    "path": "Application/Home/Controller/ContactController.class.php",
    "chars": 788,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ContactController "
  },
  {
    "path": "Application/Home/Controller/CreatecodeController.class.php",
    "chars": 3005,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncla"
  },
  {
    "path": "Application/Home/Controller/ForgetController.class.php",
    "chars": 3799,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse hdphp\\page\\Page;\nuse Home\\Tool\\HJCTool;\n\nreq"
  },
  {
    "path": "Application/Home/Controller/IndexController.class.php",
    "chars": 3118,
    "preview": "<?php\r\nnamespace Home\\Controller;\r\nuse Common\\Controller\\BaseController;\r\nuse Home\\Tool\\HJCTool;\r\nuse Home\\Tool\\Secret;\r"
  },
  {
    "path": "Application/Home/Controller/LoginController.class.php",
    "chars": 2256,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse hdphp\\page\\Page;\nuse Home\\Tool\\HJCTool;\n\ncla"
  },
  {
    "path": "Application/Home/Controller/ManagecodeController.class.php",
    "chars": 8207,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncl"
  },
  {
    "path": "Application/Home/Controller/ManagesoftController.class.php",
    "chars": 1272,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ManagesoftControlle"
  },
  {
    "path": "Application/Home/Controller/ModifypasswordController.class.php",
    "chars": 1286,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ModifyPasswordContr"
  },
  {
    "path": "Application/Home/Controller/NoticeController.class.php",
    "chars": 771,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncla"
  },
  {
    "path": "Application/Home/Controller/RecommendController.class.php",
    "chars": 2446,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass RecommendController"
  },
  {
    "path": "Application/Home/Controller/RegController.class.php",
    "chars": 1633,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse hdphp\\page\\Page;\nuse Home\\Tool\\HJCTool;\n\ncla"
  },
  {
    "path": "Application/Home/Controller/SupportController.class.php",
    "chars": 264,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass SupportController "
  },
  {
    "path": "Application/Home/Controller/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Home/Model/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Home/Tool/HJCTool.class.php",
    "chars": 2298,
    "preview": "<?php\nnamespace Home\\Tool;\n\nclass HJCTool {\n    static public function alertBack($msg) {\n        echo \"<meta charset='ut"
  },
  {
    "path": "Application/Home/Tool/Secret.class.php",
    "chars": 1990,
    "preview": "<?php\nnamespace Home\\Tool;\n\nclass Secret {\n\n    public function privateEncode($encryptData) {\n        $privateKeyStr = '"
  },
  {
    "path": "Application/Home/View/20170117.log",
    "chars": 383704,
    "preview": "## 来访时间:2017-01-17 10:04:48 IP:163.125.75.208\n## 请求字段密文:data=7C63EA6857A03DE93ED9B8D2A6A67CAE336F8332B87C453F3AB1B332FDA"
  },
  {
    "path": "Application/Home/View/20170117_offline.log",
    "chars": 132,
    "preview": "86AC0DA6A38250D594561677C2F631AC\n1348387DC9EE2276EED4E9E238101272\n891F42E3C6BD8960BED1A5F5C61DE15D\n6E0498A9377CB9947AC4A"
  },
  {
    "path": "Application/Home/View/Batchopera/index.html",
    "chars": 1868,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Changesoft/index.html",
    "chars": 6090,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Common/Navigation.html",
    "chars": 1499,
    "preview": "<nav class=\"lc-bd ng-scope\">\n    <nav class=\"dashboard-subnav navbar  navbar-static-top\" role=\"navigation\">\n        <div"
  },
  {
    "path": "Application/Home/View/Common/Sidebar.html",
    "chars": 1641,
    "preview": "<div class=\"left-container\">\n    <ul class=\"nav sidenav\" style=\"margin-top:-15px\">\n        <li>\n            <a class=\"di"
  },
  {
    "path": "Application/Home/View/Contact/index.html",
    "chars": 1142,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Createcode/index.html",
    "chars": 4046,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Forget/index.html",
    "chars": 3055,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 登录页</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n   "
  },
  {
    "path": "Application/Home/View/Index/index.html",
    "chars": 4000,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n  "
  },
  {
    "path": "Application/Home/View/Login/index.html",
    "chars": 3063,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 登录页</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n   "
  },
  {
    "path": "Application/Home/View/Managecode/codedetail.html",
    "chars": 4173,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Managecode/index.html",
    "chars": 11186,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Managesoft/index.html",
    "chars": 5007,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Modifypassword/index.html",
    "chars": 1928,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Notice/index.html",
    "chars": 796,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Recommend/index.html",
    "chars": 5813,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/Reg/index.html",
    "chars": 3261,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 注册页</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n   "
  },
  {
    "path": "Application/Home/View/Support/index.html",
    "chars": 1106,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Home/View/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Application/Home/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Application/Index/Common/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Application/Index/Conf/config.php",
    "chars": 38,
    "preview": "<?php\nreturn array(\n\t//'配置项'=>'配置值'\n);"
  },
  {
    "path": "Application/Index/Conf/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/Controller/IndexController.class.php",
    "chars": 168,
    "preview": "<?php\r\nnamespace Index\\Controller;\r\nuse Think\\Controller;\r\nclass IndexController extends Controller {\r\n    public functi"
  },
  {
    "path": "Application/Index/Controller/IntroController.class.php",
    "chars": 168,
    "preview": "<?php\r\nnamespace Index\\Controller;\r\nuse Think\\Controller;\r\nclass IntroController extends Controller {\r\n    public functi"
  },
  {
    "path": "Application/Index/Controller/SdkController.class.php",
    "chars": 159,
    "preview": "<?php\nnamespace Index\\Controller;\nuse Think\\Controller;\nclass SdkController extends Controller {\n    public function ind"
  },
  {
    "path": "Application/Index/Controller/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/Model/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Common/bottom.html",
    "chars": 79,
    "preview": "<div class=\"bottom\">\n    Copyright © 2016 浙ICP备16035010号-1 Sign++免费网络验证\n</div>\n"
  },
  {
    "path": "Application/Index/View/Index/index.html",
    "chars": 1832,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n    <me"
  },
  {
    "path": "Application/Index/View/Intro/index.html",
    "chars": 2819,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n    <me"
  },
  {
    "path": "Application/Index/View/Sdk/20161213.log",
    "chars": 240130,
    "preview": "## 来访时间:2016-12-13 00:01:03 IP:36.4.199.140\n## 请求字段密文:data=A64046AD98ECDFDC0E396A4C2D1CC3DE6EE5291A0C93CE47506E1F2BA4758"
  },
  {
    "path": "Application/Index/View/Sdk/index.html",
    "chars": 7188,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n    <me"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Common/Conf/config.php",
    "chars": 156,
    "preview": "<?php\nreturn array(//'配置项'=>'配置值'\n    'MODULE_ALLOW_LIST'    =>    array('Home','Index'),\n    'DEFAULT_MODULE'       => "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Common/Conf/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Common/Controller/BaseController.class.php",
    "chars": 5704,
    "preview": "<?php\n// 所有控制器的父控制器\n\nnamespace Common\\Controller;\nuse Home\\Tool\\HJCTool;\nuse Think\\Controller;\n\nclass BaseController ext"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Common/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Common/Des/DES.php",
    "chars": 1454,
    "preview": "<?php\n\nclass DES\n{\n    public static function pkcs5_pad ($text, $blocksize) {\n        $pad = $blocksize - (strlen($text)"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Common/Email/email.class.php",
    "chars": 6589,
    "preview": "<?php\nclass smtp\n\n{\n\n/* Public Variables */\n\nvar $smtp_port;\n\nvar $time_out;\n\nvar $host_name;\n\nvar $log_file;\n\nvar $rela"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Common/Rsa/BigInteger.php",
    "chars": 118451,
    "preview": "<?php\n\n/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */\n \n/**\n * Pure-PHP arbitrary precision integer arit"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Common/Rsa/rsa.php",
    "chars": 7265,
    "preview": "<?php\n\n/*\n * PHP implementation of the RSA algorithm\n * (C) Copyright 2004 Edsko de Vries, Ireland\n *\n * Licensed under "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Common/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Conf/config.php",
    "chars": 453,
    "preview": "<?php\n\nreturn array(//'配置项'=>'配置值'\n\n    'DB_TYPE' => 'mysql', 'DB_HOST' => '139.196.164.40', // 服务器地址\n    'DB_NAME' => '"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Conf/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/AuthController.class.php",
    "chars": 21890,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\n//"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/BatchoperaController.class.php",
    "chars": 1633,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncla"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/ChangesoftController.class.php",
    "chars": 6136,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ChangesoftControll"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/ContactController.class.php",
    "chars": 788,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ContactController "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/CreatecodeController.class.php",
    "chars": 3005,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncla"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/ForgetController.class.php",
    "chars": 3817,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse hdphp\\page\\Page;\nuse Home\\Tool\\HJCTool;\n\nreq"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/IndexController.class.php",
    "chars": 3031,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncla"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/LoginController.class.php",
    "chars": 2256,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse hdphp\\page\\Page;\nuse Home\\Tool\\HJCTool;\n\ncla"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/ManagecodeController.class.php",
    "chars": 8207,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/ManagesoftController.class.php",
    "chars": 1272,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ManagesoftControlle"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/ModifypasswordController.class.php",
    "chars": 1286,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass ModifyPasswordContr"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/NoticeController.class.php",
    "chars": 771,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\nuse Home\\Tool\\Secret;\n\ncla"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/RecommendController.class.php",
    "chars": 2446,
    "preview": "<?php\nnamespace Home\\Controller;\nuse Common\\Controller\\BaseController;\nuse Home\\Tool\\HJCTool;\n\nclass RecommendController"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/RegController.class.php",
    "chars": 1633,
    "preview": "<?php\nnamespace Home\\Controller;\n\nuse Common\\Controller\\BaseController;\nuse hdphp\\page\\Page;\nuse Home\\Tool\\HJCTool;\n\ncla"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Controller/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Model/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Tool/HJCTool.class.php",
    "chars": 2298,
    "preview": "<?php\nnamespace Home\\Tool;\n\nclass HJCTool {\n    static public function alertBack($msg) {\n        echo \"<meta charset='ut"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/Tool/Secret.class.php",
    "chars": 1990,
    "preview": "<?php\nnamespace Home\\Tool;\n\nclass Secret {\n\n    public function privateEncode($encryptData) {\n        $privateKeyStr = '"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Batchopera/index.html",
    "chars": 1868,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Changesoft/index.html",
    "chars": 6090,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Common/Navigation.html",
    "chars": 1499,
    "preview": "<nav class=\"lc-bd ng-scope\">\n    <nav class=\"dashboard-subnav navbar  navbar-static-top\" role=\"navigation\">\n        <div"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Common/Sidebar.html",
    "chars": 1517,
    "preview": "<div class=\"left-container\">\n    <ul class=\"nav sidenav\" style=\"margin-top:-15px\">\n        <li>\n            <a class=\"di"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Contact/index.html",
    "chars": 1138,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Createcode/index.html",
    "chars": 4046,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Forget/index.html",
    "chars": 3055,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 登录页</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n   "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Index/index.html",
    "chars": 4000,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n  "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Login/index.html",
    "chars": 3063,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 登录页</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n   "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Managecode/codedetail.html",
    "chars": 4173,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Managecode/index.html",
    "chars": 11186,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Managesoft/index.html",
    "chars": 5007,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Modifypassword/index.html",
    "chars": 1928,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Notice/index.html",
    "chars": 796,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Recommend/index.html",
    "chars": 5813,
    "preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link rel=\"shortcut icon\" href=\"/fav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/Reg/index.html",
    "chars": 3261,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 注册页</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n   "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/View/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Home/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Common/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Conf/config.php",
    "chars": 38,
    "preview": "<?php\nreturn array(\n\t//'配置项'=>'配置值'\n);"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Conf/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Controller/IndexController.class.php",
    "chars": 161,
    "preview": "<?php\nnamespace Index\\Controller;\nuse Think\\Controller;\nclass IndexController extends Controller {\n    public function i"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Controller/IntroController.class.php",
    "chars": 161,
    "preview": "<?php\nnamespace Index\\Controller;\nuse Think\\Controller;\nclass IntroController extends Controller {\n    public function i"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Controller/SdkController.class.php",
    "chars": 159,
    "preview": "<?php\nnamespace Index\\Controller;\nuse Think\\Controller;\nclass SdkController extends Controller {\n    public function ind"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Controller/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/Model/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/View/Common/bottom.html",
    "chars": 79,
    "preview": "<div class=\"bottom\">\n    Copyright © 2016 浙ICP备16035010号-1 Sign++免费网络验证\n</div>\n"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/View/Index/index.html",
    "chars": 1832,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n    <me"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/View/Intro/index.html",
    "chars": 2819,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n    <me"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/View/Sdk/index.html",
    "chars": 7188,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n    <me"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Index/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/06ef0777486b95c53697451727fb2559.php",
    "chars": 4952,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/16012e40a7f6b510e9943e72b2944ba3.php",
    "chars": 3899,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/2a94b8bda04ff446dcedd42276fc99ee.php",
    "chars": 7538,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 后台管理</title>\n    <link "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/37463860a5957117a109995a25189f7b.php",
    "chars": 3098,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 登录页</title>\n    <link r"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/3d6919c87dcf7f6dc5dd93550a60805c.php",
    "chars": 9418,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/51be2cf80887e4b3f7c7b5f2580b7741.php",
    "chars": 3304,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 注册页</title>\n    <link r"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/5a2799c2daf86e72afb6e10b79abf938.php",
    "chars": 7463,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/5b6adcb62ad2b5dfc2abc2cd5e11dc99.php",
    "chars": 3106,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证 登录页</title>\n    <link r"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/7fb85fe909f9e7c2807e96ab6513ce43.php",
    "chars": 7504,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/93e4a3a9c66f040f231c73f2286359f2.php",
    "chars": 8490,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/9d0babcb361c76b4b54c521c429b1099.php",
    "chars": 4211,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/a04edf75bfbc138def13a449e9662905.php",
    "chars": 9252,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/d8343976f86a51d40bd311b0f544aaf0.php",
    "chars": 5001,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Home/f732a99cc83d472785d17a30d8704609.php",
    "chars": 15017,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <title>Sign++免费网络验证 后台管理</titl"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Index/336eda2ba27f284d77868f4fbe143861.php",
    "chars": 7251,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\""
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Index/5f343310d4a83e1c2f6d4e5a6181e90a.php",
    "chars": 1895,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\""
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Cache/Index/6e2d0af3fe39b09386af2f6295df327a.php",
    "chars": 2882,
    "preview": "<?php if (!defined('THINK_PATH')) exit();?><!DOCTYPE html>\n<html>\n<head>\n    <title>Sign++免费网络验证</title>\n    <link rel=\""
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Data/_fields/cloud.cloud_notice.php",
    "chars": 248,
    "preview": "a:6:{i:0;s:2:\"id\";i:1;s:10:\"creat_time\";i:2;s:5:\"title\";i:3;s:7:\"content\";s:3:\"_pk\";s:2:\"id\";s:5:\"_type\";a:4:{s:2:\"id\";s"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Data/_fields/cloud.cloud_regcode.php",
    "chars": 1082,
    "preview": "a:21:{i:0;s:2:\"id\";i:1;s:7:\"user_id\";i:2;s:11:\"software_id\";i:3;s:8:\"time_str\";i:4;s:13:\"software_name\";i:5;s:4:\"code\";i"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Data/_fields/cloud.cloud_software.php",
    "chars": 793,
    "preview": "a:15:{i:0;s:2:\"id\";i:1;s:4:\"name\";i:2;s:7:\"version\";i:3;s:4:\"info\";i:4;s:10:\"update_url\";i:5;s:11:\"create_time\";i:6;s:7:"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Data/_fields/cloud.cloud_trial.php",
    "chars": 408,
    "preview": "a:9:{i:0;s:2:\"id\";i:1;s:12:\"computer_uid\";i:2;s:11:\"software_id\";i:3;s:13:\"has_try_count\";i:4;s:7:\"last_ip\";i:5;s:9:\"las"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Data/_fields/cloud.cloud_user.php",
    "chars": 677,
    "preview": "a:13:{i:0;s:2:\"id\";i:1;s:8:\"username\";i:2;s:8:\"password\";i:3;s:5:\"email\";i:4;s:8:\"reg_time\";i:5;s:14:\"lastlogin_time\";i:"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Data/_fields/cms.cms_manage.php",
    "chars": 485,
    "preview": "a:10:{i:0;s:2:\"id\";i:1;s:10:\"admin_user\";i:2;s:10:\"admin_pass\";i:3;s:5:\"level\";i:4;s:11:\"login_count\";i:5;s:7:\"last_ip\";"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Data/index.html",
    "chars": 1,
    "preview": " "
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Common/16_11_30.log",
    "chars": 479,
    "preview": "[ 2016-11-30T16:20:18+08:00 ] 101.226.66.172 /HOME\r\nERR: 无法加载模块:HOME\r\n\r\n[ 2016-11-30T16:20:18+08:00 ] 117.185.27.115 /HO"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_09_29.log",
    "chars": 703770,
    "preview": "[ 2016-09-29T08:51:56+08:00 ] 183.131.243.178 /index.php/Home\r\nINFO: [ app_init ] --START--\r\nINFO: Run Behavior\\BuildLit"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_09_30.log",
    "chars": 800195,
    "preview": "[ 2016-09-30T01:29:09+08:00 ] 183.131.243.178 /Home/managecode\r\nINFO: [ app_init ] --START--\r\nINFO: Run Behavior\\BuildLi"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_10_01.log",
    "chars": 441245,
    "preview": "[ 2016-10-01T01:00:46+08:00 ] 171.35.157.28 /Home/Login\r\nINFO: [ app_init ] --START--\r\nINFO: Run Behavior\\BuildLiteBehav"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_10_02.log",
    "chars": 18109,
    "preview": "[ 2016-10-02T00:01:55+08:00 ] 115.193.169.123 /Home/login\r\nINFO: [ app_init ] --START--\r\nINFO: Run Behavior\\BuildLiteBeh"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_10_09.log",
    "chars": 2832,
    "preview": "[ 2016-10-09T15:13:12+08:00 ] 42.91.126.160 /Home/changesoft?sid=&software=%E5%8D%A7%E8%99%8E%E8%97%8F%E9%BE%99&try_minu"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_10_13.log",
    "chars": 360,
    "preview": "[ 2016-10-13T18:47:51+08:00 ] 42.91.98.137 /Home/managecode1001Sign++免费网络验证\r\nERR: 无法加载控制器:Managecode1001Sign++免费网络验证\r\n\r\n"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_10_18.log",
    "chars": 7125,
    "preview": "[ 2016-10-18T22:30:41+08:00 ] 122.246.54.85 /Home/changesoft?sid=155&software=%E9%80%86%E6%88%98%E6%8C%82%E6%9C%BA%E8%84"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_10_25.log",
    "chars": 3963,
    "preview": "[ 2016-10-25T16:05:33+08:00 ] 14.115.124.33 /Home/changesoft?sid=&software=1&try_minutes=30&try_count=99999999999&bindmo"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_11_08.log",
    "chars": 15801,
    "preview": "[ 2016-11-08T00:06:26+08:00 ] 113.201.31.243 /Home/changesoft?sid=&software=%E8%BF%85%E6%B8%B8%E6%9C%80%E6%96%B0%E5%AE%8"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_11_13.log",
    "chars": 4224,
    "preview": "[ 2016-11-13T01:17:58+08:00 ] 113.24.105.252 /Home/changesoft?sid=&software=%E5%B8%9D%E7%8E%8Bpc&try_minutes=43200&try_c"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_11_17.log",
    "chars": 6475,
    "preview": "[ 2016-11-17T23:33:24+08:00 ] 42.91.125.22 /Home/changesoft?sid=144&software=%E5%8D%A7%E8%99%8E%E8%97%8F%E9%BE%99&try_mi"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_11_20.log",
    "chars": 93,
    "preview": "[ 2016-11-20T04:51:41+08:00 ] 85.25.197.231 /home/wp-login.php\r\nERR: 无法加载控制器:Wp-login.php\r\n\r\n"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_11_28.log",
    "chars": 3435,
    "preview": "[ 2016-11-28T19:38:57+08:00 ] 221.11.95.97 /Home/changesoft?sid=&software=%E9%98%BF%E7%8B%B8LOL%E5%8A%A9%E6%89%8B&try_mi"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_12_01.log",
    "chars": 17208,
    "preview": "[ 2016-12-01T20:14:42+08:00 ] 119.84.58.161 /Home/changesoft?sid=133&software=%E7%82%89%E5%AD%90%E3%80%82&try_minutes=30"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_12_02.log",
    "chars": 94,
    "preview": "[ 2016-12-02T12:30:30+08:00 ] 187.18.124.240 /home/wp-login.php\r\nERR: 无法加载控制器:Wp-login.php\r\n\r\n"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_12_06.log",
    "chars": 78,
    "preview": "[ 2016-12-06T16:25:44+08:00 ] 223.104.25.242 /Home/&p=p\r\nERR: 无法加载控制器:&p=p\r\n\r\n"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Home/16_12_12.log",
    "chars": 1302,
    "preview": "[ 2016-12-12T15:00:57+08:00 ] 183.69.192.109 /Home/changesoft?sid=133&software=%E7%82%89%E5%AD%90%E3%80%82&try_minutes=3"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_09_29.log",
    "chars": 258027,
    "preview": "[ 2016-09-29T00:16:41+08:00 ] 183.131.243.178 /\r\nINFO: [ app_init ] --START--\r\nINFO: Run Behavior\\BuildLiteBehavior [ Ru"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_09_30.log",
    "chars": 418694,
    "preview": "[ 2016-09-30T00:00:57+08:00 ] 111.251.93.84 mx-tw.mail.gm0.yahoodns.net:25\r\nINFO: [ app_init ] --START--\r\nINFO: Run Beha"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_01.log",
    "chars": 217714,
    "preview": "[ 2016-10-01T00:10:26+08:00 ] 111.251.93.84 mx-tw.mail.gm0.yahoodns.net:25\r\nINFO: [ app_init ] --START--\r\nINFO: Run Beha"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_02.log",
    "chars": 47707,
    "preview": "[ 2016-10-02T00:28:34+08:00 ] 115.193.169.123 /Public/fonts/nootype_-_radikal_bold-webfont.woff2\r\nERR: 无法加载控制器:Public\r\n\r"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_03.log",
    "chars": 17002,
    "preview": "[ 2016-10-03T00:44:45+08:00 ] 220.181.51.102 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-03T01:22:35+08:00 ] 107.1"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_04.log",
    "chars": 19600,
    "preview": "[ 2016-10-04T00:05:17+08:00 ] 198.52.119.97 /zz/combo?/os/mit/media/m/content_index/preview-default-min-e0e1d50.js\r\nERR:"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_05.log",
    "chars": 23592,
    "preview": "[ 2016-10-05T00:00:13+08:00 ] 107.151.202.23 http://www.sbjudge3.com/azenv.php\r\nERR: 无法加载控制器:Azenv.php\r\n\r\n[ 2016-10-05T0"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_06.log",
    "chars": 37261,
    "preview": "[ 2016-10-06T00:30:38+08:00 ] 95.213.187.188 http://check.best-proxies.ru/azenv.php?auth=147568503895&a=PSCN&i=234492010"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_07.log",
    "chars": 12063,
    "preview": "[ 2016-10-07T00:37:02+08:00 ] 107.151.202.23 http://www.sbjudge3.com/azenv.php\r\nERR: 无法加载控制器:Azenv.php\r\n\r\n[ 2016-10-07T0"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_08.log",
    "chars": 31390,
    "preview": "[ 2016-10-08T00:17:53+08:00 ] 119.127.52.174 /Public/fonts/nootype_-_radikal_bold-webfont.woff2\r\nERR: 无法加载控制器:Public\r\n\r\n"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_09.log",
    "chars": 11994,
    "preview": "[ 2016-10-09T00:41:10+08:00 ] 198.52.119.97 /zz/combo?/os/mit/media/m/content_index/preview-default-min-e0e1d50.js\r\nERR:"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_10.log",
    "chars": 7023,
    "preview": "[ 2016-10-10T00:12:13+08:00 ] 107.151.202.23 http://www.sbjudge3.com/azenv.php\r\nERR: 无法加载控制器:Azenv.php\r\n\r\n[ 2016-10-10T0"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_11.log",
    "chars": 15764,
    "preview": "[ 2016-10-11T00:26:10+08:00 ] 5.178.86.74 http://check.best-proxies.ru/azenv.php?auth=147611677059&a=PSCN&i=2344920104&p"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_12.log",
    "chars": 11209,
    "preview": "[ 2016-10-12T00:02:30+08:00 ] 123.125.67.218 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-12T00:25:20+08:00 ] 107.1"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_13.log",
    "chars": 11086,
    "preview": "[ 2016-10-13T00:02:24+08:00 ] 220.181.51.82 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-13T02:17:58+08:00 ] 180.76"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_14.log",
    "chars": 10748,
    "preview": "[ 2016-10-14T00:03:23+08:00 ] 123.125.71.17 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-14T01:04:25+08:00 ] 95.213"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_15.log",
    "chars": 5225,
    "preview": "[ 2016-10-15T00:03:23+08:00 ] 220.181.51.103 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-15T01:02:28+08:00 ] 5.178"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_16.log",
    "chars": 8812,
    "preview": "[ 2016-10-16T00:02:48+08:00 ] 123.125.71.86 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-16T00:21:57+08:00 ] 222.18"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_17.log",
    "chars": 8597,
    "preview": "[ 2016-10-17T00:03:21+08:00 ] 123.125.71.12 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-17T00:18:43+08:00 ] 107.15"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_18.log",
    "chars": 12639,
    "preview": "[ 2016-10-18T00:07:08+08:00 ] 122.246.54.85 /Public/fonts/nootype_-_radikal_bold-webfont.woff2\r\nERR: 无法加载控制器:Public\r\n\r\n["
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_19.log",
    "chars": 6874,
    "preview": "[ 2016-10-19T00:02:43+08:00 ] 220.181.51.75 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-19T00:42:06+08:00 ] 198.52"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_20.log",
    "chars": 7302,
    "preview": "[ 2016-10-20T00:06:59+08:00 ] 123.125.67.156 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-20T00:47:25+08:00 ] 182.2"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_21.log",
    "chars": 7689,
    "preview": "[ 2016-10-21T00:02:20+08:00 ] 123.125.71.72 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-21T00:31:50+08:00 ] 198.52"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_22.log",
    "chars": 13918,
    "preview": "[ 2016-10-22T00:01:30+08:00 ] 220.181.51.81 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-22T00:52:33+08:00 ] 42.91."
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_23.log",
    "chars": 8355,
    "preview": "[ 2016-10-23T00:01:01+08:00 ] 5.196.94.176 /muieblackcat\r\nERR: 无法加载控制器:Muieblackcat\r\n\r\n[ 2016-10-23T00:01:01+08:00 ] 5.1"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_24.log",
    "chars": 5812,
    "preview": "[ 2016-10-24T00:02:30+08:00 ] 123.125.67.225 /robots.txt\r\nERR: 无法加载控制器:Robots.txt\r\n\r\n[ 2016-10-24T02:20:56+08:00 ] 66.24"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_25.log",
    "chars": 9660,
    "preview": "[ 2016-10-25T00:03:41+08:00 ] 122.246.49.231 /Public/fonts/nootype_-_radikal_bold-webfont.woff2\r\nERR: 无法加载控制器:Public\r\n\r\n"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_26.log",
    "chars": 10957,
    "preview": "[ 2016-10-26T01:17:55+08:00 ] 212.92.127.29 /phpmyadmin/scripts/setup.php\r\nERR: 无法加载控制器:Phpmyadmin\r\n\r\n[ 2016-10-26T01:43"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_27.log",
    "chars": 7369,
    "preview": "[ 2016-10-27T00:46:29+08:00 ] 189.219.167.204 /cgi/common.cgi\r\nERR: 无法加载控制器:Cgi\r\n\r\n[ 2016-10-27T00:46:33+08:00 ] 189.219"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_28.log",
    "chars": 5372,
    "preview": "[ 2016-10-28T00:25:49+08:00 ] 121.42.0.14 /editors/index.html\r\nERR: 无法加载控制器:Editors\r\n\r\n[ 2016-10-28T00:26:03+08:00 ] 121"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_29.log",
    "chars": 6789,
    "preview": "[ 2016-10-29T00:27:09+08:00 ] 198.52.119.97 /zz/combo?/os/mit/media/m/content_index/preview-default-min-e0e1d50.js\r\nERR:"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_30.log",
    "chars": 6029,
    "preview": "[ 2016-10-30T00:15:02+08:00 ] 123.56.233.103 /admin\r\nERR: 无法加载控制器:Admin\r\n\r\n[ 2016-10-30T01:58:19+08:00 ] 61.160.210.25 /"
  },
  {
    "path": "Application/Index/View/Sdk/phpwind/Application/Runtime/Logs/Index/16_10_31.log",
    "chars": 2810,
    "preview": "[ 2016-10-31T00:04:09+08:00 ] 42.62.24.14 /phpmyadmin\r\nERR: 无法加载控制器:Phpmyadmin\r\n\r\n[ 2016-10-31T02:09:53+08:00 ] 187.160."
  }
]

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

About this extraction

This page contains the full source code of the zysyyz/Signxx GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1051 files (20.9 MB), approximately 5.6M tokens, and a symbol index with 6837 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!