]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
spelling
authorBrian West <brian@freeswitch.org>
Mon, 6 Oct 2008 23:05:55 +0000 (23:05 +0000)
committerBrian West <brian@freeswitch.org>
Mon, 6 Oct 2008 23:05:55 +0000 (23:05 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9864 d0543943-73ff-0310-b7d9-9358b9ac24b2

21 files changed:
src/mod/applications/mod_commands/mod_commands.c
src/mod/applications/mod_conference/mod_conference.c
src/mod/applications/mod_dptools/mod_dptools.c
src/mod/applications/mod_fax/mod_fax.c
src/mod/applications/mod_skel/mod_skel.c
src/mod/applications/mod_voicemail/mod_voicemail.c
src/mod/asr_tts/mod_openmrcp/mod_openmrcp.c
src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c
src/mod/endpoints/mod_portaudio/mod_portaudio.c
src/mod/event_handlers/mod_event_socket/mod_event_socket.c
src/mod/formats/mod_local_stream/mod_local_stream.c
src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c
src/switch.c
src/switch_core_io.c
src/switch_core_session.c
src/switch_core_state_machine.c
src/switch_event.c
src/switch_ivr.c
src/switch_ivr_bridge.c
src/switch_odbc.c
src/switch_utils.c

index 769207910f03ce612811acf4fd93d3bc6d9c51a1..0790cdd3e9f23e5e34095986e1c80497ba8e74d6 100644 (file)
@@ -774,7 +774,7 @@ SWITCH_STANDARD_API(ctl_function)
                } else if (!strcasecmp(argv[0], "sync_clock")) {
                        arg = 0;
                        switch_core_session_ctl(SCSC_SYNC_CLOCK, &arg);
-                       stream->write_function(stream, "+OK clock syncronized\n");
+                       stream->write_function(stream, "+OK clock synchronize\n");
                } else {
                        stream->write_function(stream, "-ERR INVALID COMMAND\nUSAGE: fsctl %s", CTL_SYNTAX);
                        goto end;
@@ -2128,7 +2128,7 @@ SWITCH_STANDARD_API(show_function)
 
 
        /* If you change the field qty or order of any of these select */
-       /* statmements, you must also change show_callback and friends to match! */
+       /* statements, you must also change show_callback and friends to match! */
        if (!command) {
                stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
                goto end;
index fbbad8f85bf2c4f1d08eea2e7b82e1f1805a94b9..412f23c3ab88d9ab256346e57c428ce24c2330d9 100644 (file)
@@ -444,7 +444,7 @@ static conference_relationship_t *member_get_relationship(conference_member_t *m
                        break;
                }
 
-               /* 0 matches everyone. (We will still test the others brcause a real match carries more clout) */
+               /* 0 matches everyone. (We will still test the others because a real match carries more clout) */
                if (rel->id == 0) {
                        global = rel;
                }
@@ -1031,7 +1031,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v
                                        int16_t *bptr, *muxed;
 
                                        if (imember == omember || !imember->read) {
-                                               /* Don't add audio from yourself or if you didnt read any */
+                                               /* Don't add audio from yourself or if you didn't read any */
                                                continue;
                                        }
 
@@ -1802,7 +1802,7 @@ static void conference_loop_output(conference_member_t *member)
                        conference_outcall_bg(member->conference, NULL, NULL, cp->string, to, switch_str_nil(flags), cid_name, cid_num);
                }
        }
-       /* Fair WARNING, If you expect the caller to hear anything or for digit handling to be proccessed,      */
+       /* Fair WARNING, If you expect the caller to hear anything or for digit handling to be processed,      */
        /* you better not block this thread loop for more than the duration of member->conference->timer_name!  */
        while (switch_test_flag(member, MFLAG_RUNNING) && switch_test_flag(member, MFLAG_ITHREAD)
                   && switch_channel_ready(channel)) {
@@ -2035,7 +2035,7 @@ static void conference_loop_output(conference_member_t *member)
                member->conference->bridge_hangup_cause = switch_channel_get_cause(channel);
        }
 
-       /* Wait for the input thead to end */
+       /* Wait for the input thread to end */
        while (switch_test_flag(member, MFLAG_ITHREAD)) {
                switch_yield(1000);
        }
