Oracle CRM On Demand Desktop Administration Guide > Installing Oracle CRM On Demand Desktop > Upgrading Oracle CRM On Demand Desktop from Version 5.0 to Version 5.1 >

Updating Oracle CRM On Demand Desktop Product-Specific Files from Version 5.0 to Version 5.1


If you have upgraded Oracle CRM On Demand Desktop from Version 5.0 to Version 5.1, then you must manually update all the product-specific files before you begin to use the current version of Oracle CRM On Demand Desktop. These updates preserve your configuration from Version 5.0 while maintaining compatibility with the metadata for the current release and allow you to use the new features.

In this procedure, you update the following files:

  • forms.js
  • business_logic.js
  • helpers.js
  • application_script.js
  • connector_configuration.xml
  • autoresolver.js
  • dialogs.xml
  • forms_12*.xml
  • info.xml
  • od_basic_mapping.xml
  • od_meta_info.xml
  • security_utils.js
  • package_res.xml

For more information on customization package files, see Files in the Customization Package.

To update Oracle CRM On Demand Desktop product-specific files from Version 5.0 to Version 5.1

  1. Update the forms.js file as follows:
    1. Locate the following code:

    {

    "caption": "obj_leads_plural",
    "view_id": "leads:salesbook",
    "allow_new": false,
    "search_by": ["LeadFirstName",
    "LeadLastName"
    ],
    "image": "type_image:Lead:16",
    "display_name_fn": function(ctx, item) {
       return item["LeadFirstName"] +" " + item["LeadLastName"];
    },

    1. Replace this code with the following:

    {
    "caption": "obj_leads_plural",
    "view_id": "leads:salesbook",
    "allow_new": true,
    "search_by": ["LeadFirstName", "LeadLastName"],
    "image": "type_image:Lead:16",
    "display_name_fn": function(ctx, item) {
       return item["LeadFirstName"] + " " + item["LeadLastName"];
    },

    1. Locate the following code:

    if (ctx.item_ex.get_id() == null) {
       var created_through_salesbook = ctx.created_from_ctx != null && !!ctx.created_from_ctx.created_from_ctx_type;
       shared_on_open = helpers.get_defaults(ctx.session) != null && (created_through_salesbook || ctx.application
          .settings.get("SharedByDefault:NewItems") == 1);
       ctx.item_ex.set_property("SiebelShared", shared_on_open);
    }

    1. Replace this code with the following:

    if (ctx.item_ex.get_id() == null) {
       var created_through_salesbook = ctx.created_from_ctx != null && !!ctx.created_from_ctx.created_from_ctx_type;
       shared_on_open = od_helpers.get_defaults(ctx.session) != null && (created_through_salesbook || ctx.application
          .settings.get("SharedByDefault:NewItems") == 1);
       ctx.item_ex.set_property("SiebelShared", shared_on_open);
    }

    1. Locate the following code:

    form.share_contact.checked = true;
    }
    else
    if (form.item.snapshot.ObjectState != 0 && ctx.ui.message_box(0, ctx.session.res_string("msg_want_to_delete"), ctx.session.res_string("msg_unshare_caption") + " " + ctx.item_ex.get_type(), 0x44) != 6) form.share_contact.checked = true;
    }
    else {
       if (!form.item.AddrConvertedFrom) {
          var cont_converter = new business_logic.contact_conversion_helper(ctx);
          cont_converter.convert_to_ondemand(ctx.item_ex, cont_addr_opener.dialog());
    iconcat_baddr(form.item);
    }
       od_helpers.check_sharing_possibility(ctx, form.share_contact);
    }
    setShareBarCaption(ctx, form.share_contact, null, 1);
    }
    var form_saving = function()

    1. Replace this code with the following:

    form.share_contact.checked = true;
    }
    else
    if (ctx.security_descriptor.is_synced() && ctx.ui.message_box(0, ctx.session.res_string("msg_want_to_delete"),
    ctx.session.res_string("msg_unshare_caption") + " " + ctx.item_ex.get_type(), 0x44) != 6) form.share_contact
    .checked = true;
    }
    else {
       od_helpers.check_sharing_possibility(ctx, form.share_contact);
    }
    setShareBarCaption(ctx, form.share_contact, null, 1);
    form.CompanyNameLbl.visible = !form.share_contact.checked;
    form.CompanyName.visible = !form.share_contact.checked;
    }
    var form_saving = function()

    1. Locate the following code:

    //FORM EVENTS
    form.on_saving.connect(form_saving);
    form.on_saved.connect(form_saved);
    }
    // LEAD FORM SCRIPTS //

    1. Replace this code with the following:

    //FORM EVENTS
    form.on_saving.connect(form_saving);
    form.on_saved.connect(form_saved);
    form.CompanyNameLbl.visible = !ctx.item_ex.get_property("SiebelShared");
    form.CompanyName.visible = !ctx.item_ex.get_property("SiebelShared");
    }
    // LEAD FORM SCRIPTS //

    1. Locate the following code:

    var ownership_mode = ctx.security_descriptor.ownership_mode(),
       form = ctx.form,
       type = form.item.type_id,
       current_user_link = {
          "item_ex": ctx.item_ex,
          "with_id": helpers.get_current_user_id(ctx.session),
          "tag": "direct"
       },
       current_user_link_mvg = helpers.merge_contexts(current_user_link, {
          "tag": "mvg",
          "params": {
             "is_manual_operation": false
          }
       });
    if (!is_activity_subform(type)) {

    1. Replace this code with the following:

    var ownership_mode = ctx.security_descriptor.ownership_mode(),
       form = ctx.form,
       type = form.item.type_id,
       current_user_link = {
          "item_ex": ctx.item_ex,
          "with_id": od_helpers.get_current_user_id(ctx.session),
          "tag": "direct"
       },
       current_user_link_mvg = helpers.merge_contexts(current_user_link, {
          "tag": "mvg",
          "params": {
             "is_manual_operation": false
          }
       });
    if (!is_activity_subform(type)) {

    1. Locate the following code:

    if (ctrl.checked || shared) {
       caption = ctx.session.res_string("btn_shared");
    } else {
       caption = helpers.replace_all("{full_name}", ctx.form.item.snapshot.ContactFullName, ctx.session.res_string("btn_share_contact"))
    }
    }
    ctrl.caption = caption;

    1. Replace this code with the following:

    if (ctrl.checked || shared) {
       caption = ctx.session.res_string("btn_shared");
    } else {
       var contact_name = ctx.form.item.get_instant("ContactFullName");
       if(!helpers.is_null_or_empty(contact_name)){
          caption = helpers.replace_all("{full_name}", contact_name, ctx.session.res_string("btn_share_contact"));
       } else {
          caption = ctx.session.res_string("btn_share");
       }
    }
    }
    ctrl.caption = caption;

  2. Update the business_logic.js file as follows:
    1. Locate the following code:

    var result = new Array();
    if (addr != "" && addr != null) {
       var curr_user_id = helpers.get_current_user_id(session);
       var filter = session.create_criteria("and");
       filter.add(session.create_expression("ContactEmail", "like", addr));
       filter.add(session.create_expression("SiebelShared", "eq", true));

    1. Replace this code with the following:

    var result = new Array();
    if (addr != "" && addr != null) {
       var curr_user_id = od_helpers.get_current_user_id(session);
       var filter = session.create_criteria("and");    filter.add(session.create_expression("ContactEmail", "like", addr));
       filter.add(session.create_expression("SiebelShared", "eq", true));

    1. Locate the following code:

    helpers.for_each(session.find_items("User", filter), function(item) {
       result.push(item.id)
    });
    if (result.length == 0 && account_addresses != null && include.helpers.contains(account_addresses, addr)) result.push(include.helpers.get_current_user_id(session));
    }
    return result;
    }

    1. Replace this code with the following:

    helpers.for_each(session.find_items("User", filter), function(item) {
       result.push(item.id)
    });
    if (result.length == 0 && account_addresses != null && include.helpers.contains(account_addresses, addr)) result.push(include.od_helpers.get_current_user_id(session));
    }
    return result;
    }

    1. Locate the following code:

    var result = new Array();
    if (addr != "" && addr != null) {
       var curr_user_id = helpers.get_current_user_id(session);
       var filter = session.create_criteria("and");
       filter.add(session.create_expression("LeadEmail", "like", addr));    helpers.for_each(session.find_items("Lead", filter), function(item) {
          result.push(item.id)
       });

    1. Replace this code with the following:

    var result = new Array();
    if (addr != "" && addr != null) {
       var curr_user_id = od_helpers.get_current_user_id(session);
       var filter = session.create_criteria("and");
       filter.add(session.create_expression("LeadEmail", "like", addr));
       helpers.for_each(session.find_items("Lead", filter), function(item) {
          result.push(item.id)
       });

    1. Locate the following code:

    var mode = od_helpers.get_ownership_mode(ctx, action_ctx.type);
    if (mode == "mixed" || mode == "owner") {
       var curr_user_id = helpers.get_current_user_id(ctx.session),
          with_user_id = action_ctx.with_id;
       var is_manual_operation = action_ctx.params == null || action_ctx.params.is_manual_operation;
       // prevent manual set primary to non-current user

    1. Replace this code with the following:

    var mode = od_helpers.get_ownership_mode(ctx, action_ctx.type);
    if (mode == "mixed" || mode == "owner") {
       var curr_user_id = od_helpers.get_current_user_id(ctx.session),
          with_user_id = action_ctx.with_id;
       var is_manual_operation = action_ctx.params == null || action_ctx.params.is_manual_operation;
       // prevent manual set primary to non-current user

    1. Locate the following code:

    var item_ex = ctx.item_ex;
    var default_type_id = item_ex ? item_ex.get_type() : null;
    type_id = type_id || default_type_id;
    var current_user_id = helpers.get_current_user_id(ctx.session);
    if (current_user_id != null && type_id && item_ex) {
       var ownership_mode = od_helpers.get_ownership_mode(ctx, type_id);

    1. Replace this code with the following:

    var item_ex = ctx.item_ex;
    var default_type_id = item_ex ? item_ex.get_type() : null;
    type_id = type_id || default_type_id;
    var current_user_id = od_helpers.get_current_user_id(ctx.session);
    if (current_user_id != null && type_id && item_ex) {
       var ownership_mode = od_helpers.get_ownership_mode(ctx, type_id);

    1. Locate the following code:

    function prefill_owner_od(ctx) {
       var current_user_id = helpers.get_current_user_id(ctx.session);
       return current_user_id;
    }

    1. Replace this code with the following:

    function prefill_owner_od(ctx){
       var current_user_id = od_helpers.get_current_user_id(ctx.session);
       return current_user_id;
    }

    1. Locate the following code:

    }
    if (!book_id) {
       var defaults = helpers.get_defaults(ctx.session),
          user_default_book_name = defaults != null ? defaults.DefaultBookName : "",
          user_default_book = ctx.session.find_item("Book", od_helpers.create_expression_or_null_value_filter(ctx.session,"Label", "eq", user_default_book_name));
       book_id = user_default_book != null ? user_default_book.Value : book_id;

    1. Replace this code with the following:

    }
    if (!book_id) {
       var defaults = od_helpers.get_defaults(ctx.session),
          user_default_book_name = defaults != null ? defaults.DefaultBookName :"",
          user_default_book = ctx.session.find_item("Book", od_helpers.create_expression_or_null_value_filter(ctx.session, "Label", "eq", user_default_book_name));
       book_id = user_default_book != null ? user_default_book.Value :book_id;

    1. Locate the following code:

    var fill_owner = ownership_mode != "book" && !(ownership_mode == "mixed" && prefill_book(ctx, item_ex)); // prefill owner in mixed mode if no book was prefilled
    if (fill_owner) {
       current_user_id = helpers.get_current_user_id(ctx.session);
    }
    return current_user_id;
    }

    1. Replace this code with the following:

    var fill_owner = ownership_mode != "book" && !(ownership_mode == "mixed" && prefill_book(ctx, item_ex)); // prefill owner in mixed mode if no book was prefilled
    if (fill_owner) {
       current_user_id = od_helpers.get_current_user_id(ctx.session);
    }
    return current_user_id;
    }

    1. Locate the following code:

    function get_default_currency_code_od(ctx) {
       var defaults = helpers.get_defaults(ctx.session);
       var currency_code = null;
       if ((defaults != null) && (defaults["CurrencyCode"] != null)) {

    1. Replace this code with the following:

    function get_default_currency_code_od(ctx){
       var defaults = od_helpers.get_defaults(ctx.session);
       var currency_code = null;
       if ((defaults != null) && (defaults["CurrencyCode"] != null)) {

    1. Locate the following code:

    {
       var sales_process_id = null,
          filter = ctx.session.create_criteria("and"),
          defaults = helpers.get_defaults(ctx.session);
       if ((defaults != null) && (defaults["SalesProcessId"] != "")){
       // default sales process which is set for the user's role

    1. Replace this code with the following:

    {
       var sales_process_id = null,
          filter = ctx.session.create_criteria("and"),
          defaults = od_helpers.get_defaults(ctx.session);
       if ((defaults != null) && (defaults["SalesProcessId"] != "")){
       // default sales process which is set for the user's role

    1. Locate the following code:

    {
       var LanguageCode;
       var access_profile = ctx.session.res_string("lang_default_access_profile");
       var defaults = helpers.get_defaults(ctx.session);
       if ((defaults != null) && (defaults["LanguageCode"] != null)){
       // user LanguageCode

    1. Replace this code with the following:

    {
       var LanguageCode;
       var access_profile = ctx.session.res_string("lang_default_access_profile");
       var defaults = od_helpers.get_defaults(ctx.session);
       if ((defaults != null) && (defaults["LanguageCode"] != null)) {
       // user LanguageCode

    1. Locate the following code:

    function get_current_user_login(ctx) {
       var user_login = "";
       var defaults = include.helpers.get_defaults(ctx.session);
       if (defaults != null) {
          user_login = ctx.session.open_item(defaults.CurrentUser)["Login Name"];

    1. Replace this code with the following:

    function get_current_user_login(ctx) {
       var user_login = "";
       var defaults = include.od_helpers.get_defaults(ctx.session);
       if (defaults != null) {
          user_login = ctx.session.open_item(defaults.CurrentUser)["Login Name"];

    1. Locate the following code:

    scheme.objects.get_object("Activity").get_field("ObjectState")["initial_value"] = 0;
    scheme.objects.get_object("Activity").get_field("SiebelShared")["initial_value"] = true;
    scheme.objects.get_object("Activity").get_field("SuppressFileAs")["initial_value_res"] ="lang_general_initial_fileas";
    scheme.objects.get_object("Activity").get_field("Priority")["initial_value_res"] = "lang_action_priority_low";
    scheme.objects.get_object("Activity").get_field("DueDate")["initial_value_fn"] = date_today_no_time;
    scheme.objects.get_object("Activity")["initial_links_fn"] = prefill_activity_owner;
    scheme.objects.get_object("Activity").get_field("BookId")["initial_value_fn"] = prefill_book;

    1. Replace this code with the following:

    scheme.objects.get_object("Activity").get_field("ObjectState")["initial_value"] = 0; scheme.objects.get_object("Activity").get_field("SiebelShared")["initial_value"] = true; scheme.objects.get_object("Activity").get_field("SuppressFileAs")["initial_value_res"] = "lang_general_initial_fileas"; scheme.objects.get_object("Activity").get_field("Priority")["initial_value_fn"] = function(ctx, item_ex)
    {
    return get_pl_default_value(ctx, "ActivityPriorityPicklist", "lang_action_priority_low");
    }
    scheme.objects.get_object("Activity").get_field("DueDate")["initial_value_fn"] = date_today_no_time;
    scheme.objects.get_object("Activity")["initial_links_fn"] = prefill_activity_owner;
    scheme.objects.get_object("Activity").get_field("BookId")["initial_value_fn"] = prefill_book;

    1. Locate the following code:

    scheme.objects.get_object("Contact").get_field("ObjectState")["initial_value"] = 0;
    scheme.objects.get_object("Contact")["initial_links_fn"] = prefill_owner;
    scheme.objects.get_object("Contact").get_field("CurrencyCode")["initial_value_fn"] = get_default_currency_code_od; scheme.objects.get_object("Contact").get_field("SuppressFileAs")["initial_value_res"] = "lang_general_initial_fileas"; scheme.objects.get_object("Contact").get_field("BookId")["initial_value_fn"] = prefill_book; scheme.objects.get_object("Account").get_field("SuppressFileAs")["initial_value_res"] = "lang_general_initial_fileas";

    1. Replace this code with the following:

    scheme.objects.get_object("Contact").get_field("ObjectState")["initial_value"] = 0;
    scheme.objects.get_object("Contact")["initial_links_fn"] = prefill_owner;
    scheme.objects.get_object("Contact").get_field("CurrencyCode")["initial_value_fn"] =
       get_default_currency_code_od;
    scheme.objects.get_object("Contact").get_field("SuppressFileAs")["initial_value_fn"] = function(ctx, item_ex) {
       // prefill only if empty
       var existing_value = item_ex.fcd_item.get_instant("SuppressFileAs");
       var result = helpers.is_null_or_empty(existing_value) ? ctx.session.res_string("lang_general_initial_fileas") : existing_value; return result;
    };
    scheme.objects.get_object("Contact").get_field("BookId")["initial_value_fn"] = prefill_book;
    scheme.objects.get_object("Account").get_field("SuppressFileAs")["initial_value_res"] = "lang_general_initial_fileas";

    1. Locate the following code:

    // Helper functions
    function has_defaults_and_online() {
       return helpers.get_defaults(ctx.session) != null && od_helpers.is_online(ctx);
    }
    function current_user_id() {
       return helpers.get_current_user_id(ctx.session);
    }
    function is_current_user(id)

    1. Replace this code with the following:

    // Helper functions
    function has_defaults_and_online() {
       return od_helpers.get_defaults(ctx.session) != null && od_helpers.is_online(ctx);
    }
    function current_user_id()
    {
       return od_helpers.get_current_user_id(ctx.session);
    }
    function is_current_user(id)

    1. Locate the following code:

    switch (ol.item_ex().get_type()) {
       case "Event":
          proxy.item_ex().set_property("Type", ctx.session.res_string("lang_action_calendar_initial_type"));
          //proxy.item_ex().set_property("Status", "Unscheduled");
          proxy.item_ex().set_property("iCRMId", ol.item_ex().get_property("SearchKey"));
          create_initial_associations(proxy, ol);
          break;
       case "Task":
          proxy.item_ex().set_property("Type", ctx.session.res_string("lang_action_todo_initial_type"));
          proxy.item_ex().set_property("iCRMId", ol.item_ex().get_property("SearchKey"));
          create_initial_associations(proxy, ol);
          break;

    1. Replace this code with the following:

    switch (ol.item_ex().get_type()){
       case "Event":
          proxy.item_ex().set_property("Type", get_pl_default_value(ctx, "ActivityTypePicklist", "lang_action_calendar_initial_type"));
          //proxy.item_ex().set_property("Status", "Unscheduled");
          proxy.item_ex().set_property("iCRMId", ol.item_ex().get_property("SearchKey"));
          create_initial_associations(proxy, ol);
          break;
       case "Task":
          proxy.item_ex().set_property("Type", get_pl_default_value(ctx, "ActivityTypePicklist", "lang_action_todo_initial_type"));
          proxy.item_ex().set_property("iCRMId", ol.item_ex().get_property("SearchKey"));
          create_initial_associations(proxy, ol);
          break;

    1. Locate the following code:

    case "Mail":
    //proxy.item_ex().set_property("Type", ol.item_ex().get_property("Inbound") == true ? "Email - Inbound" : "Email - Outbound");
       proxy.item_ex().set_property("Status", ctx.session.res_string("lang_action_mail_initial_status"));
       proxy.item_ex().set_property("Type", ctx.session.res_string("lang_action_mail_initial_type"));
       proxy.item_ex().set_property("SiebelShared", ol.item_ex().get_property("Sent"));
       create_initial_associations(proxy, ol);
       break;

    1. Replace this code with the following:

    case "Mail":
    //proxy.item_ex().set_property("Type", ol.item_ex().get_property("Inbound") == true ? "Email - Inbound" : "Email - Outbound");
       proxy.item_ex().set_property("Status", ctx.session.res_string("lang_action_mail_initial_status"));
       proxy.item_ex().set_property("Type", get_pl_default_value(ctx, "ActivityTypePicklist", "lang_action_mail_initial_type"));
       proxy.item_ex().set_property("SiebelShared", ol.item_ex().get_property("Sent"));
       create_initial_associations(proxy, ol);
       break;

    1. Locate the following code:

    function contact_conversion_helper(ctx) {
       this.business_address = "b";
       this.home_address = "h";

       function null_to_empty(value) {
          return value == null ? "" : value;
       }
       var ol2od = {
          "US": "USA",
          "GB": "United Kingdom",
          "RU": "Russian Federation"
       }

       function verify_country(country, code) {
          if (null_to_empty(country) == "") return false;
          if (code != null && ol2od[code] != null) {
             return ol2od[code];
       }
          var od_country = ctx.session.find_item("AccountPrimaryBillToCountryPicklist", ctx.session.create_expression(
    "Value", "eq", country));
          return od_country && od_country.Value;
       }

       function verify_state(state) {
          if (null_to_empty(state) == "") return false;
          var od_state = ctx.session.find_item("AccountPrimaryBillToStatePicklist", ctx.session.create_expression("Value", "eq", state));
          return od_state && od_state.Value;

    }
       function convert_to_ondemand(item_ex, dialog) {
          //var item = ctx.form.item;
          if (item_ex.get_type() == "Contact") {
             var country = {};
             country[this.home_address] = item_ex.get_property("Home Address Country");
             country[this.business_address] = item_ex.get_property("Business Address Country");
             var state = {};
             state[this.home_address] = item_ex.get_property("Home Address State");
             state[this.business_address] = item_ex.get_property("Business Address State");
             var city = {};
             city[this.home_address] = item_ex.get_property("Home Address City");
             city[this.business_address] = item_ex.get_property("Business Address City");
             var address = {};
             address[this.home_address] = item_ex.get_property("Home Address Street");
             address[this.business_address] = item_ex.get_property("Business Address Street");
             var zip = {};
             zip[this.home_address] = item_ex.get_property("Home Address Postal Code");
             zip[this.business_address] = item_ex.get_property("Business Address Postal Code");
             var country_code = {};
             country_code[this.home_address] = item_ex.get_property("Address Country Code");
             country_code[this.business_address] = item_ex.get_property("Address Country Code");
             var at = ""; // address_type_to_use
             var od_country
             if (od_country = verify_country(country.b, country_code.b)) at = this.business_address;
             else if (od_country = verify_country(country.h, country_code.h)) at = this.home_address;
             if (at != "" && dialog != null) {
                dialog.item = item_ex.fcd_item;
                item_ex.set_property("AddrConvertedFrom", at);
                dialog.country_value.value = od_country;
                if (od_country == "USA" && verify_state(state[at])) dialog.state_value_pl.value = state[at];
                else dialog.state_value.value = state[at];
                dialog.city_value.value = city[at];
                dialog.street_value.value = address[at].replace(/\n/g, " ");
                dialog.zip_value.value = zip[at];
                dialog.save();
             }
          }
       }
       this.convert_to_ondemand = convert_to_ondemand;

       function empty_AddrConvertedFrom(item_ex) {
          if (item_ex.get_type() == "Contact") {
             //item_ex.set_property("AddrConvertedFrom", "");
             //item.save();
          }
       }

       function convert_to_outlook(item_ex) {
          if (item_ex.get_type() == "Contact") {
             var at = item_ex.get_property("AddrConvertedFrom") == "h" ? "Home " : "Business ";
             var country = item_ex.get_property("AlternateCountry");
             var state = item_ex.get_property("AlternateStateProvince") ? item_ex.get_property( "AlternateStateProvince") : item_ex.get_property("AlternateProvince");
             var city = item_ex.get_property("AlternateCity");
             var address = item_ex.get_property("AlternateAddress1");
             var zip = item_ex.get_property("AlternateZipCode");
             if (null_to_empty(country) + null_to_empty(state) + null_to_empty(city) + null_to_empty(address) + null_to_empty(zip) != "") {
                item_ex.set_property(at + "Address Country", country);
                item_ex.set_property(at + "Address State", state);
                item_ex.set_property(at + "Address City", city);
                item_ex.set_property(at + "Address Street", address);
                item_ex.set_property(at + "Address Postal Code", zip);
                //item.save();
             }
          }
       }
       this.convert_to_outlook = convert_to_outlook;
       this.converted_to_platform = function(ctx, options, item_ex) {
          empty_AddrConvertedFrom(item_ex);
       }
       this.converting_to_native = function(ctx, options, item_ex) {
          convert_to_outlook(item_ex);
       }
       this.set_visible = function(ctx, options, item_ex, visible) {
          if (!visible) item_ex.set_property("InvisibleOnGrids", visible ? null : "true");
       }
    }

    1. Replace this code with the following:

    function contact_conversion_helper(ctx) {
       function null_to_empty(value) {
          return value == null ? "" : value;
       }

       function convert_to_outlook(ctx, item_ex) {
          if (item_ex.get_type() == "Contact") {
             var at = item_ex.get_property("AddrConvertedFrom");
             at = helpers.ci_contains(["Business", "Home", "Other"], at) ? at : "Business";
             var country = item_ex.get_property("AlternateCountry");
             var state = item_ex.get_property("AlternateStateProvince") ? item_ex.get_property( "AlternateStateProvince") : item_ex.get_property("AlternateProvince");
             var city = item_ex.get_property("AlternateCity");
             var address = item_ex.get_property("AlternateAddress1");
             var zip = item_ex.get_property("AlternateZipCode");
             if (null_to_empty(country) + null_to_empty(state) + null_to_empty(city) + null_to_empty(address) + null_to_empty(zip) != "") {
                item_ex.set_property(at + " Address Country", country_id_to_label(country));
                item_ex.set_property(at + " Address State", state);
                item_ex.set_property(at + " Address City", city);
                item_ex.set_property(at + " Address Street", address);
                item_ex.set_property(at + " Address Postal Code", zip);
             }
          }

          function country_id_to_label(country_id) {
             var result = null;
             if (!helpers.is_null_or_empty(country_id)) {
                var od_country = ctx.session.find_item("AccountPrimaryBillToCountryPicklist", ctx.session.create_expression( "Value", "eq", country_id));
                result = od_country ? od_country.Label : result;
             }
             return result;
          }
       }
       this.converted_to_platform = function(ctx, options, item_ex) {
          convert_ol_to_crm_address(ctx, item_ex);
       }
       this.converting_to_native = function(ctx, options, item_ex) {
          convert_to_outlook(ctx, item_ex);
       }
       this.set_visible = function(ctx, options, item_ex, visible) {
          if (!visible) item_ex.set_property("InvisibleOnGrids", visible ? null : "true");
       }

       function convert_ol_to_crm_address(ctx, item_ex) {
       // copy native address to CRM fields
          var address_to_use;
          if (is_address_populated(item_ex, "Business")) {
          address_to_use = "Business";
          }else if (is_address_populated(item_ex, "Home")) {
          address_to_use = "Home";
          } else if (is_address_populated(item_ex, "Other")) {
          address_to_use = "Other";
       }

          if (address_to_use) {
             var crm_country_id = ol_to_crm_country(item_ex, address_to_use);
             item_ex.set_property("AlternateCountry", crm_country_id);
             if (crm_country_id == "USA") {
                var crm_state = ol_to_crm_state(item_ex, address_to_use);
                 item_ex.set_property("AlternateStateProvince", crm_state);
                } else {
             item_ex.set_property("AlternateProvince", item_ex.get_property(address_to_use + " Address State"));
          }
             item_ex.set_property("AlternateAddress1", item_ex.get_property(address_to_use + " Address Street"));
             item_ex.set_property("AlternateCity", item_ex.get_property(address_to_use + " Address City"));
             item_ex.set_property("AlternateZipCode", item_ex.get_property(address_to_use + " Address Postal Code"));
             item_ex.set_property("AddrConvertedFrom", address_to_use);
          }

          function is_address_populated(item_ex, address_type) {
             var result = item_ex.get_property(address_type + " Address City") || item_ex.get_property(address_type + " Address Country") || item_ex.get_property(address_type + " Address Postal Code") || item_ex.get_property( address_type + " Address State") || item_ex.get_property(address_type + " Address Street");
             return !helpers.is_null_or_empty(result);
             }

          function ol_to_crm_country(item_ex, address_type) {
             var mapping = [{
                ol_code: 'AF',
                ol_name: 'Afghanistan',
                crm_id: 'Afghanistan'
             }, {
                ol_code: 'AL',
                ol_name: 'Albania',
                crm_id: 'Albania'
             }, {
                ol_code: 'DZ',
                ol_name: 'Algeria',
                crm_id: 'Algeria'
             }, {
                ol_code: 'AS',
                ol_name: 'American Samoa',
                crm_id: 'American Samoa'
             }, {
                ol_code: 'AD',
                ol_name: 'Andorra',
                crm_id: 'Andorra'
             }, {
                ol_code: 'AO',
                ol_name: 'Angola',
                crm_id: 'Angola'
             }, {
                ol_code: 'AI',
                ol_name: 'Anguilla',
                crm_id: 'Anguilla'
             }, {
                ol_code: 'AG',
                ol_name: 'Antigua and Barbuda',
                crm_id: 'Antigua and Barbuda'
             }, {
                ol_code: 'AR',
                ol_name: 'Argentina',
                crm_id: 'Argentina'
             }, {
                ol_code: 'AM',
                ol_name: 'Armenia',
                crm_id: 'Armenia'
             }, {
                ol_code: 'AW',
                ol_name: 'Aruba',
                crm_id: 'Aruba'
             },
             //{ ol_code: '', ol_name: 'Ashmore and Cartier Islands', crm_id: ''},
             {
                ol_code: 'AU',
                ol_name: 'Australia',
                crm_id: 'Australia'
             }, {
                ol_code: 'AT',
                ol_name: 'Austria',
                crm_id: 'Austria'
             }, {
                ol_code: 'AZ',
                ol_name: 'Azerbaijan',
                crm_id: 'Azerbaijan'
             }, {
                ol_code: 'BS',
                ol_name: 'Bahamas',
                crm_id: 'Bahamas'
             }, {
                ol_code: 'BH',
                ol_name: 'Bahrain',
                crm_id: 'Bahrain'
             }, {
                ol_code: 'UM',
                ol_name: 'Baker Island',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: 'BD',
                ol_name: 'Bangladesh',
                crm_id: 'Bangladesh'
             }, {
                ol_code: 'BB',
                ol_name: 'Barbados',
                crm_id: 'Barbados'
             }, {
                ol_code: 'BY',
                ol_name: 'Belarus',
                crm_id: 'Belarus'
             }, {
                ol_code: 'BE',
                ol_name: 'Belgium',
                crm_id: 'Belgium'
             }, {
                ol_code: 'BZ',
                ol_name: 'Belize',
                crm_id: 'Belize'
             }, {
                ol_code: 'BJ',
                ol_name: 'Benin',
                crm_id: 'Benin'
             }, {
                ol_code: 'BM',
                ol_name: 'Bermuda',
                crm_id: 'Bermuda'
             }, {
                ol_code: 'BT',
                ol_name: 'Bhutan',
                crm_id: 'Bhutan'
             }, {
                ol_code: 'BO',
                ol_name: 'Bolivia',
                crm_id: 'Bolivia'
             }, {
                ol_code: 'BQ',
                ol_name: 'Bonaire',
                crm_id: 'Bonaire, Sint Eustatius & Saba'
             }, {
                ol_code: 'BA',
                ol_name: 'Bosnia and Herzegovina',
                crm_id: 'Bosnia and Herzegovina'
             }, {
                ol_code: 'BW',
                ol_name: 'Botswana',
                crm_id: 'Botswana'
             }, {
                ol_code: 'BV',
                ol_name: 'Bouvet Island',
                crm_id: 'Bouvet Island'
             }, {
                ol_code: 'BR',
                ol_name: 'Brazil',
                crm_id: 'Brazil'
             }, {
                ol_code: 'IO',
                ol_name: 'British Indian Ocean Territory',
                crm_id: 'British Indian Ocean Territory'
             }, {
                ol_code: 'VG',
                ol_name: 'British Virgin Islands',
                crm_id: 'Virgin Islands (British)'
             }, {
                ol_code: 'BN',
                ol_name: 'Brunei Darussalam',
                crm_id: 'Brunei Darussalam'
             }, {
                ol_code: 'BG',
                ol_name: 'Bulgaria',
                crm_id: 'Bulgaria'
             }, {
                ol_code: 'BF',
                ol_name: 'Burkina Faso',
                crm_id: 'Burkina Faso'
             }, {
                ol_code: 'BI',
                ol_name: 'Burundi',
                crm_id: 'Burundi'
             }, {
                ol_code: 'KH',
                ol_name: 'Cambodia',
                crm_id: 'Cambodia'
             }, {
                ol_code: 'CM',
                ol_name: 'Cameroon',
                crm_id: 'Cameroon'
             }, {
                ol_code: 'CA',
                ol_name: 'Canada',
                crm_id: 'Canada'
             }, {
                ol_code: 'CV',
                ol_name: 'Cape Verde',
                crm_id: 'Cape Verde'
             }, {
                ol_code: 'KY',
                ol_name: 'Cayman Islands',
                crm_id: 'Cayman Islands'
             }, {
                ol_code: 'CF',
                ol_name: 'Central African Republic',
                crm_id: 'Central African Republic'
             }, {
                ol_code: 'TD',
                ol_name: 'Chad',
                crm_id: 'Chad'
             }, {
                ol_code: 'CL',
                ol_name: 'Chile',
                crm_id: 'Chile'
             }, {
                ol_code: 'CN',
                ol_name: 'China',
                crm_id: 'China'
             }, {
                ol_code: 'CX',
                ol_name: 'Christmas Island',
                crm_id: 'Christmas Island'
             }, {
                ol_code: 'CC',
                ol_name: 'Cocos (Keeling) Islands',
                crm_id: 'Cocos (Keeling) Islands'
             }, {
                ol_code: 'CO',
                ol_name: 'Colombia',
                crm_id: 'Colombia'
             }, {
                ol_code: 'KM',
                ol_name: 'Comoros',
                crm_id: 'Comoros'
             }, {
                ol_code: 'CG',
                ol_name: 'Congo',
                crm_id: 'Congo'
             }, {
                ol_code: 'CD',
                ol_name: 'Congo (DRC)',
                crm_id: 'Congo, Democratic Republic of'
             }, {
                ol_code: 'CK',
                ol_name: 'Cook Islands',
                crm_id: 'Cook Islands'
             },
             //{ ol_code: '', ol_name: 'Coral Sea Islands', crm_id: ''},
             {
                ol_code: 'CR',
                ol_name: 'Costa Rica',
                crm_id: 'Costa Rica'
             }, {
                ol_code: 'CI',
                ol_name: 'Cote d\'Ivoire',
                crm_id: 'Ivory Coast'
             }, {
                ol_code: 'HR',
                ol_name: 'Croatia',
                crm_id: 'Croatia'
             }, {
                ol_code: 'CU',
                ol_name: 'Cuba',
                crm_id: 'Cuba'
             }, {
                ol_code: 'CW',
                ol_name: 'Curaçao',
                crm_id: 'Curacao'
             }, {
                ol_code: 'CY',
                ol_name: 'Cyprus',
                crm_id: 'Cyprus'
             }, {
                ol_code: 'CZ',
                ol_name: 'Czech Republic',
                crm_id: 'Czech Republic'
             }, {
                ol_code: 'DK',
                ol_name: 'Denmark',
                crm_id: 'Denmark'
             }, {
                ol_code: 'DJ',
                ol_name: 'Djibouti',
                crm_id: 'Djibouti'
             }, {
                ol_code: 'DM',
                ol_name: 'Dominica',
                crm_id: 'Dominica'
             }, {
                ol_code: 'DO',
                ol_name: 'Dominican Republic',
                crm_id: 'Dominican Republic'
             }, {
                ol_code: 'EC',
                ol_name: 'Ecuador',
                crm_id: 'Ecuador'
             }, {
                ol_code: 'EG',
                ol_name: 'Egypt',
                crm_id: 'Egypt'
             }, {
                ol_code: 'SV',
                ol_name: 'El Salvador',
                crm_id: 'El Salvador'
             }, {
                ol_code: 'GQ',
                ol_name: 'Equatorial Guinea',
                crm_id: 'Equatorial Guinea'
             }, {
                ol_code: 'ER',
                ol_name: 'Eritrea',
                crm_id: 'Eritrea'
             }, {
                ol_code: 'EE',
                ol_name: 'Estonia',
                crm_id: 'Estonia'
             }, {
                ol_code: 'ET',
                ol_name: 'Ethiopia',
                crm_id: 'Ethiopia'
             }, {
                ol_code: 'FK',
                ol_name: 'Falkland Islands (Islas Malvinas)',
                crm_id: 'Falkland Islands (Malvinas)'
             }, {
                ol_code: 'FO',
                ol_name: 'Faroe Islands',
                crm_id: 'Faroe Islands'
             }, {
                ol_code: 'FJ',
                ol_name: 'Fiji',
                crm_id: 'Fiji'
             }, {
                ol_code: 'FI',
                ol_name: 'Finland',
                crm_id: 'Finland'
             }, {
                ol_code: 'FR',
                ol_name: 'France',
                crm_id: 'France'
             }, {
                ol_code: 'GF',
                ol_name: 'French Guiana',
                crm_id: 'French Guiana'
             }, {
                ol_code: 'PF',
                ol_name: 'French Polynesia',
                crm_id: 'French Polynesia'
             }, {
                ol_code: 'TF',
                ol_name: 'French Southern and Antarctic Lands',
                crm_id: 'French Southern Territories'
             }, {
                ol_code: 'GA',
                ol_name: 'Gabon',
                crm_id: 'Gabon'
             }, {
                ol_code: 'GM',
                ol_name: 'Gambia',
                crm_id: 'Gambia'
             }, {
                ol_code: 'GE',
                ol_name: 'Georgia',
                crm_id: 'Georgia'
             }, {
                ol_code: 'DE',
                ol_name: 'Germany',
                crm_id: 'Germany'
             }, {
                ol_code: 'GH',
                ol_name: 'Ghana',
                crm_id: 'Ghana'
             }, {
                ol_code: '',
                ol_name: 'Gibraltar',
                crm_id: 'Gibraltar'
             }, {
                ol_code: 'GR',
                ol_name: 'Greece',
                crm_id: 'Greece'
             }, {
                ol_code: 'GL',
                ol_name: 'Greenland',
                crm_id: 'Greenland'
             }, {
                ol_code: 'GD',
                ol_name: 'Grenada',
                crm_id: 'Grenada'
             }, {
                ol_code: 'GP',
                ol_name: 'Guadeloupe',
                crm_id: 'Guadeloupe'
             }, {
                ol_code: 'GU',
                ol_name: 'Guam',
                crm_id: 'Guam'
             }, {
                ol_code: 'GT',
                ol_name: 'Guatemala',
                crm_id: 'Guatemala'
             }, {
                ol_code: '',
                ol_name: 'Guernsey',
                crm_id: 'Guernsey'
             }, {
                ol_code: 'GN',
                ol_name: 'Guinea',
                crm_id: 'Guinea'
             }, {
                ol_code: 'GW',
                ol_name: 'Guinea-Bissau',
                crm_id: 'Guinea-bissau'
             }, {
                ol_code: 'GY',
                ol_name: 'Guyana',
                crm_id: 'Guyana'
             }, {
                ol_code: 'HT',
                ol_name: 'Haiti',
                crm_id: 'Haiti'
             }, {
                ol_code: 'HM',
                ol_name: 'Heard Island and McDonald Islands',
                crm_id: 'Heard and Mc Donald Islands'
             }, {
                ol_code: 'VA',
                ol_name: 'Holy See (Vatican City)',
                crm_id: 'Holy See (Vatican City State)'
             }, {
                ol_code: 'HN',
                ol_name: 'Honduras',
                crm_id: 'Honduras'
             }, {
                ol_code: 'HK',
                ol_name: 'Hong Kong SAR',
                crm_id: 'Hong Kong'
             }, {
                ol_code: 'UM',
                ol_name: 'Howland Island',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: 'HU',
                ol_name: 'Hungary',
                crm_id: 'Hungary'
             }, {
                ol_code: 'IS',
                ol_name: 'Iceland',
                crm_id: 'Iceland'
             }, {
                ol_code: 'IN',
                ol_name: 'India',
                crm_id: 'India'
             }, {
                ol_code: 'ID',
                ol_name: 'Indonesia',
                crm_id: 'Indonesia'
             }, {
                ol_code: 'IR',
                ol_name: 'Iran',
                crm_id: 'Iran'
             }, {
                ol_code: 'IQ',
                ol_name: 'Iraq',
                crm_id: 'Iraq'
             }, {
                ol_code: 'IE',
                ol_name: 'Ireland',
                crm_id: 'Ireland'
             }, {
                ol_code: '',
                ol_name: 'Isle of Man',
                crm_id: 'Isle of Man'
             }, {
                ol_code: 'IL',
                ol_name: 'Israel',
                crm_id: 'Israel'
             }, {
                ol_code: 'IT',
                ol_name: 'Italy',
                crm_id: 'Italy'
             }, {
                ol_code: 'JM',
                ol_name: 'Jamaica',
                crm_id: 'Jamaica'
             }, {
                ol_code: 'JP',
                ol_name: 'Japan',
                crm_id: 'Japan'
             }, {
                ol_code: 'UM',
                ol_name: 'Jarvis Island',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: '',
                ol_name: 'Jersey',
                crm_id: 'Jersey'
             }, {
                ol_code: 'UM',
                ol_name: 'Johnston Atoll',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: 'JO',
                ol_name: 'Jordan',
                crm_id: 'Jordan'
             }, {
                ol_code: 'KZ',
                ol_name: 'Kazakhstan',
                crm_id: 'Kazakhstan'
             }, {
                ol_code: 'KE',
                ol_name: 'Kenya',
                crm_id: 'Kenya'
             }, {
                ol_code: 'UM',
                ol_name: 'Kingman Reef',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: 'KI',
                ol_name: 'Kiribati',
                crm_id: 'Kiribati'
             }, {
                ol_code: 'KR',
                ol_name: 'Korea',
                crm_id: 'Korea'
             }, {
                ol_code: 'KP',
                ol_name: 'North Korea',
                crm_id: 'Korea, Democratic People\'s Rep'
             }, {
                ol_code: 'KW',
                ol_name: 'Kuwait',
                crm_id: 'Kuwait'
             }, {
                ol_code: 'KG',
                ol_name: 'Kyrgyzstan',
                crm_id: 'Kyrgyzstan'
             }, {
                ol_code: 'LA',
                ol_name: 'Laos',
                crm_id: 'Laos'
             }, {
                ol_code: 'LV',
                ol_name: 'Latvia',
                crm_id: 'Latvia'
             }, {
                ol_code: 'LB',
                ol_name: 'Lebanon',
                crm_id: 'Lebanon'
             }, {
                ol_code: 'LS',
                ol_name: 'Lesotho',
                crm_id: 'Lesotho'
             }, {
                ol_code: 'LR',
                ol_name: 'Liberia',
                crm_id: 'Liberia'
             }, {
                ol_code: 'LY',
                ol_name: 'Libya',
                crm_id: 'Libyan Arab Jamahiriya'
             }, {
                ol_code: 'LI',
                ol_name: 'Liechtenstein',
                crm_id: 'Liechtenstein'
             }, {
                ol_code: 'LT',
                ol_name: 'Lithuania',
                crm_id: 'Lithuania'
             }, {
                ol_code: 'LU',
                ol_name: 'Luxembourg',
                crm_id: 'Luxembourg'
             }, {
                ol_code: 'MO',
                ol_name: 'Macau SAR',
                crm_id: 'Macau'
             }, {
                ol_code: 'MK',
                ol_name: 'Macedonia, FYRO',
                crm_id: 'Macedonia'
             }, {
                ol_code: 'MG',
                ol_name: 'Madagascar',
                crm_id: 'Madagascar'
             }, {
                ol_code: 'MW',
                ol_name: 'Malawi',
                crm_id: 'Malawi'
             }, {
                ol_code: 'MY',
                ol_name: 'Malaysia',
                crm_id: 'Malaysia'
             }, {
                ol_code: 'MV',
                ol_name: 'Maldives',
                crm_id: 'Maldives'
             }, {
                ol_code: 'ML',
                ol_name: 'Mali',
                crm_id: 'Mali'
             }, {
                ol_code: 'MT',
                ol_name: 'Malta',
                crm_id: 'Malta'
             }, {
                ol_code: 'MH',
                ol_name: 'Marshall Islands',
                crm_id: 'Marshall Islands'
             }, {
                ol_code: 'MQ',
                ol_name: 'Martinique',
                crm_id: 'Martinique'
             }, {
                ol_code: 'MR',
                ol_name: 'Mauritania',
                crm_id: 'Mauritania'
             }, {
                ol_code: 'MU',
                ol_name: 'Mauritius',
                crm_id: 'Mauritius'
             }, {
                ol_code: 'YT',
                ol_name: 'Mayotte',
                crm_id: 'Mayotte'
             }, {
                ol_code: 'MX',
                ol_name: 'Mexico',
                crm_id: 'Mexico'
             }, {
                ol_code: 'FM',
                ol_name: 'Micronesia',
                crm_id: 'Micronesia, Federated States o'
             }, {
                ol_code: 'UM',
                ol_name: 'Midway Islands',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: 'MD',
                ol_name: 'Moldova',
                crm_id: 'Moldova, Republic of'
             }, {
                ol_code: 'MC',
                ol_name: 'Monaco',
                crm_id: 'Monaco'
             }, {
                ol_code: 'MN',
                ol_name: 'Mongolia',
                crm_id: 'Mongolia'
             }, {
                ol_code: 'ME',
                ol_name: 'Montenegro',
                crm_id: 'Montenegro'
             }, {
                ol_code: 'MS',
                ol_name: 'Montserrat',
                crm_id: 'Montserrat'
             }, {
                ol_code: 'MA',
                ol_name: 'Morocco',
                crm_id: 'Morocco'
             }, {
                ol_code: 'MZ',
                ol_name: 'Mozambique',
                crm_id: 'Mozambique'
             }, {
                ol_code: 'MM',
                ol_name: 'Myanmar',
                crm_id: 'Myanmar'
             }, {
                ol_code: 'NA',
                ol_name: 'Namibia',
                crm_id: 'Namibia'
             }, {
                ol_code: 'NR',
                ol_name: 'Nauru',
                crm_id: 'Nauru'
             }, {
                ol_code: 'NP',
                ol_name: 'Nepal',
                crm_id: 'Nepal'
             }, {
                ol_code: 'NL',
                ol_name: 'Netherlands',
                crm_id: 'Netherlands'
             }, {
                ol_code: 'NC',
                ol_name: 'New Caledonia',
                crm_id: 'New Caledonia'
             }, {
                ol_code: 'NZ',
                ol_name: 'New Zealand',
                crm_id: 'New Zealand'
             }, {
                ol_code: 'NI',
                ol_name: 'Nicaragua',
                crm_id: 'Nicaragua'
             }, {
                ol_code: 'NE',
                ol_name: 'Niger',
                crm_id: 'Niger'
             }, {
                ol_code: 'NG',
                ol_name: 'Nigeria',
                crm_id: 'Nigeria'
             }, {
                ol_code: 'NU',
                ol_name: 'Niue',
                crm_id: 'Niue'
             }, {
                ol_code: 'NF',
                ol_name: 'Norfolk Island',
                crm_id: 'Norfolk Island'
             }, {
                ol_code: 'MP',
                ol_name: 'Northern Mariana Islands',
                crm_id: 'Northern Mariana Islands'
             }, {
                ol_code: 'NO',
                ol_name: 'Norway',
                crm_id: 'Norway'
             }, {
                ol_code: 'OM',
                ol_name: 'Oman',
                crm_id: 'Oman'
             }, {
                ol_code: 'PK',
                ol_name: 'Pakistan',
                crm_id: 'Pakistan'
             }, {
                ol_code: 'PW',
                ol_name: 'Palau',
                crm_id: 'Palau'
             }, {
                ol_code: 'PS',
                ol_name: 'Palestinian Authority',
                crm_id: 'Palestinian Authority'
             }, {
                ol_code: 'UM',
                ol_name: 'Palmyra Atoll',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: 'PA',
                ol_name: 'Panama',
                crm_id: 'Panama'
             }, {
                ol_code: 'PG',
                ol_name: 'Papua New Guinea',
                crm_id: 'Papua New Guinea'
             }, {
                ol_code: 'PY',
                ol_name: 'Paraguay',
                crm_id: 'Paraguay'
             }, {
                ol_code: 'PE',
                ol_name: 'Peru',
                crm_id: 'Peru'
             }, {
                ol_code: 'PH',
                ol_name: 'Philippines',
                crm_id: 'Philippines'
             }, {
                ol_code: 'PN',
                ol_name: 'Pitcairn Island',
                crm_id: 'Pitcairn Islands'
             }, {
                ol_code: 'PL',
                ol_name: 'Poland',
                crm_id: 'Poland'
             }, {
                ol_code: 'PT',
                ol_name: 'Portugal',
                crm_id: 'Portugal'
             }, {
                ol_code: 'PR',
                ol_name: 'Puerto Rico',
                crm_id: 'Puerto Rico'
             }, {
                ol_code: 'QA',
                ol_name: 'Qatar',
                crm_id: 'Qatar'
             }, {
                ol_code: 'RE',
                ol_name: 'Réunion',
                crm_id: 'Reunion'
             }, {
                ol_code: 'RO',
                ol_name: 'Romania',
                crm_id: 'Romania'
             }, {
                ol_code: 'RU',
                ol_name: 'Russia',
                crm_id: 'Russian Federation'
             }, {
                ol_code: 'RW',
                ol_name: 'Rwanda',
                crm_id: 'Rwanda'
             },
             //{ ol_code: 'XS', ol_name: 'Saba', crm_id: ''},
             {
                ol_code: 'SH',
                ol_name: 'Saint Helena',
                crm_id: 'St. Helena'
             }, {
                ol_code: 'PM',
                ol_name: 'Saint Pierre and Miquelon',
                crm_id: 'St. Pierre and Miquelon'
             }, {
                ol_code: 'AS',
                ol_name: 'Samoa',
                crm_id: 'Samoa'
             }, {
                ol_code: 'SM',
                ol_name: 'San Marino',
                crm_id: 'San Marino'
             }, {
                ol_code: 'ST',
                ol_name: 'São Tomé and Príncipe',
                crm_id: 'Sao Tome and Principe'
             }, {
                ol_code: 'SA',
                ol_name: 'Saudi Arabia',
                crm_id: 'Saudi Arabia'
             }, {
                ol_code: 'SN',
                ol_name: 'Senegal',
                crm_id: 'Senegal'
             }, {
                ol_code: 'YU',
                ol_name: 'Serbia',
                crm_id: 'Serbia and Montenegro'
             }, {
                ol_code: 'SC',
                ol_name: 'Seychelles',
                crm_id: 'Seychelles'
             }, {
                ol_code: 'SL',
                ol_name: 'Sierra Leone',
                crm_id: 'Sierra Leone'
             }, {
                ol_code: 'SG', ol_name: 'Singapore',
                crm_id: 'Singapore'
             },
             //{ ol_code: 'XE', ol_name: 'Sint Eustatius', crm_id: ''},
             {
                ol_code: 'SX',
                ol_name: 'Sint Maarten',
                crm_id: 'Sint Maarten'
             }, {
                ol_code: 'SK',
                ol_name: 'Slovak Republic',
                crm_id: 'Slovakia'
             }, {
                ol_code: 'SI',
                ol_name: 'Slovenia',
                crm_id: 'Slovenia'
             }, {
                ol_code: 'SB',
                ol_name: 'Solomon Islands',
                crm_id: 'Solomon Islands'
             }, {
                ol_code: 'SO',
                ol_name: 'Somalia',
                crm_id: 'Somalia'
             }, {
                ol_code: 'ZA',
                ol_name: 'South Africa',
                crm_id: 'South Africa'
             }, {
                ol_code: 'GS',
                ol_name: 'South Georgia and the South Sandwich Islands',
                crm_id: 'South Georgia and the South Sa'
             }, {
                ol_code: 'SS',
                ol_name: 'South Sudan',
                crm_id: 'South Sudan'
             }, {
                ol_code: 'ES',
                ol_name: 'Spain',
                crm_id: 'Spain'
             }, {
                ol_code: 'LK',
                ol_name: 'Sri Lanka',
                crm_id: 'Sri Lanka'
             }, {
                ol_code: 'KN',
                ol_name: 'St. Kitts and Nevis',
                crm_id: 'St. Kitts and Nevis'
             }, {
                ol_code: 'LC',
                ol_name: 'St. Lucia',
                crm_id: 'St. Lucia'
             }, {
                ol_code: 'VC',
                ol_name: 'St. Vincent and the Grenadines',
                crm_id: 'St. Vincent and Grenadines'
             }, {
                ol_code: 'SD',
                ol_name: 'Sudan',
                crm_id: 'Sudan'
             }, {
                ol_code: 'SR',
                ol_name: 'Surinam',
                crm_id: 'Suriname'
             }, {
                ol_code: 'SJ',
                ol_name: 'Svalbard and Jan Mayen Islands',
                crm_id: 'Svalbard and Jan Mayen Islands'
             }, {
                ol_code: 'SZ',
                ol_name: 'Swaziland',
                crm_id: 'Swaziland'
             }, {
                ol_code: 'SE',
                ol_name: 'Sweden',
                crm_id: 'Sweden'
             }, {
                ol_code: 'CH',
                ol_name: 'Switzerland',
                crm_id: 'Switzerland'
             }, {
                ol_code: 'SY',
                ol_name: 'Syria',
                crm_id: 'Syrian Arab Republic'
             }, {
                ol_code: 'TW',
                ol_name: 'Taiwan',
                crm_id: 'Taiwan'
             }, {
                ol_code: 'TJ',
                ol_name: 'Tajikistan',
                crm_id: 'Tajikistan'
             }, {
                ol_code: 'TZ',
                ol_name: 'Tanzania',
                crm_id: 'Tanzania, United Republic of'
             }, {
                ol_code: 'TH',
                ol_name: 'Thailand',
                crm_id: 'Thailand'
             }, {
                ol_code: 'TG',
                ol_name: 'Togo',
                crm_id: 'Togo'
             }, {
                ol_code: 'TK',
                ol_name: 'Tokelau',
                crm_id: 'Tokelau'
             }, {
                ol_code: 'TO',
                ol_name: 'Tonga',
                crm_id: 'Tonga'
             }, {
                ol_code: 'TT',
                ol_name: 'Trinidad and Tobago',
                crm_id: 'Trinidad and Tobago'
             }, {
                ol_code: 'TN',
                ol_name: 'Tunisia',
                crm_id: 'Tunisia'
             }, {
                ol_code: 'TR',
                ol_name: 'Turkey',
                crm_id: 'Turkey'
             }, {
                ol_code: 'TM',
                ol_name: 'Turkmenistan',
                crm_id: 'Turkmenistan'
             }, {
                ol_code: 'TC',
                ol_name: 'Turks and Caicos Islands',
                crm_id: 'Turks and Caicos Islands'
             }, {
                ol_code: 'TV',
                ol_name: 'Tuvalu',
                crm_id: 'Tuvalu'
             }, {
                ol_code: 'VI',
                ol_name: 'U.S. Virgin Islands',
                crm_id: 'Virgin Islands (U.S.)'
             }, {
                ol_code: 'US',
                ol_name: 'United States of America',
                crm_id: 'USA'
             }, {
                ol_code: 'UG',
                ol_name: 'Uganda',
                crm_id: 'Uganda'
             }, {
                ol_code: 'UA',
                ol_name: 'Ukraine',
                crm_id: 'Ukraine'
             }, {
                ol_code: 'AE',
                ol_name: 'United Arab Emirates',
                crm_id: 'United Arab Emirates'
             }, {
                ol_code: 'GB',
                ol_name: 'United Kingdom',
                crm_id: 'United Kingdom'
             }, {
                ol_code: 'UY',
                ol_name: 'Uruguay',
                crm_id: 'Uruguay'
             }, {
                ol_code: 'UZ',
                ol_name: 'Uzbekistan',
                crm_id: 'Uzbekistan'
             }, {
                ol_code: 'VU',
                ol_name: 'Vanuatu',
                crm_id: 'Vanuatu'
             }, {
                ol_code: 'VE',
                ol_name: 'Venezuela',
                crm_id: 'Venezuela'
             }, {
                ol_code: 'VN',
                ol_name: 'Vietnam',
                crm_id: 'Vietnam'
             }, {
                ol_code: 'UM',
                ol_name: 'Wake Island',
                crm_id: 'United States Minor Outlying I'
             }, {
                ol_code: 'WF',
                ol_name: 'Wallis and Futuna',
                crm_id: 'Wallis and Futuna Islands'
             }, {
                ol_code: 'YE',
                ol_name: 'Yemen',
                crm_id: 'Yemen'
             }, {
                ol_code: 'ZM',
                ol_name: 'Zambia',
                crm_id: 'Zambia'
             }, {
                ol_code: 'ZW',
                ol_name: 'Zimbabwe',
                crm_id: 'Zimbabwe'
             }
          ];
          var ol_country_text = item_ex.get_property(address_type + " Address Country");
          var ol_country_text_lc = ol_country_text ? ol_country_text.toLowerCase() : ol_country_text;
          var ol_country_code = item_ex.get_property(address_type + " Address Country Code");
          var result = null;
          helpers.for_each2(mapping, function(el) {
             if (ol_country_code && ol_country_code == el.ol_code || ol_country_text && ol_country_text_lc ==
    el.ol_code.toLowerCase() || ol_country_text_lc == el.ol_name.toLowerCase() ||
    ol_country_text_lc == el.crm_id.toLowerCase()) {
    result = el.crm_id;
             }
          });
          if (!result && !helpers.is_null_or_empty(ol_country_text)) {
    var od_country = ctx.session.find_item("AccountPrimaryBillToCountryPicklist", ctx.session.create_expression("Label", "eq", ol_country_text));
    result = od_country ? od_country.Value : result;
          }
          return result;
       }
       function ol_to_crm_state(item_ex, address_type) {
          var ol_state = item_ex.get_property(address_type + " Address State");
          var result = null;
          if (ol_state) {
             var filter = ctx.session.create_criteria("or");
             filter.add(ctx.session.create_expression("Value", "eq", ol_state));
             filter.add(ctx.session.create_expression("Label", "eq", ol_state));
             var crm_state = ctx.session.find_item("AccountPrimaryBillToStatePicklist", filter);
             result = crm_state ? crm_state.Value : result;
          }
           return result;
          }
       }
    }

    1. Add the following code to the end of the file:

    function get_pl_default_value(ctx, picklist_name, defailt_value_res)

    {
       var filter = ctx.session.create_criteria("and"),default_value = ctx.session.res_string(defailt_value_res);
       filter.add(ctx.session.create_expression("Value", "eq", default_value));
       var pl_item = ctx.session.find_item(picklist_name, filter);
       return pl_item ? default_value : null;
    }

  3. Copy the helpers.js file from the Oracle CRM On Demand Desktop 5.1 package and add it to your customization package.
  4. Update the application_script.js file as follows:
    1. Locate the following code:

    // Control panel
    var cp_pages = [{
       native: false,
       layout: "cp_record_set_page",
       available: true,
       image: "type_image:Book:32",
       caption: application.session.res_string("lbl_record_set_caption"),
       description: application.session.res_string("record_set_tab_description")
    }, {
       native: true,
       layout: "cp_filters_page",
       available: true
    }, {
       native: true,
       layout: "cp_issues_page",
       available: true
    }, {
       native: true,
       layout: "cp_conflicts_page",
       available: true
    }, {
       native: true,
       layout: "cp_duplicates_page",
       available: true
    }, {
       native: true,
       layout: "cp_confirmations_page",
       available: true
    }];

    1. Replace this code with the following:

    // Control panel
    var cp_pages = [{
       native: false,
       layout: "cp_record_set_page",
       available: true,
       image: "type_image:Book:32",
       caption: application.session.res_string("lbl_record_set_caption"),
       description: application.session.res_string("record_set_tab_description")
    }, {
       native: true,
       layout: "cp_filters_page",
       available: true
    }];

    1. Locate the following code:

    if (ol_id != null) od_helpers.open_remote(g_ctx, application.session.open_item(ol_id));
    }
    else {
       g_ctx.data_model.triggers.call(g_ctx, {
          "link_to": type,
          "with_id": oid,
          "operation": "show"

    1. Replace this code with the following:

    if(ol_id != null) od_helpers.open_remote(g_ctx, application.session.open_item(ol_id));
    }
    else {
       g_ctx.data_model.triggers.call(g_ctx_for_cp, {
          "link_to": type,
          "with_id": oid,
          "operation": "show"

    1. Add the following code to the end of the file:

    var g_ctx_for_cp = {custom_data: {}}; // required to open object on dialog from CP
    helpers.merge_contexts(g_ctx, g_ctx_for_cp);

  5. Update the connector_configuration.xml file as follows:
    1. Locate the following code:

    <value>0</value>
    </preset>
    </sliding_dates_presets>
    <features enable_sync_exclusions="true" >
       <bindings>
          <type name="Opportunity">
             <binding>

    1. Replace this code with the following:

    <value>0</value>
    </preset>
    </sliding_dates_presets>
    <features enable_sync_exclusions="true" autorevert_illegal_deletions="true">
       <bindings>
          <type name="Opportunity">
             <binding>

  6. Update the autoresolver.js file as follows:
    1. Locate the following code:

    var remote_set = conflict.remote_values();
    var local_set = conflict.local_values();
    if(local_set != null && local_set.get_field("CanAutoresolveToRemoteDelete") && remote_set == null) conflict.resolve_remote();
    if (remote_set == null || local_set == null) return; // update-delete

    1. Replace this code with the following:

    var remote_set = conflict.remote_values();
    var local_set = conflict.local_values();
    if(local_set != null && local_set.get_field("CanAutoresolveToRemoteDelete") && remote_set == null){
       conflict.resolve_remote();
       return;
    }
    if (remote_set == null || local_set == null) return; // update-delete

  7. Update the dialogs.xml file as follows:
    1. Locate the following code:

    <stack layout="vert" padding="10" spacing="10">
       <cell size="80">
          <stack layout="horz" spacing="5">
             <cell size="200">
                <stack layout="vert" padding="5" spacing="5">
                   <cell size="20">

    1. Replace this code with the following:

    <stack layout="vert" padding="10" spacing="10">
       <cell size="80">
          <stack layout="horz" spacing="5">
             <cell size="300">
                <stack layout="vert" padding="5" spacing="5">
                   <cell size="20">
                      <static id="criteria"

  8. Update the forms_12*.xml file as follows:
    1. Locate the following code:

    </cell>
    </stack>
    </cell>
    <cell size="211">
       <stack layout="horz">
          <cell size="7">
             <stack layout="vert" spacing="1">

    1. Replace this code with the following:

    </cell>
    </stack>
    </cell>
    <cell size="238">
       <stack layout="horz">
          <cell size="7">
             <stack layout="vert" spacing="1">

    1. Locate the following code:

    <control id="lbl_file_as" window_id="0x11a4" tab_order="7"/> </cell>
    <cell size="22">
       <static id="0x20010" tab_order="9"> <text>#lbl_time_zone</text> </static>
    </cell>
    <cell size="22">
       <static id="0x20012" tab_order="11"> <text>#lbl_contact_currency</text> </static>
    </cell>
    <cell size="22">
       <static id="0x20014" tab_order="13"> <text>#lbl_contact_type</text> </static>
    </cell>
    <cell size="22">
       <static id="0x20016" tab_order="15"> <text>#lbl_lead_source</text> </static>
    </cell>

    1. Replace this code with the following:

    <control id="lbl_file_as" window_id="0x11a4" tab_order="7"/> </cell>
    <cell size="22">
       <control id="CompanyNameLbl" window_id="0x11a2" tab_order="9"/> </cell>
    <cell size="22">
       <static id="0x20010" tab_order="11"> <text>#lbl_time_zone</text> </static>
    </cell>
    <cell size="22">
       <static id="0x20012" tab_order="13"> <text>#lbl_contact_currency</text> </static>
    </cell>
    <cell size="22">
       <static id="0x20014" tab_order="15"> <text>#lbl_contact_type</text> </static>
    </cell>
    <cell size="22">
       <static id="0x20016" tab_order="17"> <text>#lbl_lead_source</text> </static>
    </cell>

    1. Locate the following code:

    <control id="cb_file_as" window_id="0x1182" tab_order="8"/> </cell>
    <cell size="22">
       <edit id="TimeZoneName" max_chars="100" tab_order="10">
          <field value="string">TimeZoneName</field>
       </edit>
    </cell>
    <cell size="22">
       <combobox id="CurrencyCode" tab_order="12">
          <items format=":[:(Label):]" value_column="Value" has_null_item="true">
             <source type="auto" name="AccountCurrencyCodePicklist"/>
                <order_by>

    1. Replace this code with the following:

    <control id="cb_file_as" window_id="0x1182" tab_order="8"/> </cell>
    <cell size="22">
       <control id="CompanyName" window_id="0x1181" tab_order="10"/> </cell>
    <cell size="22">
       <edit id="TimeZoneName" max_chars="100" tab_order="12">
          <field value="string">TimeZoneName</field>
       </edit>
    </cell>
    <cell size="22">
       <combobox id="CurrencyCode" tab_order="14">
          <items format=":[:(Label):]" value_column="Value" has_null_item="true">
             <source type="auto" name="AccountCurrencyCodePicklist"/>
             <order_by>

    1. Locate the following code:

    </combobox>
    </cell>
    <cell size="22">
       <combobox id="ContactType" tab_order="14">
          <items format=":[:(Label):]" value_column="Value" has_null_item="true">
             <source type="auto" name="ContactContactTypePicklist"/>
             <order_by>

    1. Replace this code with the following:

    </combobox>
    </cell>
    <cell size="22">
       <combobox id="ContactType" tab_order="16">
          <items format=":[:(Label):]" value_column="Value" has_null_item="true">
             <source type="auto" name="ContactContactTypePicklist"/>
             <order_by>

    1. Locate the following code:

    </combobox>
    </cell>
    <cell size="22">
       <combobox id="LeadSource" tab_order="16">
          <items format=":[:(Label):]" value_column="Value" has_null_item="true">
             <source type="auto" name="ContactLeadSourcePicklist"/>
             <order_by>

    1. Replace this code with the following:

    </combobox>
    </cell>
    <cell size="22">
       <combobox id="LeadSource" tab_order="18">
          <items format=":[:(Label):]" value_column="Value" has_null_item="true">
             <source type="auto" name="ContactLeadSourcePicklist"/>
             <order_by>

    1. Locate the following code:

    <cell size="16">
       <stack layout="horz">
          <cell size="110">
             <static id="0x20050" tab_order="40"> <text>#head_description</text> </static>
          </cell>

    1. Replace this code with the following:

    <cell size="16">
       <stack layout="horz">
          <cell size="110">
             <static id="0x20050" tab_order="240"> <text>#head_description</text> </static>
          </cell>

    1. Locate the following code:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <control id="description" tab_order="41" window_id="0x103f"/> </cell>
       </stack>
    </cell>

    1. Replace this code with the following:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <control id="description" tab_order="241" window_id="0x103f"/>
          </cell>
       </stack>
    </cell>

    1. Locate the following code:

    <cell size="16">
       <stack layout="horz">
          <cell size="70">
             <static id="0x20043" tab_order="42"> <text>#head_activities</text> </static>
          </cell>

    1. Replace this code with the following:

    <cell size="16">
       <stack layout="horz">
          <cell size="70">
             <static id="0x20043" tab_order="242"> <text>#head_activities</text> </static>
          </cell>

    1. Locate the following code:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <data_view id="activities_view" tab_order="43">
             <source type="auto" name="ActivityJointContact"/>
             <view id="activities:form_view-mvg"/>
             <restriction>

    1. Replace this code with the following:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <data_view id="activities_view" tab_order="243">
             <source type="auto" name="ActivityJointContact"/>
             <view id="activities:form_view-mvg"/>
             <restriction>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="140" attraction="far"> <button id="btn_delete_activity" tab_order="46" image="button_image:Remove:16" align="left">
    <text>#lbl_remove_activity</text>
    </button> </cell>
          <cell size="140" attraction="far"> <button id="btn_new_task" tab_order="45" image="type_image:Activity:16" align="left">
    <text>#btn_new_task</text>
    </button> </cell>
          <cell size="140" attraction="far">
    <button id="btn_new_appt" tab_order="44" image="type_image:Activity:16" align="left">
    <text>#btn_new_appointment</text>
    </button>
    </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="140" attraction="far"> <button id="btn_delete_activity" tab_order="246" image="button_image:Remove:16" align="left">
    <text>#lbl_remove_activity</text>
    </button> </cell>
          <cell size="140" attraction="far">
    <button id="btn_new_task" tab_order="245" image="type_image:Activity:16" align="left">
    <text>#btn_new_task</text>
    </button> </cell>
          <cell size="140" attraction="far">
    <button id="btn_new_appt" tab_order="244" image="type_image:Activity:16" align="left">
    <text>#btn_new_appointment</text>
    </button>
    </cell>

    1. Locate the following code:

    <cell size="16">
       <stack layout="horz">
          <cell size="35">
             <static id="0x20052" tab_order="47"> <text>#head_notes</text> </static>
          </cell>

    1. Replace this code with the following:

    <cell size="16">
       <stack layout="horz">
          <cell size="35">
             <static id="0x20052" tab_order="247"> <text>#head_notes</text> </static>
          </cell>

    1. Locate the following code:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <data_view id="notes_view" tab_order="48">
                <source type="auto" name="Contact.Note"/>
                <view id="crm_notes:form_view"/>
                <restriction>

    1. Replace this code with the following:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <data_view id="notes_view" tab_order="248">
                <source type="auto" name="Contact.Note"/>
                <view id="crm_notes:form_view"/>
                <restriction>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="140" attraction="far"> <button id="btn_delete_note" tab_order="50" image="button_image:Remove:16" align="left">
    <text>#lbl_delete_note</text>
    </button></cell>
       <cell size="140" attraction="far"> <button id="btn_add_note" tab_order="49" image="type_image:Note:16" align="left">
    <text>#lbl_new_note</text>
    </button>
    </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="140" attraction="far"> <button id="btn_delete_note" tab_order="250" image="button_image:Remove:16" align="left">
    <text>#lbl_delete_note</text>
    </button> </cell>
       <cell size="140" attraction="far"> <button id="btn_add_note" tab_order="249" image="type_image:Note:16" align="left">
    <text>#lbl_new_note</text>
    </button>
    </cell>

    1. Locate the following code:

    <cell>
       <stack layout="horz">
          <cell size="85">
             <static id="PhoneNumbersCaption" tab_order="17"> <text>#head_phone_pumbers</text> </static>
          </cell>

    1. Replace this code with the following:

    <cell>
       <stack layout="horz">
          <cell size="85">
             <static id="PhoneNumbersCaption" tab_order="19"> <text>#head_phone_pumbers</text> </static>
          </cell>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_phone1" tab_order="18" window_id="0x1113"/> </cell>
          <cell size="23">
             <control id="dd_phone1" tab_order="19" window_id="0x110a"/> </cell>
       </stack>
    </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_phone1" tab_order="20" window_id="0x1113"/> </cell>
          <cell size="23">
             <control id="dd_phone1" tab_order="21" window_id="0x110a"/> </cell>
       </stack>
    </cell>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_phone4" tab_order="21" window_id="0x1116"/> </cell>
          <cell size="23">
             <control id="dd_phone4" tab_order="22" window_id="0x110d"/> </cell>
       </stack>
    </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_phone4" tab_order="23" window_id="0x1116"/></cell>
          <cell size="23">
             <control id="dd_phone4" tab_order="24" window_id="0x110d"/> </cell>
       </stack>
    </cell>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_phone3" tab_order="24" window_id="0x1115"/> </cell>
          <cell size="23">
             <control id="dd_phone3" tab_order="25" window_id="0x110c"/> </cell>
       </stack>
    </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_phone3" tab_order="26" window_id="0x1115"/> </cell>
          <cell size="23">
             <control id="dd_phone3" tab_order="27" window_id="0x110c"/> </cell>
       </stack>
    </cell>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_email" tab_order="27" window_id="0x1101"/> </cell>
          <!--<cell size="5" attraction="far"></cell>-->
          <cell size="23" attraction="far">
             <control id="dd_email" tab_order="28" window_id="0x111b"/> </cell>
       </stack>
    </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz">
          <cell size="138">
             <control id="btn_email" tab_order="29" window_id="0x1101"/> </cell>
          <!--<cell size="5" attraction="far"></cell>-->
          <cell size="23" attraction="far">
             <control id="dd_email" tab_order="30" window_id="0x111b"/> </cell>
       </stack>
    </cell>

    1. Locate the following code:

    <cell>
       <stack spacing="5" layout="vert">
          <cell size="22">
             <control id="edit_phone1" tab_order="20" window_id="0x1001"/> </cell>
          <cell size="22">
             <control id="edit_phone4" tab_order="23" window_id="0x1004"/> </cell>
          <cell size="22">
             <control id="edit_phone3" tab_order="26" window_id="0x1003"/> </cell>
          <cell size="22">
             <control id="edit_email" tab_order="29" window_id="0x1018"/> </cell>
          <cell size="22">
             <checkbox id="0x20015" tab_order="30">
       <field>NeverEmail</field> <text>#lbl_never_email</text> </checkbox>

    1. Replace this code with the following:

    <cell>
       <stack spacing="5" layout="vert">
          <cell size="22">
             <control id="edit_phone1" tab_order="22" window_id="0x1001"/></cell>
          <cell size="22">
             <control id="edit_phone4" tab_order="25" window_id="0x1004"/> </cell>
          <cell size="22">
             <control id="edit_phone3" tab_order="28" window_id="0x1003"/> </cell>
          <cell size="22">
             <control id="edit_email" tab_order="31" window_id="0x1018"/> </cell>
          <cell size="22">
             <checkbox id="0x20015" tab_order="32">
          <field>NeverEmail</field> <text>#lbl_never_email</text> </checkbox>

    1. Locate the following code:

    <cell size="161">
       <stack spacing="5" layout="vert">
          <cell size="22"> <button id="btn_account_address" tab_order="31">
    <text>#btn_account_address_caption</text>
    </button> </cell>
          <cell size="22"> <button id="btn_contact_address" tab_order="33">
    <text>#btn_contact_address_caption</text>
    </button> </cell>

    1. Replace this code with the following:

    <cell size="161">
       <stack spacing="5" layout="vert">
          <cell size="22"> <button id="btn_account_address" tab_order="231">
    <text>#btn_account_address_caption</text>
    </button> </cell>
          <cell size="22"> <button id="btn_contact_address" tab_order="233">
    <text>#btn_contact_address_caption</text>
    </button> </cell>

    1. Locate the following code:

    <cell>
       <stack spacing="5" layout="vert">
          <cell size="22">

             <scriptable_edit id="BusinessAddressString" tab_order="32">
                <field value="string"/> </scriptable_edit>
          </cell>

    1. Replace this code with the following:

    <cell>
       <stack spacing="5" layout="vert">
          <cell size="22">
             <scriptable_edit id="BusinessAddressString" tab_order="232">
                <field value="string"/> </scriptable_edit>
          </cell>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz">
          <cell>
             <scriptable_edit id="PrimaryAddrString" tab_order="34"> <field value="string"/>
             </scriptable_edit>
          </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz">
          <cell>
             <scriptable_edit id="PrimaryAddrString" tab_order="234"> <field value="string"/>
             </scriptable_edit>
          </cell>

    1. Locate the following code:

    <cell size="161">
       <stack spacing="5" layout="vert">
          <cell size="22">
             <static id="0x20008" tab_order="35"> <text>#lbl_contact_team</text> </static>
          </cell>

    1. Replace this code with the following:

    <cell size="161">
       <stack spacing="5" layout="vert">
          <cell size="22">
             <static id="0x20008" tab_order="235"> <text>#lbl_contact_team</text> </static>
          </cell>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz">
          <cell>
             <autocomplete_list id="TeamToContact" tab_order="36">
                <items format=":[:{UserId@User/(:[:(FirstName):])}:] :[:{UserId@User/(:[:(LastName):])}:]">
                   <source type="auto" name="Contact.User.Association"/>
                   <restriction>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz">
          <cell>
             <autocomplete_list id="TeamToContact" tab_order="236">
                <items format=":[:{UserId@User/(:[:(FirstName):])}:] :[:{UserId@User/(:[:(LastName):])}:]">
                   <source type="auto" name="Contact.User.Association"/>
                   <restriction>

    1. Locate the following code:

    </cell>
    <cell size="5"/>
    <cell size="22">
    <button id="btn_mvgContactTeam" tab_order="37">
    <text>...</text>
    </button>
    </cell>

    1. Replace this code with the following:

    </cell>
    <cell size="5"/>
    <cell size="22">
    <button id="btn_mvgContactTeam" tab_order="237">
    <text>...</text>
    </button>
    </cell>

    1. Locate the following code:

    <cell size="22">
       <stack layout="horz">
          <cell>
             <scriptable_edit id="book_of_business" tab_order="38">
                <field value="string"/>
             </scriptable_edit>
          </cell>
       <cell size="5"/>
       <cell size="22"> <button id="btn_book_select" tab_order="39">
    <text>#btn_book_select</text>
    </button> </cell>

    1. Replace this code with the following:

    <cell size="22">
       <stack layout="horz">
          <cell>
             <scriptable_edit id="book_of_business" tab_order="238">
                <field value="string"/>
             </scriptable_edit>
          </cell>
          <cell size="5"/>
          <cell size="22"> <button id="btn_book_select" tab_order="239">
    <text>#btn_book_select</text>
    </button> </cell>

    1. Locate the following code:

    <cell size="16">
       <stack layout="horz">
          <cell size="95">
             <static id="0x20046" tab_order="51"> <text>#head_opportunities</text> </static>
             </cell>

    1. Replace this code with the following:

    <cell size="16">
       <stack layout="horz">
          <cell size="95">
             <static id="0x20046" tab_order="251"> <text>#head_opportunities</text> </static>
          </cell>

    1. Locate the following code:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <data_view id="opportunities_view" tab_order="52">
                <source type="auto" name="OpportunityJointContact"/>
                <view id="opportunities:mvg"/>
                <restriction>

    1. Replace this code with the following:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <data_view id="opportunities_view" tab_order="252">
                <source type="auto" name="OpportunityJointContact"/>
                <view id="opportunities:mvg"/>
                <restriction>

    1. Locate the following code:

    <cell size="22" attraction="far">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="160" attraction="far"> <button id="btn_delete_opportunity" tab_order="54" image="button_image:Remove:16" align="left">
    <text>#lbl_remove_opportunity</text>
    </button> </cell>
          <cell size="160" attraction="far"> <button id="btn_mvgOpportunity" tab_order="53" image="type_image:Opportunity:16" align="left">
    <text>#lbl_new_opportunity</text>
    </button> </cell>

    1. Replace this code with the following:

    <cell size="22" attraction="far">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="160" attraction="far"> <button id="btn_delete_opportunity" tab_order="254" image="button_image:Remove:16" align="left">
    <text>#lbl_remove_opportunity</text>
    </button> </cell>
          <cell size="160" attraction="far"> <button id="btn_mvgOpportunity" tab_order="253" image="type_image:Opportunity:16" align="left">
    <text>#lbl_new_opportunity</text>
    </button> </cell>

    1. Locate the following code:

    <cell size="16">
       <stack layout="horz">
          <cell size="110">
             <static id="head_leads" tab_order="55"> <text>#head_leads</text> </static>
          </cell>

    1. Replace this code with the following:

    <cell size="16">
       <stack layout="horz">
          <cell size="110">
             <static id="head_leads" tab_order="255"> <text>#head_leads</text> </static>
          </cell>

    1. Locate the following code:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
             <data_view id="leads_view" tab_order="56">
             <source type="auto" name="Lead"/>
             <view id="leads:form_view"/>
             <restriction>

    1. Replace this code with the following:

    <cell>
       <stack layout="horz" padding="5">
          <cell>
          <data_view id="leads_view" tab_order="256">
          <source type="auto" name="Lead"/>
          <view id="leads:form_view"/>
          <restriction>

    1. Locate the following code:

    <cell size="21" attraction="far">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="160" attraction="far"> <button id="btn_delete_lead" tab_order="58" image="button_image:Remove:16" align="left">
    <text>#lbl_delete_lead</text>
    </button> </cell>
          <cell size="160" attraction="far"> <button id="btn_new_lead" tab_order="57" image="type_image:Lead:16" align="left">
    <text>#lbl_new_lead</text>
    </button> </cell>

    1. Replace this code with the following:

    <cell size="21" attraction="far">
       <stack layout="horz" spacing="5" padding="5">
          <cell size="160" attraction="far"> <button id="btn_delete_lead" tab_order="258" image="button_image:Remove:16" align="left">
    <text>#lbl_delete_lead</text>
    </button> </cell>
          <cell size="160" attraction="far"> <button id="btn_new_lead" tab_order="257" image="type_image:Lead:16" align="left">
    <text>#lbl_new_lead</text>
    </button> </cell>

    1. Locate the following code:

    <control id="lbl Job title" window_id="0x11a3"/> </cell>
    <cell>
       <control id="lbl Company" window_id="0x11a2"/> </cell>
    <cell>
       <control id="edit Company" window_id="0x1181"/> </cell>
    <cell>
       <control id="Image" window_id="0x1108"/> </cell>
    <cell>

    1. Replace this code with the following:

    <control id="lbl Job title" window_id="0x11a3"/> </cell>
    <cell>
       <control id="Image" window_id="0x1108"/> </cell>
    <cell>

    1. Locate the following code:

    <stack layout="vert" padding="0" spacing="0">
       <cell>
          <combobox id="priority" tab_order="9">
             <items format=":[:(Label):]" value_column="Value" has_null_item="false">
                <source type="auto" name="ActivityPriorityPicklist"/>
                <order_by>
                  <order ascend="true">SortOrder</order>

    1. Replace this code with the following:

    <stack layout="vert" padding="0" spacing="0">
       <cell>
          <combobox id="priority" tab_order="9">
             <items format=":[:(Label):]" value_column="Value" has_null_item="true">
                <source type="auto" name="ActivityPriorityPicklist"/>
                <order_by>
                   <order ascend="true">SortOrder</order>

    1. Locate the following code:

    </cell>
    <cell size="21">
       <combobox id="Type" tab_order="25">
          <items format=":[:(Label):]" value_column="Value" has_null_item="false">
             <source type="auto" name="ActivityTypePicklist"/>
             <order_by>
                <order ascend="true">SortOrder</order>

    1. Replace this code with the following:

    </cell>
       <cell size="21">
          <combobox id="Type" tab_order="25">
             <items format=":[:(Label):]" value_column="Value" has_null_item="true">
                <source type="auto" name="ActivityTypePicklist"/>
                   <order_by>
                         <order ascend="true">SortOrder</order>

    1. Locate the following code:

    </cell>
       <cell size="21">
          <combobox id="Type" tab_order="25">
             <items format=":[:(Label):]" value_column="Value" has_null_item="false">
                <source type="auto" name="ActivityTypePicklist"/>
                   <order_by>
                      <order ascend="true">SortOrder</order>

    1. Replace this code with the following:

    </cell>
       <cell size="21">
          <combobox id="Type" tab_order="25">
             <items format=":[:(Label):]" value_column="Value" has_null_item="true">
                <source type="auto" name="ActivityTypePicklist"/>
                   <order_by>
                      <order ascend="true">SortOrder</order>

  9. Update the info.xml as follows:
    1. Locate the following code:

    <package_info xmlns="http://invisiblecrm.com/platform/info">
       <product>
          <name>Oracle CRM On Demand Desktop</name>
          <version>5.0.0.7</version>
          <server_version>21</server_version>
       </product>
       <compatibility preferred_product="5.0.0.7">
          <products>5.0.0.1-5.0.0.99</products>
          <schemas>5.0.0.1-5.0.0.99</schemas>
       </compatibility></package_info>

    1. Replace this code with the following:

    <package_info xmlns="http://invisiblecrm.com/platform/info">
       <product>
          <name>Oracle CRM On Demand Desktop</name>
          <version>5.1.0.13</version>
          <server_version>21</server_version>
       </product>
       <compatibility preferred_product="5.1.0.13">
          <products>5.1.0.1-5.1.0.99</products>
          <schemas>5.1.0.1-5.1.0.99</schemas>
       </compatibility>
    </package_info>

    NOTE:  You must also perform this update to the forms_12.xml file and any localized files, such as forms_12.ja_JP.xml, forms_12.ko_KR.xml, forms_12.zh_CN.xml, forms_12.zh_HK.xml, forms_12.zh_MO.xml, forms_12.zh_SG.xml, and forms_12.zh_TW.xml.

  10. Update the od_basic_mapping.xml as follows:
    1. Locate the following code:

    </writer>
    </field>
    <field id="AccountId" ver="3">
       <reader>
          <mapi_user>
             <user_field id="od AccountId" ol_field_type="1"></user_field>

    1. Replace this code with the following:

    </writer>
    </field>
    <field id="AccountId" ver="4">
       <reader>
          <mapi_user>
             <user_field id="od AccountId" ol_field_type="1"></user_field>

    1. Locate the following code:

    </outlook_user>
    <link_fields>
       <field from="AccountName" to="AccountName"></field>
       <field from="AccountName" to="SuppressFileAs"></field>
       <field from="Location" to="AccountLocation"></field>
       <field from="PrimaryBillToCountry" to="PrimaryCountry"></field>
       <field from="PrimaryBillToStreetAddress" to="PrimaryAddress"></field>

    1. Replace this code with the following:

    </outlook_user>
    <link_fields>
       <field from="AccountName" to="AccountName"></field>
       <field from="Location" to="AccountLocation"></field>
       <field from="PrimaryBillToCountry" to="PrimaryCountry"></field>
       <field from="PrimaryBillToStreetAddress" to="PrimaryAddress"></field>

    1. Locate the following code:

    </outlook_std>
    </writer>
    </field>
    <field id="Business Address City">
       <reader>
       <outlook_std>

    1. Replace this code with the following:

    </outlook_std>
    </writer>
    </field>
    <field id="Home Address Country Code">
       <reader>
          <mapi_named>
             <name_id id="0x80DA" ps="{00062004-0000-0000-C000-000000000046}"></name_id>
             <convertor>
                <string/> </convertor>
          </mapi_named>
       </reader>
    </field>
    <field id="Business Address City">
    <reader>
    <outlook_std>

    1. Locate the following code:

    </outlook_std>
    </writer>
    </field>
    <!-- Service fields-->
    <field id="Address Country Code">

    1. Replace this code with the following:

    </outlook_std>
    </writer>
    </field>
    <field id="Business Address Country Code">
       <reader>
          <mapi_named>
                <name_id id="0x80DB" ps="{00062004-0000-0000-C000-000000000046}"></name_id>
                <convertor>
                   <string/></convertor>
          </mapi_named>
       </reader>
    </field>
    <field id="Other Address City" ver="2">
       <reader>
          <mapi_std>
             <mapi_tag id="0x3A5F0000"></mapi_tag>
             <convertor>
                <string/></convertor>
          </mapi_std>
       </reader>
       <writer>
          <mapi_std>
             <mapi_tag id="0x3A5F0000"></mapi_tag>
             <convertor>
                <string/> </convertor>
          </mapi_std>
       </writer>
    </field>
    <field id="Other Address Country">
       <reader>
          <mapi_std>
             <mapi_tag id="0x3A600000"></mapi_tag>
             <convertor>
                <string/> </convertor>
          </mapi_std>
       </reader>
       <writer>
          <outlook_std>
             <outlook_field id="OtherAddressCountry"></outlook_field>
             <convertor>
                <string/> </convertor>
          </outlook_std>
       </writer>
    </field>
    <field id="Other Address Postal Code">
       <reader>
          <mapi_std>
             <mapi_tag id="0x3A610000"></mapi_tag>
             <convertor>
                <string/> </convertor>
          </mapi_std>
       </reader>
       <writer>
          <outlook_std>
             <outlook_field id="OtherAddressPostalCode"></outlook_field>
             <convertor>
                <string/> </convertor>
          </outlook_std>
       </writer>
    </field>
    <field id="Other Address State">
       <reader>
          <mapi_std>
             <mapi_tag id="0x3A620000"></mapi_tag>
             <convertor>
                <string/> </convertor>
          </mapi_std>
       </reader>
       <writer>
          <outlook_std>
             <outlook_field id="OtherAddressState"></outlook_field>
             <convertor>
                <string/> </convertor>
          </outlook_std>
       </writer>
    </field>
    <field id="Other Address Street">
       <reader>
          <mapi_std>
             <mapi_tag id="0x3A630000"></mapi_tag>
             <convertor>
                <string/> </convertor>
          </mapi_std>
       </reader>
       <writer>
          <outlook_std>
             <outlook_field id="OtherAddressStreet"></outlook_field>
             <convertor>
                <multiline_string/> </convertor>
             </outlook_std>
       </writer>
    </field>
    <field id="Other Address Country Code">
       <reader>
          <mapi_named>
             <name_id id="0x80DC" ps="{00062004-0000-0000-C000-000000000046}"></name_id>
             <convertor>
                <string/> </convertor>
          </mapi_named>
       </reader>
    </field>
    <!-- Service fields-->
    <field id="Address Country Code">

  11. Update the od_meta_info.xml as follows:
    1. Locate the following code:

    <field Name="LastAssignmentSubmissionDate" Label="Last Assignment Submission Date" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Last Assignment Submission Date" />
    <field Name="LastCallDate" Label="Last Call Date" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Last Call Date" />
    <field Name="Location" Label="Location" DataType="DTYPE_TEXT" IsFilterable='yes' />
    <field Name="MainFax" Label="Main Fax" DataType="DTYPE_TEXT" IsFilterable='no' CRMName="Main Fax Number" />
    <field Name="MainPhone" Label="Main Phone" DataType="DTYPE_TEXT" IsFilterable='yes' CRMName="Main Phone Number" />
    <field Name="ManagedPartnerFlag" Label="Managed Partner Flag" DataType="DTYPE_BOOL" IsFilterable='no' IsHidden="yes" CRMName="Managed Partner Flag" />
    <field Name="MarketPotential" Label="Market Potential" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Market Potential" />
    <field Name="MarketSegment" Label="Market Segment" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Primary Market" />

    1. Replace this code with the following:

    <field Name="LastAssignmentSubmissionDate" Label="Last Assignment Submission Date" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Last Assignment Submission Date" />
    <field Name="LastCallDate" Label="Last Call Date" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Last Call Date" />
    <field Name="Location" Label="Location" DataType="DTYPE_TEXT" IsFilterable='yes' />
    <field Name="MainFax" Label="Main Fax" DataType="DTYPE_PHONE" IsFilterable='no' CRMName="Main Fax Number" />
    <field Name="MainPhone" Label="Main Phone" DataType="DTYPE_PHONE" IsFilterable='yes' CRMName="Main Phone Number" />
    <field Name="ManagedPartnerFlag" Label="Managed Partner Flag" DataType="DTYPE_BOOL" IsFilterable='no' IsHidden="yes" CRMName="Managed Partner Flag" />
    <field Name="MarketPotential" Label="Market Potential" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Market Potential" />
    <field Name="MarketSegment" Label="Market Segment" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="Primary Market" />

    1. Locate the following code:

    <field Name="BookName" Label="BookName" DataType="DTYPE_TEXT" CRMName="Primary Position Name" >
    <suppress_on Upstream="true" />
    </field>
    <field Name="CellularPhone" Label="Cellular Phone" DataType="DTYPE_TEXT" CRMName="Cellular Phone #" />
    <field Name="ClientStatus" Label="ClientStatus" DataType="DTYPE_TEXT" IsFilterable="true" HasPicklist="true">
    <suppress_on Upstream="true" Get="true" />
    </field>

    1. Replace this code with the following:

    <field Name="BookName" Label="BookName" DataType="DTYPE_TEXT" CRMName="Primary Position Name" >
    <suppress_on Upstream="true" />
    </field>
    <field Name="CellularPhone" Label="Cellular Phone" DataType="DTYPE_PHONE" CRMName="Cellular Phone #" />
    <field Name="ClientStatus" Label="ClientStatus" DataType="DTYPE_TEXT" IsFilterable="true" HasPicklist="true">
    <suppress_on Upstream="true" Get="true" />
    </field>

    1. Locate the following code:

    <field Name="Department" Label="Department" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" />
    <field Name="Description" Label="Description" DataType="DTYPE_TEXT" CRMName="Comment" />
    <field Name="Gender" Label="Gender" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="M/F" />
    <field Name="HomePhone" Label="Home Phone" DataType="DTYPE_TEXT" IsFilterable='no' CRMName="Home Phone #" />
    <field Name="Id" Label="Id" DataType="DTYPE_ID" IsPrimaryKey="yes" IsFilterable='no' />
    <field Name="JobTitle" Label="Job Title" DataType="DTYPE_TEXT" CRMName="Job Title" />
    <field Name="LeadSource" Label="Lead Source" DataType="DTYPE_TEXT" HasPicklist="yes" IsFilterable='no' CRMName="Lead Source" />

    1. Replace this code with the following:

    <field Name="Department" Label="Department" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" />
    <field Name="Description" Label="Description" DataType="DTYPE_TEXT" CRMName="Comment" />
    <field Name="Gender" Label="Gender" DataType="DTYPE_TEXT" IsFilterable='no' IsHidden="yes" CRMName="M/F" />
    <field Name="HomePhone" Label="Home Phone" DataType="DTYPE_PHONE" IsFilterable='no' CRMName="Home Phone #" />
    <field Name="Id" Label="Id" DataType="DTYPE_ID" IsPrimaryKey="yes" IsFilterable='no' />
    <field Name="JobTitle" Label="Job Title" DataType="DTYPE_TEXT" CRMName="Job Title" />
    <field Name="LeadSource" Label="Lead Source" DataType="DTYPE_TEXT" HasPicklist="yes" IsFilterable='no' CRMName="Lead Source" />

    1. Locate the following code:

    <field Name="Territory" Label="Territory" DataType="DTYPE_TEXT" IsFilterable='no' CRMName="Occam Territory" />
    <field Name="TimeZoneName" Label="Time Zone Name" DataType="DTYPE_TEXT" IsFilterable='no' CRMName="Time Zone Name - Translation" />
    <field Name="TimeZoneId" Label="Time Zone Id" DataType="DTYPE_ID" IsFilterable='no' IsHidden="yes" />
    <field Name="WorkFax" Label="Work Fax" DataType="DTYPE_TEXT" IsFilterable='no' CRMName="Fax Phone #" />
    <field Name="WorkPhone" Label="Work Phone" DataType="DTYPE_TEXT" CRMName="Work Phone #" />
    </object>
    <object TypeId="Contact.Address" Label="Address" LabelPlural="Address" ViewMode="Sales Rep" IntObjName="Contact" XmlElemName="Address" XmlCollectionElemName="ListOfAddress" PrimFlgFldname="IsPrimary" EnableGetIDsBatching="yes" >

    1. Replace this code with the following:

    <field Name="Territory" Label="Territory" DataType="DTYPE_TEXT" IsFilterable='no' CRMName="Occam Territory" />
    <field Name="TimeZoneName" Label="Time Zone Name" DataType="DTYPE_TEXT" IsFilterable='no' CRMName="Time Zone Name - Translation" />
    <field Name="TimeZoneId" Label="Time Zone Id" DataType="DTYPE_ID" IsFilterable='no' IsHidden="yes" />
    <field Name="WorkFax" Label="Work Fax" DataType="DTYPE_PHONE" IsFilterable='no' CRMName="Fax Phone #" />
    <field Name="WorkPhone" Label="Work Phone" DataType="DTYPE_PHONE" CRMName="Work Phone #" />
    </object>
    <object TypeId="Contact.Address" Label="Address" LabelPlural="Address" ViewMode="Sales Rep" IntObjName="Contact" XmlElemName="Address" XmlCollectionElemName="ListOfAddress" PrimFlgFldname="IsPrimary" EnableGetIDsBatching="yes" >

    1. Locate the following code:

    <field Name='CampaignExternalSystemId' Label='Campaign External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Campaign External Id" />
    <field Name='CampaignId' Label='Campaign Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Campaign Id" />
    <field Name='CampaignIntegrationId' Label='Campaign Integration Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Campaign Integration Id" />
    <field Name='CellularPhone' Label='Cellular Phone' DataType='DTYPE_TEXT' CRMName="Cellular Phone #" />
    <field Name='City' Label='City' DataType='DTYPE_TEXT' />
    <field Name='Company' Label='Company' DataType='DTYPE_TEXT' IsFilterable='no' CRMName="Company Name" />
    <field Name='ContactExternalSystemId' Label='Contact External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Contact External Id" />

    1. Replace this code with the following:

    <field Name='CampaignExternalSystemId' Label='Campaign External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Campaign External Id" />
    <field Name='CampaignId' Label='Campaign Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Campaign Id" />
    <field Name='CampaignIntegrationId' Label='Campaign Integration Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Campaign Integration Id" />
    <field Name='CellularPhone' Label='Cellular Phone' DataType='DTYPE_PHONE' CRMName="Cellular Phone #" />
    <field Name='City' Label='City' DataType='DTYPE_TEXT' />
    <field Name='Company' Label='Company' DataType='DTYPE_TEXT' IsFilterable='no' CRMName="Company Name" />
    <field Name='ContactExternalSystemId' Label='Contact External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="Contact External Id" />

    1. Locate the following code:

    <field Name='Description' Label='Description' DataType='DTYPE_TEXT' IsFilterable='no' />
    <field Name='EstimatedCloseDate' Label='Estimated Close Date' DataType='DTYPE_UTCDATETIME' CRMName="Estimated Close Date" />
    <field Name='ExternalSystemId' Label='External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="External System Id" />
    <field Name='FaxPhone' Label='Fax Phone' DataType='DTYPE_TEXT' IsFilterable='no' CRMName="Fax Phone #" />
    <field Name='FinancialAccountBalance' Label='Financial Account Balance' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='FinancialAccountCurrencyCode' Label='Financial Account Currency Code' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='FinancialAccountExchangeDate' Label='Financial Account Exchange Date' DataType='DTYPE_DATE' IsFilterable='no' IsHidden="yes" />

    1. Replace this code with the following:

    <field Name='Description' Label='Description' DataType='DTYPE_TEXT' IsFilterable='no' />
    <field Name='EstimatedCloseDate' Label='Estimated Close Date' DataType='DTYPE_UTCDATETIME' CRMName="Estimated Close Date" />
    <field Name='ExternalSystemId' Label='External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" CRMName="External System Id" />
    <field Name='FaxPhone' Label='Fax Phone' DataType='DTYPE_PHONE' IsFilterable='no' CRMName="Fax Phone #" />
    <field Name='FinancialAccountBalance' Label='Financial Account Balance' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='FinancialAccountCurrencyCode' Label='Financial Account Currency Code' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='FinancialAccountExchangeDate' Label='Financial Account Exchange Date' DataType='DTYPE_DATE' IsFilterable='no' IsHidden="yes" />

    1. Locate the following code:

    <field Name='PolicyTotalPremium' Label='Policy Total Premium' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PolicyType' Label='Policy Type' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PotentialRevenue' Label='Potential Revenue' DataType='DTYPE_NUMBER' IsFilterable='no' CRMName="Potential Revenue" />
    <field Name='PrimaryPhone' Label='Primary Phone' DataType='DTYPE_TEXT' CRMName="Work Phone #" />
    <field Name='PrincipalPartnerChannelAccountManagerAlias' Label='PrincipalPartnerChannelAccountManagerAlias' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PrincipalPartnerExternalSystemId' Label='Principal Partner External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PrincipalPartnerId' Label='Principal Partner Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />

    1. Replace this code with the following:

    <field Name='PolicyTotalPremium' Label='Policy Total Premium' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PolicyType' Label='Policy Type' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PotentialRevenue' Label='Potential Revenue' DataType='DTYPE_NUMBER' IsFilterable='no' CRMName="Potential Revenue" />
    <field Name='PrimaryPhone' Label='Primary Phone' DataType='DTYPE_PHONE' CRMName="Work Phone #" />
    <field Name='PrincipalPartnerChannelAccountManagerAlias' Label='PrincipalPartnerChannelAccountManagerAlias' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PrincipalPartnerExternalSystemId' Label='Principal Partner External System Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />
    <field Name='PrincipalPartnerId' Label='Principal Partner Id' DataType='DTYPE_TEXT' IsFilterable='no' IsHidden="yes" />

  12. Update the security_utils.js file as follows:
    1. Locate the following code:

    }
    options = helpers.merge_contexts(default_options, options);
    var MODIFICATION_BIT = 0x00000001;
    var DELETION_BIT = 0x00000001;
    var SYNC_BIT = 0x20000000;
    var PINNED_BIT = 0x08000000;
    options.temp_cache = {};

    1. Replace this code with the following:

    }
    options = helpers.merge_contexts(default_options, options);
    var PINNED_BIT = 0x08000000;
    options.temp_cache = {};

    1. Locate the following code:

    this.is_synced = function(){
       if (options.temp_cache.is_sync_value == null)
    options.temp_cache.is_sync_value = ((this.object_state() & SYNC_BIT) != 0);
       return options.temp_cache.is_sync_value;
    }
    this.is_pinned = function() {
       if (options.temp_cache.is_pinned_value == null)
    options.temp_cache.is_pinned_value = ((this.object_state() & PINNED_BIT) != 0);
       return options.temp_cache.is_pinned_value;
    }
    this.current_user_is_primary = function()
    {

    1. Replace this code with the following:

    this.is_synced = function() {
       if (options.temp_cache.is_sync_value == null)
    options.temp_cache.is_sync_value = ((this.object_state() & helpers.object_states.synchronized) === helpers.object_states.synchronized);
       return options.temp_cache.is_sync_value;
    }

    this.is_pinned = function() {
       if (options.temp_cache.is_pinned_value == null)
    options.temp_cache.is_pinned_value = ((this.object_state() & PINNED_BIT) === PINNED_BIT);
       return options.temp_cache.is_pinned_value;
    }

    this.is_indirectly_visible = function()
    {
       if (options.temp_cache.is_indirectly_visible_value == null)
    options.temp_cache.is_indirectly_visible_value = ((this.object_state() & helpers.object_states.indirectly_visible) === helpers.object_states.indirectly_visible);
       return options.temp_cache.is_indirectly_visible_value;
    }

    this.current_user_is_primary = function()
    {

    1. Locate the following code:

    this.delete_access = function() {
       var can_delete = this.current_user_is_primary() && this.ownership_mode() != "book" || !this.is_synced();
       var value = new result_struct(can_delete);
       options.delete_filter(ctx, item_ex, value);
       return value.get_result();

    1. Replace this code with the following:

    this.delete_access = function(){
       var can_delete = !this.is_indirectly_visible() && ( this.current_user_is_primary() && this.ownership_mode() != "book" || !this.is_synced() );
       var value = new result_struct(can_delete);
       options.delete_filter(ctx, item_ex, value);
       return value.get_result();

    1. Locate the following code:

    this.modify_access = function() {
       var value = new result_struct(this.ownership_mode() != "owner" || this.current_user_is_in_team() || item_ex.get_type() == "Opportunity.ProductRevenue" || this.delete_access());
       options.modify_filter(ctx, item_ex, value);
       return value.get_result();
    }

    1. Replace this code with the following:

    this.modify_access = function() {
       var can_modify = !this.is_indirectly_visible() && ( this.ownership_mode() != "owner" || this.current_user_is_in_team() || item_ex.get_type() == "Opportunity.ProductRevenue" || this.delete_access() );
       var value = new result_struct(can_modify);
       options.modify_filter(ctx, item_ex, value);
       return value.get_result();
    }

    1. Locate the following code:

    var employee_options = {
       "link_to": "User",
       "get_current": function(ctx) { return helpers.get_current_user_id(ctx.session);
       }
    }
    function item_unshared(ctx, item_ex, value)

    1. Replace this code with the following:

       var employee_options = {
       "link_to": "User",
       "get_current": function(ctx) { return od_helpers.get_current_user_id(ctx.session);
       }
    }
    function item_unshared(ctx, item_ex, value)

    1. Locate the following code:

    base_security.call(this, ctx, item_ex, helpers.merge_contexts(employee_options, {}));
    this.delete_access = function() {
       var can_delete = helpers.ids_equal(ctx.session, item_ex.get_property("OwnerId"), helpers.get_current_user_id(ctx.session)) && this.ownership_mode() != "book" || !this.is_synced();
       return item_ex.get_id() == null || can_delete;
    }
    this.modify_access = function() {
       return this.ownership_mode() != "owner" || this.delete_access() || helpers.ids_equal(ctx.session, item_ex.get_property("SalesRepId"), helpers.get_current_user_id(ctx.session));
    }
    this.link_access = function(link) {

    1. Replace this code with the following:

    base_security.call(this, ctx, item_ex, helpers.merge_contexts(employee_options, {}));
    this.delete_access = function() {
       var can_delete = !this.is_indirectly_visible() && (helpers.ids_equal(ctx.session, item_ex.get_property("OwnerId"), od_helpers.get_current_user_id(ctx.session)) && this.ownership_mode() != "book" || ! this.is_synced());
       return item_ex.get_id() == null || can_delete;
    }
    this.modify_access = function() {
       return !this.is_indirectly_visible() && (this.ownership_mode() != "owner" || this.delete_access() ||
    helpers.ids_equal(ctx.session, item_ex.get_property("SalesRepId"), od_helpers.get_current_user_id(ctx.session)));
    }
    this.link_access = function(link) {

  13. Update the package_res.xml file as follows:
    1. Locate the following code:

    <str key="msg_book_must_be_custom">Record must be associated to a custom book.</str>
    <str key="msg_owner_must_be_empty">Owner must be empty.</str>
    <str key="inaccessible_book">&lt;Inaccessible book&gt;</str>
    <str key="lbl_include_book_subitems">Include Sub-Items</str>
    <str key="book_selector_top_node">$obj_book_plural$</str>
    <str key="msg_ownership_log" skip_translation="yes">Ownership mode of {0} is {1}</str>
    <str key="msg_Specifying_both_Book_and_Owner_is_prohibited">Specifying both Book and Owner is prohibited.</str>

    1. Replace this code with the following:

    <str key="msg_book_must_be_custom">Record must be associated to a custom book.</str>
    <str key="msg_owner_must_be_empty">Owner must be empty.</str>
    <str key="inaccessible_book">&lt;Inaccessible book&gt;</str>
    <str key="lbl_include_book_subitems">Include Sub-Books</str>
    <str key="book_selector_top_node">$obj_book_plural$</str>
    <str key="msg_ownership_log" skip_translation="yes">Ownership mode of {0} is {1}</str>
    <str key="msg_Specifying_both_Book_and_Owner_is_prohibited">Specifying both Book and Owner is prohibited.</str>

    1. Locate the following code:

    <str key="msg_book_access_denied">You don't have access rights to Books of Business, used for synchronization or the Books are no longer valid. Please check your Books of Business configuration settings in the Control Panel or contact technical support for assistance.</str>
    <str key="msg_record_access_denied">Access denied.</str>
    <str key="msg_record_set_query_save_record_set">Do you want to save changes to record set?</str>
    <str key="conflict_resolution_form-advanced_view">View details</str>
    </res_root>

    1. Replace this code with the following:

    <str key="msg_book_access_denied">You don't have access rights to Books of Business, used for synchronization or the Books are no longer valid. Please check your Books of Business configuration settings in the Control Panel or contact technical support for assistance.</str>
    <str key="msg_record_access_denied">Access denied.</str>
    <str key="msg_record_set_query_save_record_set">Do you want to save changes to record set?</str>
    <str key="msg_record_set_book_is_not_selected">The book is not selected.</str>
    <str key="conflict_resolution_form-advanced_view">View details</str>

    <img key="conflict-item_resolution_unresolved">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
    WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wweDjIRO4cSEwAAAQVJREFUeNrdkbFKA0EURa/iZ2wl5Adis/MFNuKGCBb2NqJhsbBYZIpFxMpGIUVqFYzoZ4w/YeV8whJ1Zt+7KUxgXWRtbPSVw7uH8+4Af31Wfh/JDbDug9ba1FqbLN99D3xZB/M8T5v7q22AEKgVOHkqnaqaoigS3wM/BAgCqKrpBJRb1tQCRAWOHs7uD6bnr8vwOBs5kkknAIC/yE53gwBRgFbYk3zuNihLr6quGV6oQ1UdSfeTAZraQYD3Gti5uzYhBFRVhU5As7BxNnKTwaGbRWAWgc2byWWMsbvEb26e3g73j9/qTxMR+fKNa23A1XZuVNWQTBaFuRACHgd7XkRSkh7/a+bJIrXmJ8rf7AAAAABJRU5ErkJggg==</img>
    <img key="conflict-item_resolution_left">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wweDwUKICcR/AAAAQhJREFUeNrtk7tKxFAQhv+cI6y9hYW7D2BhGTD12u22K9jlNfIOYhNIZbZLtb6F4MHGaylEZE+veNt1z2Z+ixDRxIXU4jRzYebjH4YB/s1r2zi+++DO000PAHzft1VdtQWcnt/j6Hp9mud5kCRJd6WCg+NbFoWAIhAhpPKFfMV9dbbvnDNRFNkGYHBo+GOgELCWiwj6nRKyVge8PL7WmksV/FYbbFyY5ZJdAGgA9jomIBmQDErJApI4edgeiQiGm5fT+dyzWmurtW4CFouFJWlI2gogInh/fhsNt64msxmhlJporU0cx7b1GcMw3PU8rwcASimTpqn9dYVV5pyzACwAZFlm/9AvfAJw471I3N8/hQAAAABJRU5ErkJggg==</img>
    <img key="confirm_page-accept">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAdTAAAOpgAAA6lwAAF2+XqZnUAAACTUlEQVR4nGL8//8/AyUAIICYKNINBAABxEKqBqEKDU0+cd45QkJiWufitwoCBBDRBgjmG4gysv1ZI6MqrKRrICvz7M7fdyBxgAACe0GqyFxRMt9cHJdmgWxjMx5BngNOTrp2yV7WMl+eMP27ePF6IkgOIIDALjDQ0bv67tOHm+JpFj4vZ514CtMomWLF+p3xV6qhmUaPq604p6wgO8PWk88Zjh2/mfmu+8omkBqAAAK7QJxT4LObg6YBvzDvSplkOyGQmESircY/NsZlTm6aU5M9dTn1xIQZdp16w7D/4J36191nZ8EsAQggsAF7D56ayfGXhSEz2tWaiYNpnVSMgyufGOeumCiLkFQHKwYBLjaG9afvM+w+fLv+Ze+RJmTvAQQQIygdSMc7qKuoi1+ozvLn2HTq+P+7N79+d3KS4dIXV2T48ucTw+4rNxm2rbq74+GsnZ7o4QMQQOAwYP/LdufejTeLD1y6nBpm6sB4W+khlwyPCMObH68Yzt8D+nnzq4sMH/+kYgtggAACe+Hekl1/GT4zrzt3/NH/p59fMfAyczI8+/ac4eLD5wybF9958OXp55CHK/c+wWYAQADBUyLnH479j6993Xfj+ROGN3/eMFx9/ozh6Lo3b/6++hd2d83OO7iiGCCA4Abc2rzp579Hf7deOv6c4eG7twxnN3z+8v7C+5jbGzefxqUZBAACCCUlcjCyL3p+4Vf+xydvJV+f+JF99cimnfg0gwBAADGi50Zzt+i2f78YP54+sKSTkGYQAAggDANIBQABBgB3CeGk8W9wnQAAAABJRU5ErkJggg==</img>
    <str key="application_tb_caption">$app_name$</str>
    <img key="animated_daisy_16x16x12">iVBORw0KGgoAAAANSUhEUgAAAMAAAAAQCAYAAABA4nAoAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAdTAAAOpgAAA6lwAAF2+XqZnUAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS44NzuAXQAAD6dJREFUaEPt2teLLNUWBnD/ANH74rOlCEbwqChiHEVUBLUNqBjHiAH1qGBEGSMmbDPmNos5Y7YNmHPOjlkxldnHuutXzBq2bZfeO17vkwc23Weqvupdu75vrW+tXQss8Af/Vltttb7xR+f80bHNN9+8b8wVv8suu/SNueIPOOCAvjFX/NFHH9035oo/44wz+sZc8ZdddlnfmCv+lltu6RtzxT/00EN9Y674F198sW/MFT89Pd035oqv67pv/Mf4K6+8stpoo43q7bbbbj7QYost1lRV1fj+3Xffzfvmm2+GP/zww7yuC95www3VtttuW++9994tfo011mhWX331Fr/nnntOLLLIIsOpqamJLvwdd9xRBbY+9NBDW/zGG2/cGL4ffvjhEyuuuOKw3+934h944IHqiCOOqE888cQWv9NOOzU77rhjiz/hhBMm1l9//eH555/fiX/ssceqU045pT733HNbfIinmT9/fos/88wzJ7bZZpvhFVdc0Yl/7rnnqosuuqi++uqrW/wxxxzTGL5fcsklE/vss8/wpptu6sS//vrrVaxhHevQ4s8555zG8P26666bOPLII4d33313J/7999+vYg3qRx99tMXHPBrD97vuumvi9NNPHz7yyCOd+M8//7x6/vnn65dffrnFx281hu9xzYm49+Gzzz7biQ+yVTGH+sMPP2zxTz/9dGP4HteduPPOO4dxj534X3/9tYpr1MG1Fv/OO+80xsz3iSeffHIY1+7En3feedUKK6xQr7feei3+22+/bQzf494m3n777eGXX37ZiV8gyFUtu+yyzdJLL13fc889wf1qVgBxoemvvvqq+emnnyZdcNy/IFe11lprNUH8ejgcVsifAlhqqaWmA9MceOCBnfhY4GqzzTZrNt100xoZSwGsu+6604suumhz7LHHduKDXNXuu+/e7LrrrnU8qAr5UwBbbLHF9EorrdScdtppnfh42FWIrznkkEPqV155pUL+FMBuu+02vcEGGzRxj534IFd16qmnNkT01ltvVaUADj744Ontt9++ueqqqzrx5jwYDJoQS/3BBx9UZ599dmNY6xDwtLlERO/EE9Ctt97axKg/++yzqhRAkGP6+OOPb+6///5OfJCrinVvYtRff/11FaJpDL9/7bXXTse9N0888UQnPvhRvfnmm02MOgJlVQrg3nvvnb7xxhubEFcn/ueff67id5sYdfDsX6UAYm2mY32b9957rxMfwbVaaKGFmgUXXLCOdapKAQRuOtan+eKLL36PFxWTGFtuueUA0Xq93kAGWHzxxRuKRH4ZwGK4UWpPEYiKSYwg3wDRJicnBzLAmmuu2Wy11VZTyL/88su/AONGqT3xomIS46CDDhog2v777z8ggE022aSJrDBlThtuuGGLd6PUnnhRMYkRAhkgWpwzkAGMIPWUOW299dYtntBlu8SLikmMiPQDRItzBjJACLYJ4kyZU2SxFk/osl3iRcUkxuWXXz5AtEsvvXRAADGf5qyzzpoyp8MOO6zFE7psl3hRMYkR5B0g2s033zzIDBDXmjKnk046qcUTumyXeFExifHwww8PEC0C0IAArrnmmibOnzKnCy+8sMUTugCTeFExifHSSy8NEO2FF14YZAa47777pszp+uuvb/GELtslnivIwBjCHSBaWJdBCuCpp56aMqdY4xZP6MSaeK4gA2NwbYBrwa9BCuCNN96YMqf4zRYPK9slnivIwBh8G8Tfm1VXXXWQAvjkk0+mzCnWqMUTumyX+AVYgyRIPNjJ5ZZbrhaFww71jbjQkDJ//PHHnhukcqkuL8AaJEHiwU6uvfbadUTeOkTQN5ZYYolhqLIJP9tzg64l1SWeNUiCIGLUDfV+++1n9I24qeEyyyzTBHEm3SCVz5s3bxbPGiRB4sFO7rHHHvVRRx1Vx9/7Roh5SIzujcBlOVYvf581SILEIk+GYOoICHVE8r6x8847D2M9GvdG4LIcq5d41iAJ8tprr01GFqhF8QsuuKBvhKiHgWujL4HLcqxe4lmDJAgiRxaog7R1RN2+EQ93GFlJZJ4kcFmO1Us8a5AE+fTTTydvu+22+sEHH6wjeveNsHTDuA8EmiRwWU6WSjxrkASJIDf5+OOP1yEAWbhvhIiGF198cePeCFyWY/USLzBmgMQRGSAEUL/66qt9I4Q0lJncG4HLcqxe4lljpBUgcUQG4Dg++uijvhFCGspM7o3AXYvVSzxrnAESRxZeeOF6lVVWqb///vu+8e677w5x1r0RuGuxerMC4I/TIojYsUC9uOFZhfzyyy/SSXtjFspn+jwX4Y/TIgTZRMxeRJ9ZfHjyKorB9sYslM/0efD8cVqEuE4T1+tFBJzFxwOs9tprr54bs1BSXPo8eP44LUJcp4kF7olyeYMRQVmbHmFbKBYv6xzn8MdpEU4++WQPpxcLPYsPElbuibAFChYv6xx4/jgtAqKEfezFQ5vF33777ZV7ImyBQnDJOgeePw5MaxE83CBgLzLCLD6Ewxr1CFugYPGyzoGPSDnxzDPPtBbBww371ou/zeLjejJWj7AFChYv6xx4/jhI0loERIkg1wuyzeJDDJV7ImyBgniyzoFXH6ZFFtxwJcg2i2cH3RNhCxSCQ9Y58OrDJZdcsrXIAiWu4Fw+v48//rhyT4Q9s0azdY5z1IfrrLNOa5EFSlyJoDaLZ+fcE2HPrNFsnZO/0X6yCqIlwvzmQPzHDVG11MbfjR73f1ZBtESY0eMzIpqW2vi7cXhWQbREmNHjbmjllVeupTb+bhyeVTjuuOOGCDN6nKDDTtWsnfpmHJ5VEC0RZvQ4Qe+www6y2kB9Mw7PKoiWCDN6nKD33XffmrUr7Ud5HqsQcxsizCieoGU11o6FGPf7rEIIYYgwo8cJWlZj7dQ34/CsgmiJMKPHCRpxWbtx83O+oMYtlOTN6xC0rMbaqW/G/T6rzC0ImKPHCVpWY+3UN+PwrHIEqaGAOXqcoGU11u4396dNmN0SnyzDuIv7m3SWvs6nFpc2YXZL+GWWoQsvnaWv86nFpU2YxSK/zDJ04aWz9HU+tbi0CXllxaJPlqELz85lZ8unFq82YRaL/DLL0IVn57Kz5VOLV5uQV1Ys+mQZuvDsXBb2PrV4rWG5pta4C+/ZlM/Ks7OG5Zpa4y68Z5PPyqdnZw3LNbXGXXjPJp+VT8/OGuaaqhetcRfesymflWdnDXNNuQ9r3IX3bPJZ+fTsrGGuqXrRGnfhPZvyWbUt3v+lACzqXxGARf27BeAhZXdrVAAW9c8E4CFld2suAvCQ8oH9FQHobs1FAIJUdrfmIgBBKkUwKgBC+CsCIIQ/E4AglSIYFYB1/a8FkGqRVqVXabb0z3lc2lPMSNPjFCatSq/SbOmf81xpWXqWpsfhXV96lWZL/5znSlvSszQ9Di+tSq/SbOmf89wZCzYsa4/yOtKq9CrNlv45z5GWpeeZjtbvpmB+0qs0W/rnPFFalp6l6XHzZyvZSzaz9M95LlvKnrKp4/BsJXvJi4+zIGwpe8qmjsOzleyl4rH0z3kuW8qesqnj8Gwle8lmlvVjnsuWsqds6jg8W8lespll/ZjnsqXsKZs6Ds9WspdsZlk/5rlsKXvKpv4Or6BSWCmwFFoKrtJHI5QiRoGmCNHTVbgVD3e+wkpkUWjFJBUcVR5HKEWMAk0RoqercMvjCiqFlQJLoaXgKn00QiliFGgz3YpphVviFVSEo8BSaJlr6VMRSmGmQFOEI4nCLfE2jvTO3ZtCy1xLH41QCjMFWmAaBZvCLfE2jvTO3ZtCy1xLn4lQCjMFmkJNwaZwS7yGQtlgMNeSxAiliBchFeEaFhoXiSfqssFgrqWPRihFvE6WIlzDQuMi8RoKGgvuTaPBXEsfjVCKeJ0sHNGw0LhIvIaCxoJ702gw17KOFFBxSoMCRzQsNC4Sr6GgseDeNBrMtawjBVRFvAYFjmhYaFwkXkNBY8G9aTSYa1lHCqg4pUGBIxoWGhezQtBS01rTYtNq03Kj1mzDiaqIpY2ll4soWnd5AeTVWtNi02rTcqPWbMOJqoiljaWXiyhad4nXUtNa02LTajNRas02nKiKWNpYerlEoHWXeC01rTUttplWGz8+zDacqIpgWnRlyy7xWmrErcVmjoSq9ZZtOIJBMC26mb2MZqZ1115CSw1Gi80cCVW2yjacqIpYWnT2MhBF6y5/X0t5pvsyMMeZTsow29CiKmJp49rLQBSt68RrKcNoMZsjocpW2YYWVRFLG9deBqJoXSfe7qnWshazORKqbJVtaFEVsbRx7WUQgdZ14rWUtZa1mM2RUGWrbENzFQIrbtnLIAKt68RrKWstazGbI6HKVtmG5ioEVtyyl0EEWteFgGqtZS1mcyRU2Srb0IKjwIpb9jKIQOt6VgA2VWyu+ENOUKrKjRjWAgjBnGPTptzSln7SNuUEpar0a6wF0SAYPJKWW9o2VWyuOJYTlKpyI4a1IBoEc45Nm3JL28ZIdkZSoKxaFpesBdHYw4C3aVO+0mFTJTdmUqCsWhaXrIXMgWDwNm3KVzpsqthcmbm3VqCsWhaXrEUcawnmHJs25SsdNhVtLjqWAhXV1St8NWtBNAjmHJuW5SsdNhVtLjqWAmXV1CszvrrdnEQw59i0LF/psKloc9GxFCirlvUKa0E0COYcm5blKx02FW0uOpYCZdVyI5K1JhoB1jk2LctXOmwq2lx0LAXKqqlX1JWsNdEIsM5B8vKVDpuKNhcdS4GyalmvsNZEI8A6x6bl2Fc6TCxTlBNzK56/piJRtqsFlxPLFOX/Wazw1yyGKFvuADqn/GdimaL8Pbfi2QkWQ5RNoo1i/Z8w06L5fwqAv5YBRNkk2jg8YaZFczwFwF/LAKJsEm0cnjDTojmeAuCvWQxRNok2Dk+YadEcz2Kdv2YxRNkk2jj8zG5qa9Ecz2Kdv2YxRNkk2jg8YaZFczyLdQGOxRBlk2jj8ISZFs3xfBUFZ1hsLiMD7Tg8YaZFczyLdfUli81ljKtP81qEmRbN37JYZ4e5FC4jA+2437dF3r5wlf6sfBmLz2Y1/ojAVCk1pT8r30Xhs1mNcgt7dBJUKTWlPytfxuKzWY3fbGGPXEBWYs2yPinfReGzWY3yFY7R35eVWLOsT8p3UURk4PIVjlG8rMSaZX1SvovCZ7Ma5Ssco3hZSQbI+kT0N5zHZ7Ma5Ssco3hZiTXL+kT0N5zHZ7Ma5Ssco3hZiTXL+qR8F4vPtntdvsIxipeVWLOsTzIDOE+dyWqXr3CM4mUl1izrE9HfcJ6NOyTu2kNxjqzEmmV9Ur6Lpc5ktctXOMaKoPzjP6/j/p9fxx15Iv+8jv73v47+b2iJLDfdg8z0AAAAAElFTkSuQmCC</img>
    <str key="page-sync-show_control_panel_button">Show Control Panel...</str>
    <img key="general_conflict_page-page_image" >iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9ZJREFUeNrsV01oU1kUPnkmqfalMVozqWlKMRa16kLciAyhtDrTjFIZ0Sq0WjBgoahFdCOCggtBGSoirgQ7zIzjoII4lEhqnayULLTt09RAtDZR21Rbokmrr03eTz3nmagD7WuisS70wiHJufee77vnfPcnmomJCfiajYGv3L4T0HyJRR069Odaq9V+SRSTPQcOVP2KvvGZygCzb99Zh9lc0l65c3WxRqOtRl/hTJWAaWo67SguXuL+ybWGZU1zQBAE8htnggDT2NiigG9o/JE1IDjg7hZFkfq0X1oDjMt10lFSssy9ee961liYDxJWfEIG+KfFrToxkeAvfy4BpqHhuMNmW+qubXayc39gIRlHcPHDgLwFU09uPXJNPT3YZp865b2m1epXRiJ920+caPChT06D19cfc1gsdveWPdWs0czC2AvsTP4/gPh06uCkkek0UEhKJkWTsknhH+mmwGxe5K7ZVcWaigzAI5AQA5D4zC0TAkYaRIomZZPISOkpEoWiKLEP74eh71YUEi9xtXx2RrFnTUNgYWVlfdNKx2LQz9ZB6YqF+sHg69qystW3OjtvjOl0cywaYe6KBJ8EvV4POp1OUX6mxnEcaA8fvnwpLy9/m1qd0s0wLx9qmirYq2cEd03N3h1tbWf/TiTGCgRho5MC2u12MJlM78cHAgHV1VFsLcPotu08ujFj2RfMz4fNzetYoUW4MD7+xtXR8ft5WZZBkjY4KWBpaSkYje/Onu7ubtVYQ0MhTkuTpPEsLg+svnE+C7X7q1nhN6FVkmSX1/vHeUmSMK2/KJmw2WxgMBiUFV68ePAMTnszSShCDSgEkrEsN78OSSwwwKbdVSzOb0UCa+7du35OlomEUyFhsVjS5fOi9U0Shk6LmEJAiGV/Ag32RiH0JAy0E1LB7vj97VgKGX0/OxmGSRMgcP9UcRQCYzEhK/BoNArBYBBCoRDWuf1K6nB6TiQCgQ6gcoyMxNbxfDyCPkktlkLA5/OpApaXl7//Ho/HFeBwOAydnW7P3bv//oXuV6ksKCSCQa+A1p76PaJKIBJ5xGHNVqkNslqtyufo6CgMDAxAf38/dHVd93R1tZ0jsVMtP6orgdKKaA8mKGHT3YZb0ZbTuT9JP1tX19JcUVEBPM/D8PCwQoDjPB4SHa02BSh+6m1Gl9FttAdT3Nt2LFFzGpzS7vff8KDYcgKeJjCYskkbCYrAe3t7oafnpgdFljPwaV8rhB+PDz3jOL7o8WPffyisnIJn8iKyodHtV4T2CI3LJXgmBEiY9KbR0w5MWc7AFQLf/xt+8wTeCjAAaiUO1zpinAEAAAAASUVORK5CYII=</img>
    </res_root>

Oracle CRM On Demand Desktop Administration Guide, Version 5.1, Rev A Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Legal Notices.