Patent Publication Number: US-11025766-B2

Title: Method, system, and device for process triggering

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     The present application is a continuation application of U.S. patent application Ser. No. 16/563,073, filed on Sep. 6, 2019, which is a continuation application of U.S. patent application Ser. No. 15/332,663, filed on Oct. 24, 2016, which claims the benefit of priority to Chinese Application No. 201510726028.8, filed Oct. 29, 2015, and entitled “METHOD, SYSTEM, AND DEVICE FOR PROCESS TRIGGERING.” The contents of all of the above applications are incorporated herein by reference in their entirety. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates generally to computer technologies, and more particularly, to methods, systems, and devices for process triggering. 
     BACKGROUND 
     With developments in mobile technologies, mobile phones have become an indispensable part of people&#39;s daily life, for offering various functionalities and providing convenient accesses to information. In existing technologies, each personal mobile terminal generally corresponds to a user or owner, and comes with a lock screen mechanism to protect personal data stored in the mobile terminal. In a lock-screen state, a user may only be able to access basic information, such as date, time, and power, instead of full services offered by the mobile terminal, including certain built-in functions and applications. A screen-locked mobile terminal may not be used normally until someone who set up the lock screen password unlocks the mobile terminal. That is, if at this time someone wants to access more than the basic information from the mobile terminal, such as using an application, the user have to go through procedures including phone unlocking and application searching before starting the application. In addition, some applications in the mobile terminal may only be located after pressing through multiple interfaces. Therefore, such procedures can be complicated and inconvenient to consumers, especially those who use mobile phones frequently. 
     SUMMARY 
     One aspect of the present disclosure is directed to a process triggering method. The method may be implemented by a processor of a terminal device. The method may comprise receiving an input operation on an unlock interface of the terminal device, determining input operation information corresponding to the input operation, determining triggering operation information matching with the determined input operation information, determining a process corresponding to the input operation according to a predetermined corresponding relationship between the triggering operation information and the process, and triggering the process. In some embodiments, the process is different from an unlock process, and the input operation is different from an operation that merely unlock the terminal device. 
     Another aspect of the present disclosure is directed to a process triggering apparatus. The apparatus may comprising a monitoring module configured to receive an input operation on an unlock interface of the apparatus, an operation information module configured to determine input operation information corresponding to the input operation, a process matching module configured to determine triggering operation information matching with the determined input operation information, and determine a process corresponding to the input operation according to a predetermined corresponding relationship between the triggering operation information and the process, and a triggering module configured to trigger the process. In some embodiments, the process is different from an unlock process, and the input operation is different from an operation that merely unlock the terminal device. 
     A further aspect of the present disclosure is directed to a process triggering method. The method may be implemented by a processor of a terminal device. The method may comprise receiving an input operation on an unlock interface of the terminal device, determining a process installed on the terminal device and corresponding to the input operation according to a corresponding relationship between the input operation and the process, and triggering the process. In some embodiments, the process is different from an unlock process, and the input operation is different from an operation that merely unlock the terminal device. 
     It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only, and are not restrictive of the invention, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which constitute a part of this disclosure, illustrate several embodiments and, together with the description, serve to explain the disclosed principles. 
         FIG. 1  is a flow diagram illustrating a method for process triggering, consistent with exemplary embodiments of the present disclosure. 
         FIGS. 2A-2C  are graphical representations illustrating a method for process triggering, consistent with exemplary embodiments of the present disclosure. 
         FIG. 3  is a block diagram illustrating a system for process triggering, consistent with exemplary embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. The following description refers to the accompanying drawings in which the same numbers in different drawings represent the same or similar elements unless otherwise represented. The implementations set forth in the following description of exemplary embodiments consistent with the present invention do not represent all implementations consistent with the invention. Instead, they are merely examples of systems and methods consistent with aspects related to the invention. 
     Current process triggering technologies are inconvenient to users, for example, when users try to start an application in a screen-locked state. A process can be a service, a program, or an application on a computer system, such as a mobile device, a tablet device, or other computing devices. The disclosed systems and methods may mitigate or overcome one or more of the problems set forth above and/or other problems in the prior art. 
       FIG. 1  is a flow diagram illustrating a method  100  for process triggering, consistent with exemplary embodiments of the present disclosure. Method  100  may include the following steps, some of which may be optional. Method  100  may be performed by one or more components of system  300  described below with reference to  FIG. 3 . 
     At step S 101 , one or more components of system  300  may receive an input operation on an unlock interface (e.g., an interface for receiving an user&#39;s input to unlock the system when the system is in a locked state). For example, an unlock interface such as a touch screen may receive an input operation and transmit the input operation to a processor, and the processor may receive the input operation. 
     In some embodiments, a user interface of a terminal device, e.g., a screen of a mobile terminal, may receive the input operation from a user. The user interface may be in a locked state. The user interface or the mobile terminal may be locked or unlocked by various types of lock or unlock controls. The unlock controls may include a trajectory unlock control, a password unlock control, an account unlock control, a biological information unlock control (e.g., a fingerprint input control, a face scan control), and etc. Correspondingly, the input operation may include, but is not limited to, a sliding trajectory input operation, a text input operation, a biological information input operation, and etc. The mobile terminal in the present application may include, but is not limited to, a mobile phone, a tablet computer, a mobile multimedia playback device, a smart watch, and etc. The mobile terminal may have a normal unlock operation that, if performed on the user interface, can unlock the terminal device. The input operation may be different from the unlock operation. For example, an unlock operation may include typing code 123456 that will merely unlock the terminal device. The input operation may be typing code 3210, which is different from the unlock operation. As described below, the terminal device may react with the input operation of typing code 3210. 
     At step S 102 , one or more components of system  300 , e.g., the processor, may determine input operation information corresponding to the input operation. 
     In some embodiments, the input operation inputted by the user may correspond to input operation information. For example, if a user performs an input operation by touching a screen with a finger and sliding the finger, the sliding trajectory may be determined as the corresponding input operation information. For another example, if a user performs a text input operation, text information inputted by the user (e.g., a password) may be determined as the corresponding input operation information. In some embodiments, the input operation information may include an input sliding trajectory, text information, biological characteristic information, and/or other input operation information. 
     In some embodiments, in order to respond to an input operation by a user and perform corresponding processes, a mobile terminal may need to obtain input operation information corresponding to the input operation. Therefore, in this step, the mobile terminal may determine the input operation information corresponding to the input operation by the user. 
     At step S 103 , one or more components of system  300 , e.g., the processor, may determine a process to trigger (e.g., a process corresponding to the input operation), if the determined input operation information matches with predetermined triggering operation information corresponding to the process. The process may be different from a normal unlock process. For example, if the unlock password is 123456 and if a user types 3210, the terminal device will not perform an unlock process, but may react with the code 3210 to trigger another process, as described in detail below. 
     In some embodiments, one or more components of system  300 , e.g., the processor, may first determine if the input operation information matches with any piece of predetermined triggering operation information of a set of predetermined triggering operation information, and each piece of the predetermined triggering operation information in the set may correspond to one or more processes. If the input operation information is determined to match with a certain piece predetermined triggering operation information, the input operation information can be determined to trigger one or more processes corresponding to the piece of predetermined triggering operation information. That is, if the determined input operation information matches with at least one piece among the set of predetermined triggering operation information, a process corresponding to the input operation can be determined according to a predetermined corresponding relationship between the piece of predetermined triggering operation information and one or more corresponding processes. Each piece of predetermined triggering operation information among the set may have a corresponding relationship with one or more processes. If the input operation information is determined to not match with any predetermined triggering operation information among the set, the method may end. 
     The triggering operation information may be a special input operation information, for invoking one or more processes, such as a specific process in the mobile terminal. In one example, the input operation by the user may be an operation to unlock the operation system of the mobile terminal, or a triggering operation for a specific process on the mobile terminal. Thus, the mobile terminal may recognize the input operation information corresponding to the input operation by the user, in order to determine whether the input operation information matches with any triggering operation information. 
     After the input operation information by the user is determined to be the piece of triggering operation information, the mobile terminal may determine a process, e.g., a service, corresponding to the triggering operation information according to a preset corresponding relationship between triggering operation information and one or more processes. 
     In some embodiments, the triggering operation information may cause the mobile terminal to be unlocked at the system level and may trigger a specific process. For example, when the input operation information is determined to match the triggering operation information, in addition to trigger the process, the mobile terminal may be unlocked at the system level. In some embodiments, the triggering operation information may just trigger the process, while the system of the mobile terminal remains in a locked state. 
     At step S 104 , one or more components of system  300 , e.g., the processor, may trigger the process. The triggered process may correspond to the input operation information. The processor may control the interface to display the triggered process or an image associated with the triggered process. 
     As described above, the input operation by the user may be a triggering operation to start a certain process (e.g., a service, a program, or an application) in the mobile terminal. After the mobile terminal determines a process corresponding to the triggering operation information, the process can be triggered. 
     By the above steps, a mobile terminal can monitor a user&#39;s input operation at an interface, and when the mobile terminal determines that input operation information corresponding to the input operation matches with triggering operation information, the mobile terminal can trigger a process corresponding to the triggering operation information according to a preset corresponding relationship between various triggering operation information and processes. Such method can enable the user to configure triggering operation information to directly trigger a desired process by a user input. Thus, the user can save the trouble of performing a system-level input operation on the mobile terminal and searching for the desired process, while preserving the security protection. Therefore, the method described above can effectively simplify the process of process triggering, especially for locked terminal devices, and increase the efficiency of performing tasks with such mobile terminals. 
     In some embodiments, the triggering operation information may include default triggering operation information and/or custom triggering operation information. 
     With respect to the triggering operation information including the default triggering operation information, the default triggering operation information may be pre-determined by a system service provider of the mobile terminal. That is, the system service provider may determine triggering instructions (the triggering instructions herein may refer to the default triggering operation information) of different processes in the system of the mobile terminal. For example, if the system service provider pre-determines that a triggering instruction (default triggering operation information) of a video playback service is 1234, when the mobile terminal is in a screen-locked state, a user can trigger the video playback process by inputting the triggering instruction “1234”. 
     In some embodiments, an application installed onto the mobile terminal may pre-define the default triggering operation information. However, in some embodiments, an application in an Android system or an iOS system may not have the permission to invoke other applications. Therefore, when the application installed onto the mobile terminal pre-defines the default triggering operation information, processes triggered by the application may often be various functional processes associated with the application. 
     In some embodiments, the triggering operation information may include the custom triggering operation information. That is, a user can customize and configure triggering operation information corresponding to various processes in the system of the mobile terminal. It is also feasible to input the custom triggering operation information through an application installed in the mobile terminal. 
     Two types of triggering operation information are described above. With the default triggering operation information, a user can trigger the corresponding process by just inputting the pre-determined default triggering operation information at an interface. With the custom triggering operation information, the user can configure triggering operation information corresponding to various processes in the mobile terminal (or in a designated application) in advance. 
     In some embodiments, when the triggering operation information includes the custom triggering operation information, the corresponding relationship between the triggering operation information and the process may be predetermined. A method for configuring the triggering operation information may include receiving custom triggering operation information configured by a user, receiving a selection instruction inputted by the user, determining a process corresponding to the selection instruction, and establishing a corresponding relationship between the custom triggering operation information and the determined process. 
     The custom triggering operation information configured by the user may be determined from a custom triggering operation inputted by the user. In some embodiments, the custom triggering operation inputted by the user may include, but is not limited to, inputting a sliding trajectory, inputting text information, inputting biological information, and etc. 
     In some embodiments, the system of the mobile terminal may provide the function of configuring custom triggering operation information by the user. In this way, the user may input the custom triggering operation information in the system of the mobile terminal, and the system of the mobile terminal may establish a corresponding relationship between the custom triggering operation information inputted by the user and a process selected by the user. 
     In some embodiments, a third-party application may provide the function of configuring custom triggering operation information by the user. In this way, the user may input the custom triggering operation information in the third-party application, and the third-party application may establish a corresponding relationship between the custom triggering operation information inputted by the user and a process selected by the user. 
     Whether the system of the mobile terminal or the third-party application provides the above functions, an actual operation process of establishing a corresponding relationship between the custom triggering operation information and the process selected by the user may be performed as the following. When the user wants to set corresponding custom triggering operation information for some processes on the mobile phone, the user can enter a corresponding process list interface (provided by a mobile phone system or by a third-party application) and select (e.g., by clicking) a process in the process list. Then, a display window of the mobile phone may pop up an input interface. On the input interface, one or more control options can be provided, such as a sliding trajectory input control, a text information input control, a biological characteristic information input control, and etc. The user can input the custom triggering operation information in the input interface by selecting one of the control options and entering control information, e.g., a password. After the user completes the input, a corresponding relationship between the custom triggering operation information and the process selected by the user can be established. 
     The above example of establishing a corresponding relationship between the custom triggering operation information and the process selected by the user does not constitute a limitation to the present application. 
     In applications, various processes can be rapidly queried and used in the mobile terminal in a form of a process list recording process identification information (e.g., process ID, name, operation states, permissions, and etc.) of various processes. Establishing the corresponding relationship between the custom triggering operation information inputted by the user and the process corresponding to the selection instruction may also establish a corresponding relationship between the custom triggering operation information and the process identification information corresponding to the process. 
     Correspondingly, triggering the process corresponding to the input operation information may include: acquiring process identification information corresponding to the input operation information, searching for a process matching the process identification information from a process list according to the process identification information, and triggering a process matching the process identification information. 
     In some embodiments, the above-described input operation information can trigger the corresponding process, and may also have an unlock function. That is, after the mobile terminal receives the input operation information, the mobile terminal system can be unlocked; and at the same time, the corresponding process can be triggered. Such process does not require too many permissions, and is easy to implement in real applications. In some embodiments, for security reasons, the input operation information may not have a function of unlocking the mobile terminal system, and may only trigger the corresponding process. That is, after the corresponding process is triggered, the mobile terminal may still be in a locked state. 
     Corresponding to the above embodiments, the process triggering may be performed by a mobile terminal system, and may also be performed by a third-party application. With respect to the third-party application providing the process triggering function, the third-party application may be required to obtain a permission from the mobile terminal system. Due to the closed characteristic of the iOS system, it may be difficult to obtain the permission in an actual application, and thus, the following description may be based on an Android system. 
     One method to overcome the permission problem may include blocking the lock screen function of the mobile terminal system, and using a lock screen function of the third-party application. In this method, it may be needed to acquire a permission from the mobile terminal. For example, “android.permission_DISABLE_KEYGUARD” permission in the mobile terminal can be invoked to block the lock screen function built in the mobile terminal system. Afterwards, a lock screen function of the third-party application can be used to lock the screen of the mobile terminal. By this method, in a subsequent process of triggering a process, the third-party application can trigger the corresponding process according to the established corresponding relationship. 
     The above-described process triggering method is explained in more details below with reference to an application example. 
     A user plans to use a mobile phone to perform a code scanning payment operation (e.g., making a payment by scanning a payment Quick Response (QR) code stored in a payment application in a cellphone), and at this point, the user&#39;s mobile phone is in a locked or screen-locked state. With existing technologies, the user may need to unlock the mobile phone, select to start an payment application, and find a payment QR code from the payment application to use. 
     In some embodiments, the user can set a sliding trajectory, as described above with reference to the custom triggering operation information, in advance for the payment QR code in the payment application, to directly trigger the payment QR code when the mobile phone is in a locked state. Triggering the payment QR code may include the following steps: 
     At step 1, the user may press a power button or a home button of the mobile phone to enter an unlock interface, e.g., an interface in a locked state as shown in  FIG. 2A . 
     At step 2, the user may input a sliding trajectory in the interface, as shown in  FIG. 2B . At this step, after receiving the input of the user, the mobile phone may determine whether the input sliding trajectory matches with a pre-determined sliding trajectory. If the mobile phone determines that the input sliding trajectory matches with the pre-determined sliding trajectory, it may trigger and/or invoke the payment QR code in the payment application. 
     At step 3, the mobile phone may display the payment QR code in a current interface, as shown in  FIG. 2C . 
     As described above, triggering the process corresponding to the input operation information may include triggering the payment QR code in the payment application corresponding to the input operation information, and displaying the payment QR code on the interface. 
     In the present application, the user can still perform a regular unlock operation on the mobile terminal. That is, method  100  may further include, when the determined input operation information matches the predetermined unlock operation information, performing an unlock operation on the mobile terminal (e.g., unlocking the mobile phone operation system) according to the unlock operation information. 
       FIG. 3  is a block diagram illustrating a system  300  for process triggering, consistent with exemplary embodiments of the present disclosure. System  300  may be a device for process triggering, such as a mobile phone, a computing device, a tablet computer, a mobile multimedia playback device, a smart watch, and etc. System  300  may include a number of components, some of which may be optional. For example, system  300  may include one or more central processing units (CPUs)  306  and a memory  307 . Memory  307  may be a non-transitory computer-readable storage medium storing instructions that, when executed by processing unit  306 , cause one or more components of system  300  to perform the steps and methods described in this disclosure. System  300  may include functional modules implemented by the processing unit  306  and memory  307 , including, e.g., a monitoring module  301 , an operation information module  302 , a process matching module  303 , a triggering module  304 , and an unlock module  305 . Monitoring module  301 , operation information module  302 , process matching module  303 , triggering module  304 , and/or unlock module  305  refer to or correspond to blocks of software code stored on memory  307 . The processing unit  306  can execute the blocks of software code and perform the functions corresponding to the functional modules. The steps below are related to corresponding methods described above, and some details are not repeated. 
     Monitoring module  301  may be configured to monitor an input operation at an interface. An example of monitoring module may be a screen or a screen interface configured to receive an input operation from a user. 
     Operation information module  302  may be configured to, after the input operation is received, determine input operation information corresponding to the input operation. 
     Process matching module  303  may be configured to, if the determined input operation information matches with predetermined triggering operation information, determine a process corresponding to the input operation information according to a predetermined corresponding relationship between the predetermined triggering operation information and the process. 
     Triggering module  304  may be configured to trigger the process corresponding to the input operation information. 
     In some embodiments, the triggering operation information may include default triggering operation information and/or custom triggering operation information described above. 
     With respect to the triggering operation information including the custom triggering operation information, process matching module  303  may be configured to receive custom triggering operation information configured by a user, receive a selection instruction inputted by the user, determine process identification information corresponding to the selection instruction, and establish a corresponding relationship between the custom triggering operation information configured by the user and the process identification information corresponding to the selection instruction. 
     Triggering module  304  may be configured to acquire process identification information corresponding to the input operation information, search for a process matching with the process identification information in a process list according to the process identification information, and trigger the process matching with the process identification information. 
     In one embodiment, the process may be a payment QR code in a payment application, and the triggering module  304  may be configured to trigger the payment QR code in the payment application corresponding to the input operation information, and display the payment QR code. 
     In some embodiments, system  300  may further include an unlock module  305  configured to, when the determined input operation information matches with the predetermined unlock operation information, perform an unlock operation on the mobile terminal according to the unlock operation information. 
     In some embodiments, the input operation information may include at least one of an input sliding trajectory (e.g., a swipe password), text information (e.g., a text password), or biological characteristic information (e.g., a finger print). 
     Another aspect of the disclosure is directed to a non-transitory computer-readable storage medium storing instructions which, when executed, cause one or more processors to perform the methods, as discussed above. The computer-readable storage medium may include volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other types of computer-readable storage medium or computer-readable storage devices. For example, the computer-readable storage medium may be the storage unit or the memory module having the computer instructions stored thereon, as disclosed. In some embodiments, the computer-readable storage medium may be a disc or a flash drive having the computer instructions stored thereon. 
     A person skilled in the art can further understand that, various exemplary logic blocks, modules, circuits, and algorithm steps described with reference to the disclosure herein may be implemented as specialized electronic hardware, computer software, or a combination of electronic hardware and computer software. For examples, the modules/units may be implemented by one or more processors to cause the one or more processors to become one or more special purpose processors to executing software instructions stored in the computer-readable storage medium to perform the specialized functions of the modules/units. 
     The flowcharts and block diagrams in the accompanying drawings show system architectures, functions, and operations of possible implementations of the system and method according to multiple embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent one module, one program segment, or a part of code, where the module, the program segment, or the part of code includes one or more executable instructions used for implementing specified logic functions. It should also be noted that, in some alternative implementations, functions marked in the blocks may also occur in a sequence different from the sequence marked in the drawing. For example, two consecutive blocks actually can be executed in parallel substantially, and sometimes, they can also be executed in reverse order, which depends on the functions involved. Each block in the block diagram and/or flowchart, and a combination of blocks in the block diagram and/or flowchart, may be implemented by a dedicated hardware-based system for executing corresponding functions or operations, or may be implemented by a combination of dedicated hardware and computer instructions. 
     As will be understood by those skilled in the art, embodiments of the present disclosure may be embodied as a method, a system or a computer program product. Accordingly, embodiments of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware for allowing specialized components to perform the functions described above. Furthermore, embodiments of the present disclosure may take the form of a computer program product embodied in one or more tangible and/or non-transitory computer-readable storage media containing computer-readable program codes. Common forms of non-transitory computer readable storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM or any other flash memory, NVRAM, a cache, a register, any other memory chip or cartridge, and networked versions of the same. 
     Embodiments of the present disclosure are described with reference to flow diagrams and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a computer, an embedded processor, or other programmable data processing devices to produce a special purpose machine, such that the instructions, which are executed via the processor of the computer or other programmable data processing devices, create a means for implementing the functions specified in one or more flows in the flow diagrams and/or one or more blocks in the block diagrams. 
     These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing devices to function in a particular manner, such that the instructions stored in the computer-readable memory produce a manufactured product including an instruction means that implements the functions specified in one or more flows in the flow diagrams and/or one or more blocks in the block diagrams. 
     These computer program instructions may also be loaded onto a computer or other programmable data processing devices to cause a series of operational steps to be performed on the computer or other programmable devices to produce processing implemented by the computer, such that the instructions (which are executed on the computer or other programmable devices) provide steps for implementing the functions specified in one or more flows in the flow diagrams and/or one or more blocks in the block diagrams. In a typical configuration, a computer device includes one or more Central Processing Units (CPUs), an input/output interface, a network interface, and a memory. The memory may include forms of a volatile memory, a random access memory (RAM), and/or non-volatile memory and the like, such as a read-only memory (ROM) or a flash RAM in a computer-readable storage medium. The memory is an example of the computer-readable storage medium. 
     The computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The computer-readable medium includes non-volatile and volatile media, and removable and non-removable media, wherein information storage can be implemented with any method or technology. Information may be modules of computer-readable instructions, data structures and programs, or other data. Examples of a non-transitory computer-readable medium include but are not limited to a phase-change random access memory (PRAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), other types of random access memories (RAMs), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory or other memory technologies, a compact disc read-only memory (CD-ROM), a digital versatile disc (DVD) or other optical storage, a cassette tape, tape or disk storage or other magnetic storage devices, a cache, a register, or any other non-transmission media that may be used to store information capable of being accessed by a computer device. The computer-readable storage medium is non-transitory, and does not include transitory media, such as modulated data signals and carrier waves. 
     The specification has described methods, apparatus, and systems for process triggering. The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. Thus, these examples are presented herein for purposes of illustration, and not limitation. For example, steps or processes disclosed herein are not limited to being performed in the order described, but may be performed in any order, and some steps may be omitted, consistent with the disclosed embodiments. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments. 
     While examples and features of disclosed principles are described herein, modifications, adaptations, and other implementations are possible without departing from the spirit and scope of the disclosed embodiments. Also, the words “comprising,” “having,” “containing,” and “including,” and other similar forms are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. 
     It will be appreciated that the present invention is not limited to the exact construction that has been described above and illustrated in the accompanying drawings, and that various modifications and changes can be made without departing from the scope thereof. It is intended that the scope of the invention should only be limited by the appended claims.