index 7cabc14bab5e4863003ac921603bd9621f7c534b..94facf80e4807c41688e4641938444e27d872f01 100644 (file)
@@ -1782,7 +1782,7 @@ SWITCH_STANDARD_APP(record_session_function)
                /* not at the end and the rest is numbers lets parse out the limit and fix up the path */
                if (*limit_start != '\0' && switch_is_number(limit_start) == SWITCH_TRUE) {
                        limit = atoi(limit_start);
-                       /* back it off by one charecter to the char before the + */
+                       /* back it off by one character to the char before the + */
                        path_end--;
 
                        /* trim spaces to the left of the plus */
@@ -2261,7 +2261,7 @@ static switch_status_t api_chat_send(char *proto, char *from, char *to, char *su
 #define SET_PROFILE_VAR_LONG_DESC "Set a caller profile variable for the channel calling the application."
 #define EXPORT_LONG_DESC "Set and export a channel variable for the channel calling the application."
 #define LOG_LONG_DESC "Logs a channel variable for the channel calling the application."
-#define TRANSFER_LONG_DESC "Immediatly transfer the calling channel to a new extension"
+#define TRANSFER_LONG_DESC "Immediately transfer the calling channel to a new extension"
 #define SLEEP_LONG_DESC "Pause the channel for a given number of milliseconds, consuming the audio for that period of time."
 SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load)
 {
index b6260062a254de5e7f7cf6689985e47297bf6827..5ef9408be24052df1a39214d0f10b9b7f2a0096d 100644 (file)
@@ -531,7 +531,7 @@ void process_fax(switch_core_session_t *session, const char *data, application_m
                                pvt->filename = switch_core_session_strdup(session, fname);
                                switch_safe_free(fname);
                        } else {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot automagically set fax RX destination file\n");
+                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot automatically set fax RX destination file\n");
                                goto done;
                        }
                } else {
@@ -631,7 +631,7 @@ void process_fax(switch_core_session_t *session, const char *data, application_m
                        goto done;
                }
 
-               /* Skip CNG frames (autogenerated by FreeSWITCH, usually) */
+               /* Skip CNG frames (auto-generated by FreeSWITCH, usually) */
                if (!switch_test_flag(read_frame, SFF_CNG)) {
             /* pass the new incoming audio frame to the fax_rx function */
             if (fax_rx(pvt->fax_state, (int16_t *) read_frame->data, read_frame->samples)) {
index 27721714f63dcb0e38ba59f53988572ab51e310d..bb757ec3d3d2eed681903f9be1dfe4b53c09327b 100644 (file)
@@ -59,7 +59,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skel_shutdown);
 
 /*
   If it exists, this is called in it's own thread when the module-load completes
-  If it returns anything but SWITCH_STATUS_TERM it will be called again automaticly
+  If it returns anything but SWITCH_STATUS_TERM it will be called again automatically
 SWITCH_MODULE_RUNTIME_FUNCTION(mod_skel_runtime);
 {
        while(looping)
index 6f497c76f50cf0b1d1a529c171db3981c5008129..6a846bc3d1e842c92e7f38110fce7dc4d07cdc8f 100644 (file)
@@ -1505,7 +1505,7 @@ static switch_status_t listen_file(switch_core_session_t *session, vm_profile_t
                                        header_string = switch_core_session_sprintf(session, "%s\nX-Voicemail-Length: %u", headers, message_len);
 
                                        if (switch_event_create(&event, SWITCH_EVENT_GENERAL) == SWITCH_STATUS_SUCCESS) {
-                                               /* this isnt done?  it was in the other place
+                                               /* this isn't done?  it was in the other place
                                                 * switch_channel_event_set_data(channel, event);
                                                 */
                                                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Message-Type", "forwarded-voicemail");
@@ -2596,7 +2596,7 @@ static switch_status_t voicemail_leave_main(switch_core_session_t *session, cons
                        }
                        
                        if (send_mail && (!(send_main || send_notify))) {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Falling back to leaving message locally due to too many misconfigurations.\n");
+                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Falling back to leaving message locally due to too many misconfiguration.\n");
                                send_mail = 0;
                                insert_db = 1;
                        }
@@ -2687,7 +2687,7 @@ static switch_status_t voicemail_leave_main(switch_core_session_t *session, cons
                                argc = switch_separate_string(mycmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
                                if (argc >= 1 && argc <= 4) {
                                        switch_ivr_session_transfer(session, argv[0], argv[1], argv[2]);
-                                       /* the application still runs after we leave it so we need to make sure that we dont do anything evil */
+                                       /* the application still runs after we leave it so we need to make sure that we don't do anything evil */
                                        send_mail = 0;
                                        goto end;
                                }
@@ -2701,7 +2701,7 @@ static switch_status_t voicemail_leave_main(switch_core_session_t *session, cons
                                argc = switch_separate_string(mycmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
                                if (argc >= 1 && argc <= 4) {
                                        switch_ivr_session_transfer(session, argv[0], argv[1], argv[2]);
-                                       /* the application still runs after we leave it so we need to make sure that we dont do anything evil */
+                                       /* the application still runs after we leave it so we need to make sure that we don't do anything evil */
                                        send_mail = 0;
                                        goto end;
                                }
index 7f22eacdb3628e688be558d7111bf5c79f856013..0f42061ebae6cedfd9baa8d96b46c0db10e71a01 100644 (file)
@@ -293,10 +293,10 @@ static mrcp_status_t openmrcp_recog_start(mrcp_client_context_t *context, openmr
 /**
  * Freeswitch calls this from switch_ivr_detect_speech() and then adds a media
  * bug to tap into the channel's audio, which will result in all data getting
- * passed to asr_feed() and calls to asr_check_results() on each recevied frame.
+ * passed to asr_feed() and calls to asr_check_results() on each received frame.
  * 
  * This code expects certain one-time initialization of the openmrcp client
- * engine/systeme to have already taken place.function to open the asr interface 
+ * engine/system to have already taken place.function to open the asr interface 
  */
 static switch_status_t openmrcp_asr_open(switch_asr_handle_t *ah, const char *codec, int rate, const char *dest, switch_asr_flag_t *flags)
 {
index 244132a7a196e690b50ac859d803ce22d0281f1c..e2a82833aa117425040076bb0e375ff1ec9deec9 100644 (file)
@@ -285,7 +285,7 @@ static switch_status_t pocketsphinx_asr_feed(switch_asr_handle_t *ah, void *data
                                        switch_clear_flag(ps, PSFLAG_READY);
                                        if ((hyp = ps_get_hyp(ps->ps, &ps->score, &ps->uttid))) {
                                                if (switch_strlen_zero(hyp)) {
-                                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Lost the text, nevermind....\n");   
+                                                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Lost the text, never mind....\n");   
                                                        ps_start_utt(ps->ps, NULL);
                                                        switch_set_flag(ps, PSFLAG_READY);
                                                } else {
@@ -313,7 +313,7 @@ static switch_status_t pocketsphinx_asr_feed(switch_asr_handle_t *ah, void *data
        return SWITCH_STATUS_SUCCESS;
 }
 
-/*! funciton to pause recognizer */
+/*! function to pause recognizer */
 static switch_status_t pocketsphinx_asr_pause(switch_asr_handle_t *ah)
 {
        pocketsphinx_t *ps = (pocketsphinx_t *) ah->private_info;
index 0f8190178d8b005285a1eb19f63215328d45a6bc..15bc901dc3424bc051d8a281980189194ac4b0f7 100644 (file)
@@ -805,7 +805,7 @@ static switch_status_t load_config(void)
                                        globals.codec_ms = tmp;
                                } else {
                                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
-                                                                         "codec-ms must be multipe of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL);
+                                                                         "codec-ms must be multiple of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL);
                                }
                        } else if (!strcmp(var, "dialplan")) {
                                set_global_dialplan(val);
index ab17391e928e5773796ad1a971b81607e1bf6a33..dbdd3e5d56ef4e5a1421efd8dd4a72a0c2b11d5c 100644 (file)
@@ -26,7 +26,7 @@
  * Anthony Minessale II <anthmct@yahoo.com>
  *
  *
- * mod_event_socket.c -- Socket Controled Event Handler
+ * mod_event_socket.c -- Socket Controlled Event Handler
  *
  */
 #include <switch.h>
index 9a26d5b731a72fe32d01c282cfc8cb5fbb5d1005..237ecd42ab996c34cd9fcbccff11f239f99a050b 100644 (file)
@@ -466,7 +466,7 @@ static void launch_threads(void)
                                        source->interval = tmp;
                                } else {
                                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
-                                                                         "Interval must be multipe of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL);
+                                                                         "Interval must be multiple of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL);
                                }
                        } else if (!strcasecmp(var, "timer-name")) {
                                source->timer_name = switch_core_strdup(source->pool, val);
@@ -644,7 +644,7 @@ SWITCH_STANDARD_API(start_local_stream_function)
                                                        interval = tmp;
                                                } else {
                                                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
-                                                                                         "Interval must be multipe of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL);
+                                                                                         "Interval must be multiple of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL);
                                                }
                                        } else if (!strcasecmp(var, "timer-name")) {
                                                timer_name = strdup(val);
index fce0628049af14d3cc44d2477be47de5c4dca355..bf831a3b78d4ce6e182039ee13f77aecace5e042 100644 (file)
@@ -52,7 +52,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_xml_cdr_load);
 SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_xml_cdr_shutdown);
 SWITCH_MODULE_DEFINITION(mod_xml_cdr, mod_xml_cdr_load, mod_xml_cdr_shutdown, NULL);
 
-/* this function would have access to the HTML returned by the webserver, we dont need it 
+/* this function would have access to the HTML returned by the webserver, we don't need it 
  * and the default curl activity is to print to stdout, something not as desirable
  * so we have a dummy function here
  */
index 14c9865301821e6d434e2946f3a8bfae7ca72d8f..736611ee403027fb7d4a9bc1c9111e889faac550 100644 (file)
@@ -105,13 +105,13 @@ static int freeswitch_kill_background()
                /* kill the freeswitch running at the pid we found */
                fprintf(stderr, "Killing: %d\n", (int) pid);
 #ifdef WIN32
-               /* for windows we need the event to signal for shutting down a background freewitch */
+               /* for windows we need the event to signal for shutting down a background FreeSWITCH */
                snprintf(path, sizeof(path), "Global\\Freeswitch.%d", pid);
 
                /* open the event so we can signal it */
                shutdown_event = OpenEvent(EVENT_MODIFY_STATE, FALSE, path);
 
-               /* did we sucessfully open the event */
+               /* did we successfully open the event */
                if (!shutdown_event) {
                        /* we can't get the event, so we can't signal the process to shutdown */
                        fprintf(stderr, "ERROR: Can't Shutdown: %d\n", (int) pid);
@@ -147,7 +147,7 @@ void WINAPI ServiceCtrlHandler(DWORD control)
        case SERVICE_CONTROL_STOP:
                /* Shutdown freeswitch */
                switch_core_destroy();
-               /* set service status valuse */
+               /* set service status values */
                status.dwCurrentState = SERVICE_STOPPED;
                status.dwWin32ExitCode = 0;
                status.dwCheckPoint = 0;
@@ -183,7 +183,7 @@ void WINAPI service_main(DWORD numArgs, char **args)
 
        /* attempt to initialize freeswitch and load modules */
        if (switch_core_init_and_modload(flags, SWITCH_FALSE, &err) != SWITCH_STATUS_SUCCESS) {
-               /* freeswitch did not start sucessfully */
+               /* freeswitch did not start successfully */
                status.dwCurrentState = SERVICE_STOPPED;
        } else {
                /* freeswitch started */
index c481c8eabc08c8e99e466b3a5514342b34761d53..459131f691210e79407c869e019be9d8e47a186c 100644 (file)
@@ -733,7 +733,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
                                if (!session->raw_write_buffer) {
                                        switch_size_t bytes = session->write_codec->implementation->bytes_per_frame;
                                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
-                                                                         "Engaging Write Buffer at %u bytes to accomodate %u->%u\n",
+                                                                         "Engaging Write Buffer at %u bytes to accommodate %u->%u\n",
                                                                          (uint32_t) bytes, write_frame->datalen, session->write_codec->implementation->bytes_per_frame);
                                        if ((status = switch_buffer_create_dynamic(&session->raw_write_buffer,
                                                                                                                           bytes * SWITCH_BUFFER_BLOCK_FRAMES,
index d81e30be382ef8f80b380429c5bd71ca8cc8f2a3..e3ad866c288c1b7da08ad98fb204714b24612151 100644 (file)
@@ -680,7 +680,7 @@ SWITCH_DECLARE(void) switch_core_session_reset(switch_core_session_t *session, s
        switch_mutex_unlock(session->resample_mutex);
        /* clear indications */
        switch_core_session_flush_message(session);
-       /* wipe theese, they will be recreated if need be */
+       /* wipe these, they will be recreated if need be */
        switch_buffer_destroy(&session->raw_read_buffer);
        switch_buffer_destroy(&session->raw_write_buffer);
 
index 89b3e56d4a480cf9acb95f95f311c35d8e0bb80e..94f3e139a219564d828365e258ef56e9abd4edf9 100644 (file)
@@ -331,13 +331,13 @@ SWITCH_DECLARE(void) switch_core_session_run(switch_core_session_t *session)
           everywhere you go you use the session to malloc with
           switch_core_session_alloc(session, <size>)
 
-          The enpoint module gets the first crack at implementing the state
-          if it wants to, it can cancel the default behaviour by returning SWITCH_STATUS_FALSE
+          The endpoint module gets the first crack at implementing the state
+          if it wants to, it can cancel the default behavior by returning SWITCH_STATUS_FALSE
 
           Next comes the channel's event handler table that can be set by an application
-          which also can veto the next behaviour in line by returning SWITCH_STATUS_FALSE
+          which also can veto the next behavior in line by returning SWITCH_STATUS_FALSE
 
-          Finally the default state behaviour is called.
+          Finally the default state behavior is called.
 
 
         */
index 7f3fce7174fdf849121b1f95c08e020b120ff41c..69e63217f0143347c6f53548a5e9de79c129ebf3 100644 (file)
@@ -795,7 +795,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_serialize(switch_event_t *event, ch
        switch_event_header_t *hp;
        switch_size_t llen = 0, dlen = 0, blocksize = 512, encode_len = 1536, new_len = 0;
        char *buf;
-       char *encode_buf = NULL;        /* used for url encoding of variables to make sure unsafe things stay out of the serialzed copy */
+       char *encode_buf = NULL;        /* used for url encoding of variables to make sure unsafe things stay out of the serialized copy */
 
        *str = NULL;
 
@@ -811,11 +811,11 @@ SWITCH_DECLARE(switch_status_t) switch_event_serialize(switch_event_t *event, ch
                return SWITCH_STATUS_MEMERR;
        }
 
-       /* switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hit serialzed!.\n"); */
+       /* switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hit serialized!.\n"); */
        for (hp = event->headers; hp; hp = hp->next) {
                /*
                 * grab enough memory to store 3x the string (url encode takes one char and turns it into %XX)
-                * so we could end up with a string that is 3 times the original's length, unlikely but rather
+                * so we could end up with a string that is 3 times the originals length, unlikely but rather
                 * be safe than destroy the string, also add one for the null.  And try to be smart about using 
                 * the memory, allocate and only reallocate if we need more.  This avoids an alloc, free CPU
                 * destroying loop.
index 1a904ecb979863f1580ef4594af1c0ea44e6b31a..902357bc13f03fb8b26bf4aea1c6624acd06f08e 100644 (file)
@@ -1233,7 +1233,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_digit_stream_new(switch_ivr_digit_str
 {
        switch_status_t status = SWITCH_STATUS_FALSE;
 
-       /* if we have a paser object memory pool and a stream object pointer that is null */
+       /* if we have a parser object memory pool and a stream object pointer that is null */
        if (parser != NULL && parser->pool && stream != NULL && *stream == NULL) {
                *stream = (switch_ivr_digit_stream_t *) switch_core_alloc(parser->pool, sizeof(switch_ivr_digit_stream_t));
                if (*stream != NULL) {
index 45eac5c3b2bedccfcd951c2bde6dac44463cae4b..4ec7c7c4e745487879d8488d9cf3542a5ec51053 100644 (file)
@@ -982,7 +982,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_uuid_bridge(const char *originator_uu
                        /* override transmit state for originator_channel to bridge to originatee_channel 
                         * install pointer to originatee_session into originator_channel
                         * set CF_TRANSFER on both channels and change state to CS_SOFT_EXECUTE to
-                        * inturrupt anything they are already doing.
+                        * interrupt anything they are already doing.
                         * originatee_session will fall asleep and originator_session will bridge to it
                         */
 
index 707f16f9d22038c5b1fa2b1d9eaebe636a2a4ab7..ea6a58c98a44f5405640cb281f6e10d488ca096f 100644 (file)
@@ -94,7 +94,7 @@ SWITCH_DECLARE(switch_odbc_status_t) switch_odbc_handle_disconnect(switch_odbc_h
                if (result == SWITCH_ODBC_SUCCESS) {
                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Disconnected %d from [%s]\n", result, handle->dsn);
                } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Disconnectiong [%s]\n", handle->dsn);
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Disconnecting [%s]\n", handle->dsn);
                }
        }
 
index 982a37df170a23b20b27ce69475d8df23e40b57b..4d4f5d821de1108815b64945c86e28140648b584 100644 (file)
@@ -27,7 +27,7 @@
  * Juan Jose Comellas <juanjo@comellas.org>
  *
  *
- * switch_utils.c -- Compatability and Helper Code
+ * switch_utils.c -- Compatibility and Helper Code
  *
  */