ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý[COBS]Þ±±° ù Custom Online Banking System PPE (c)1994-95 ù °±±Ý[COBS]Þ±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Þ³ úúúúúù Custom Online Banking System ùúúúúúúú ³ Author: Robert Hunter ³Ý Þ³ úúúúúúúúù Version: 1.10 Standard ùúúúúúúúúúú ³ a.k.a: Midnight Slasher ³Ý Þ³ úúúúúúúúúúúúúúù [01/10/95] ùúúúúúúúúúúúúúúúú ³ E-Mail: mslasher@io.org ³Ý ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Þ³ CONTENTS ³ 1. Files Included 5. General Program Information ³Ý Þ³ OF ³ 2. Brief Program Summary 6. Distribution ³Ý Þ³ DOCUMENTATION ³ 3. Installation 7. Legal-ese ³Ý Þ³ ³ 4. External Files 8. Registration / Author Notes ³Ý ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý FILES INCLUDED Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Þ³ COBS.DAT ..... 1,618 .. Main Data Configuration File Þ³ COBS.DOC .... 19,414 .. Documentation / Installation Guide (Please Read) Þ³ COBS.HST ..... 2,268 .. Revison History / Whats.New Þ³ COBS.PPE .... 21,454 .. Online Banking System PPE Þ³ _COBS.DSP ..... 1,585 .. Menu Display/Interface (Optional) Þ³ _COBS.EXT ....... 348 .. Exit Display File (Optional) Þ³ _COBS.PMT ....... 876 .. Prompt Configuration File (Optional) Þ³ COBS_EXP.ZIP .. 2,522 .. Extra Examples (Optional) Þ³ FILE_ID.DIZ ..... 462 .. Description Identification File ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý BRIEF PROGRAM SUMMARY Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A .PPE (* PCBoard Programming Language Executable *) for PCBoard v15.2+ BBS. This PPE installs as a replacement or addition to your CMD.LST file. Its purpose is to add the functionality of a Time Bank or a KiloByte Bank or both! Options include Deposit, Withdrawal and Gambling; each of which can be toggled on/off if so desired. The display/interface of the bank is TOTALLY configurable via the usage of COBS replacement display codes which are real time updated during usage! The program allows security level specific configurations and a whole lot more! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý INSTALLATION Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This PPE _REQUIREs_ the installation of the PCBNOTES PSA (PCBoard Supported Allocation) in your user file. The program uses this PSA to store the bank information. A PSA was used so information is both easily accessible to the SysOp through a User Editor, and is also attached to the user info file so the bank information is saved along with the user file during any backup procedures you may be performing. If it currently isn't installed: 1. Run PCBSM 2. Press D (User Info File Maintenance) 3. Press C (Add PCBoard Supported Allocations) 4. Press F (Caller Notes Support) 5. Press Y to add the PCBNOTES PSA ... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1. Load PCBSETUP 2. Press B ( File Locations ) 3. Press B ( Configuration Files ) 4. Edit CMD.LST ( Press F2 at the CMD.LST File ) Example CMD.LST: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Charges Per ³ ³ Command Sec Minute Use PPE/MNU/Keystroke Replacement ³ ³ ÍÍÍÍÍÍÍÍÍ ÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ³ ³ BANK # 0 0 DRIVE:\PATH\COBS.PPE ³ ³ TIMEBANK # 0 0 C:\PCB\PPL\COBS\COBS.PPE ³ ³ BYTEBANK # 0 0 C:\PCB\PPL\COBS\COBS.PPE ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Þ³ (Use whatever command you like) 5. Copy the COBS.* file(s) to the SAME directory as COBS.PPE and edit the .DAT file and any other configuration files you like. Instructions will be contained within the actual configuration files. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý EXTERNAL FILES Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Packaging Note: You may notice that many files come packaged as _FILE.EXT . This is because they are optional files. They will not be used unless you rename them to FILE.EXT (remove the _). It is packaged this way to prevent users who want to use the defaults provided in the program from using these files unintentionally, which simply slows down the loading process. ----------------------------------------------------------------- COBS_EXP.ZIP:Contains extra examples of different types of banks. The first is is a default TIME AND BYTE bank. The second a TIME bank, and the third is a KILOBYTE only bank. These are included as samples of how configurable this banking system can become. ----------------------------------------------------------------- COBS.DAT : The configuration file. Basic instructions should be contained within the file. Line 1 must be an integer from 1 to 5. It specifies the line that will be used from the Caller Notes PSA to store the banking information. Line 2 is the number of clock ticks to wait between display messages. Since the display is real-time updated, this allows you to configure how long to wait after displaying a message like 'Depositing ...' before clearing the line and displaying the main prompt. If you find the display too quick, increase this number. If the display is too slow, decrease this number. Lines 3 and above contain specific configuration information for the bank based on security levels. ----------------------------------------------------------------- COBS.PMT : The Prompt File. Example .PMT files have been included in the extra EXP zip file. Here is the format of the file: Line 1: The MAIN Bank Prompt. Self explanatory. Line 2: The Deposit Time Prompt. The first few characters are the input characters used to Deposit Time. The next character MUST be a comma, and following that is the Deposit Time prompt. Example: DT,Deposit how much time? will allow the user to deposit time when they enter "DT" at the main bank prompt. The "Deposit how much time?" prompt will be displayed with one space after it and then allow any integer to be input, to a maximum length of the maximum time allowed in the users' account. Example2: D,Deposit Minutes: will display the "Deposit Minutes:" prompt when the user enters the "D" command. Example3: OFF,Garbage This turns OFF the ability to Deposit Minutes into the bank. (the comma must still come after "OFF".) * This is the basic format for the next 5 lines. If you wish to * * turn OFF the Byte Bank and just use a time bank, simply put * * "OFF," for lines 5-7 of the COBS.PMT file (no quotes). If you * * wish to turn off the Time Bank, put "OFF,.." in lines 2-4 of * * the COBS.PMT file.Usable COBS codes for prompts will be listed * * later in this file. ----------------------------------------------------------------- COBS.EXT : The Exit File. If this file exists, it will be displayed when the user quits the program. Quitting the program is accomplished by hitting "ENTER" at the blank Main Bank Prompt. ----------------------------------------------------------------- COBS.DSP : The Display File. This is the main file that determines how your bank looks. You can make your bank look however you want, using whatever colors you want, and placing the information anywhere you desire. LIMITATIONS: Make sure the file does NOT exceed 22 lines. Since you can create your own bank interface, you require the use of COBS codes. These codes are similar to PCBoard @@ codes. They are filled in with information that reflects the users' bank account and online statistics. All available codes will be listed later in this file. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý GENERAL PROGRAM INFORMATION Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1. COBS Codes - For Bank Interface and Prompt File ----------------------------------------------------------------------------- The following codes can be used in your COBS.DSP file. They allow you to design your own bank interface. All codes referring to TIME will be truncated and/or padded to 3 characters, while codes referring to KILOBYTES will be truncated/padded to 6 characters. CODE Replaced with Information: -------- ----------------------------------------------------------------- @COBS1@ ... The maximum TIME allowed to store in the bank @COBS2@ ... The maximum TIME allowed to deposit per day @COBS3@ ... The maximum TIME allowed to withdraw per day @COBS4@ ... The maximum KILOBYTES allowed to store in the bank @COBS5@ ... The maximum KILOBYTES allowed to deposit per day @COBS6@ ... The maximum KILOBYTES allowed to withdraw per day @COBS7@ ... The current TIME balance (how much time is in the bank) @COBS8@ ... The number of TIME/minutes deposited TODAY @COBS9@ ... The number of TIME/minutes withdrawn TODAY @COBS10@ .. The current KILOBYTE balance (how many kbytes are in the bank) @COBS11@ .. The number of KILOBYTES deposited in the bank TODAY @COBS12@ .. The number of KILOBYTES withdrawn from the bank TODAY @COBS16@ .. The number of KILOBYTES the user has left to download today @COBS17@ .. The number of TIME/minutes the user has left online today ----------------------------------------------------------------------------- COBS Codes used in prompts (COBS.PMT file): CODE Replaced with Information: Line # -------- -------------------------------------------- ------- @COBS18@ .. Minutes Available to Deposit (Today) ....... Line 2 @COBS19@ .. Minutes Available to Withdraw (Today) ...... Line 3 @COBS22@ .. Minutes Available to Gamble for this turn .. Line 4 @COBS20@ .. Kilobytes Available to Deposit (Today) ..... Line 5 @COBS21@ .. Kilobytes Available to Withdraw (Today) .... Line 6 @COBS23@ .. Kilobytes Available to Gamble this turn .... Line 7 2. Deposit/Withdraw routines ----------------------------------------------------------------------------- This bank uses intelligent deposit and withdrawal routines when dealing with daily limits. The best way to explain this is by example: Example 1: If User A has a withdraw per day limit of 20 minutes, but deposits 10 minutes during the day, he/she can later withdraw their initial 10 minutes PLUS the daily limit of 20 minutes from their balance for a total of a 30 minute withdrawal. Example 2: If User A has a deposit limit of 1000 kilobytes per day, but has previously withdrawn 500 kilobytes during the day, he/she will be allowed to deposit the 500kilobytes withdrawn from earlier that day PLUS the daily limit of 1000 kilobytes for a total of a 1500 kilobyte deposit. The purpose of a bank is not to limit a user's credit (Time/Kilobyte) usage, but extend it based upon their own bank balance, thus these intelligent routines are used. In no way is the user getting MORE than the daily limits imposed on them, they are simply allowed to freely use the bank without experiencing _bank usage limits_. 3. Miscellaneous ----------------------------------------------------------------------------- The program forces users to have at least 2 minutes left at all times (ie: can not deposit or gamble more than an amount that would leave them with less than 2 minutes online.) This 2 minutes allows the user to logoff and log back on again if necessary. The program saves bytes as kilobytes, however they are always properly converted according to the format of 1024 bytes = 1 kilobyte. All bank functions are logged to the caller log file. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý DISTRIBUTION Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ You are always welcome to send Internet E-Mail requesting program info, ask any questions you may have, or to request a UUEncoded copy of any supported program (that is what that specific account is for!), or: "FINGER -l mslasher@io.org" anytime via your internet accessible account to view up-to-date information about: þ Program information concerning the latest released version .............. þ þ Directions to official distribution site(s) ............................. þ þ A list of other supported programs ...................................... þ þ Other miscellaneous information ......................................... þ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý LEGAL-ESE Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ USAGE OF THIS SOFTWARE INDICATES YOUR ACCEPTANCE OF THE SOFTWARE LICENSE TERMS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This software is the property of the authors, Robert Hunter / G.L., the registered copyright owners. They only license the software's use, public distribution does not transfer ownership of this copy.In addition, you assume responsibility for the selection of the software to achieve your intended results and for the installation, use and results obtained from the software. This license is effective until terminated. You may terminate it at any time by destroying the software together with all copies. You agree upon such termination to destroy the software together with all copies. Among other things, you may not: rent, lease, modify, translate, disassemble, decompile, reverse engineer, or create derivative works based upon the software. If you fail to comply with any terms of this license agreement, your license is automatically terminated. This license will be governed by the author's residential provincial or state laws except as to copyright and other proprietary matters which may be preempted by federal laws and international treaties. In the event of any dispute involving this license, the Licensee consents to exclusive jurisdiction and venue in either the authors residential provincial/state or federal courts and agrees that the prevailing party shall be entitled to its attorney fees and costs. In the event any provision of this license shall be deemed unenforceable, void, or invalid, such provision shall be modified so as to make it valid & enforceable and as so modified the entire agreement shall remain in full force and effect. No decision, action or inaction by the author(s) shall be construed to be a waiver of any rights or remedies available to them. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ BY USING OR BEING IN POSSESSION OF THIS SOFTWARE YOU ACKNOWLEDGE THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE BOUND BY THIS AGREEMENT'S TERMS & CONDITIONS. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±Ý REGISTRATION / AUTHOR NOTES Þ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ We understand that software license enforcement is far from easy; copyright violations are much easier to report to the proper authorities. We also understand that the segment of persons that might be interested in this software is not one that enjoys paying for every utility (simple or not) that they deem useful. This software is not limited/crippled from standard usage in any way. If you use this software for an extended period of time (thirty or more days) registration is required. As you have most likely read many times before, much work, time and effort is put into producing software. We wish to be able to continue to support this software's development and the persons that use this software. Please send electronic mail (Internet Email) to the support account acknowledging your use of this software, and an address to send registration funds will be sent in reply. If you simply can not afford to part with a nominal registration fee, or simply do not feel the software is worth monetary registration, please at least acknowledge its usage so we know our efforts are not wasted. Either way, we do hope you find this software useful. Since we release uncrippled software, we can only hope the software is used and enjoyed, and those persons that can understand and appreciate the shareware concept can find the time to recognize the work that has gone into producing this package. -- Thank you. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Þ³ úúúù Contacting the Author Via Internet E-Mail: ùúúúú ³Ý ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±Ý Þ±± ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