<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*jslint undef: true, newcap: true, nomen: true, regexp: true, plusplus: true, bitwise: true, browser: true, devel: true */
/*jslint nomen: false */
/*global $: false, jQuery: false */
/*global AppFrame: false */
/*global ClientLookupSearchTemplate: false, UpdatePagination: false */

/*members ClientCode, ClientId, ClientLookupFetch, ClientName, Code, 
Event, FetchFunction, Info, PageNumberId, PageSize, PageSizeId, 
PaginationId, PaginationInfo, RecordStart, Rows, 
SetupClientAutocomplete, SetupClientAutocomplete2, ShowClientLookup, 
_renderItem, activate, addClass, ajax, append, appendTo, attr, autoOpen, 
autocomplete, background, children, click, client_of, data, dataType, 
delay, dialog, dialogClass, draggable, element, error, except_client_id, 
find, first, focus, height, html, id, include_owed, is, item, keyCode, 
keydown, length, menu, mid, minLength, modal, opacity, open, overlay, 
processTemplate, processTemplate2, ps, publish, q, relationship_type_id, 
resizable, rs, search, select, setTemplateURL, source, success, term, 
text, title, toggleClass, type, url, val, width
*/

var clientLookupDialog = null;
var clientLookupDiv = null;
var clientSearchDiv = null;
var clientNameInput = null;
var clientIdInput = null;
var clientCodeInput = null;
var clientIsFirst = true;
var clientIncludeTotalOwed = false;
var clientSelectedCallback = null;
var clientShowUnPublished = false;
var clientRelationshipTypeId = null;
var clientExceptClientId = null;
var clientLookupExtraAutocompleteOptions = {};
var isifirm15_contactlookup = $('#isifirm15_contactlookup').val();
var disableContactAutoLookupOptimization = $('#disableContactAutoLookupOptimization').val();
// Renamed not to clash with the clientManager defined in client_manager-edit.js
// It's otherwise creating a raceconditions where the clientManager variable is sometimes set to null before being used in the other script
var cl_clientManager = null;
var includeAdditionalContactLookup = false;
var lookupUrl = "/crm/client_lookup-getlookup.php";
var newOptions = {};
var lookupResultCache = {};
var disableContactLookupOptimization = $('#disableContactLookupOptimization').val();
var popupLookupUrl = "/crm/client_lookup-get.php";
var popupLookupNewOptions = {};

var ClientLookup =
{
    ClientLookupFetch: function (page, pageSize) {
        var me = ClientLookup;
        if (typeof ClientManagerEdit !== 'undefined') {
            cl_clientManager = new ClientManagerEdit();
        }

        if (!page) {
            page = $("#clientPage").val();
        }
        else {
            $("#clientPage").val(page);
        }

        if (!pageSize) {
            pageSize = $("#clientPageSize").val();
        }
        var data = {
            rs: ((page - 1) * pageSize + 1) || 1,
            ps: pageSize || '',
            search: $("div#ClientLookup input#clientsearch").val() || "",
            client_of: $("div#ClientLookup select#client_lookup_client_of").val() || "",
            mid: $("div#ClientLookup select#client_lookup_mid").val() || ""
        };
        if (clientIsFirst) {
            data.is = "y";
            clientIsFirst = false;
        }
        if (clientShowUnPublished) {
            data.publish = '*';
        }

        console.log("clientRelationshipTypeId : ", clientRelationshipTypeId);
        if (clientRelationshipTypeId) {
            data.relationship_type_id = clientRelationshipTypeId;
        }
        console.log("data.relationship_type_id : ", data.relationship_type_id);

        if (clientExceptClientId) {
            data.except_client_id = clientExceptClientId;
        }
        data.include_additional_contact = includeAdditionalContactLookup;

        popupLookupNewOptions = {};
        var requestType = '';
        if (disableContactLookupOptimization == "0") {
            requestType = 'POST';
            popupLookupUrl = "/crm/api/Lookup/GetContactLookup";

            popupLookupNewOptions.search = data.search;
            popupLookupNewOptions.exceptClientId = data.except_client_id;
            popupLookupNewOptions.relationshipTypeId = data.relationship_type_id;
            popupLookupNewOptions.includeAdditionalContact = data.include_additional_contact;
            popupLookupNewOptions.publish = data.publish;
            popupLookupNewOptions.partnerId = data.client_of;
            popupLookupNewOptions.managerId = data.mid;
            popupLookupNewOptions.includeLookups = data.is;
            popupLookupNewOptions.startIndex = data.rs;
            popupLookupNewOptions.pageSize = data.ps;

            data = popupLookupNewOptions;
        }
        else {
            popupLookupUrl = "/crm/client_lookup-get.php";
            requestType = 'GET';
        }

        $.ajax({
            data: data,
            dataType: 'json',
            success: function (result) {
                if (!clientSearchDiv) {
                    clientSearchDiv = clientLookupDialog.find("div#searchBarContainer");

                    if ($("#contactLookupScreenVersion").val() === "1") {
                        if (reloadUtils.getScreenVersion() === "1.5" || reloadUtils.getScreenVersion() === "2.0") {
                            var params = {};
                            params.resources = globalResources;
                            clientSearchDiv.processTemplate3(result.Info, ClientLookupSearchTemplate15, params);
                        }
                        else {
                            clientSearchDiv.processTemplate2(result.Info, ClientLookupSearchTemplate10);
                        }
                    } else {
                        if (isifirm15_contactlookup == "1") {
                            var params = {};
                            params.resources = globalResources;
                            clientSearchDiv.processTemplate3(result.Info, ClientLookupSearchTemplate, params);
                        }
                        else {
                            clientSearchDiv.processTemplate2(result.Info, ClientLookupSearchTemplate);
                        }
                    }
                    clientSearchDiv.find("span.action button").click(function () { me.ClientLookupFetch(1); });
                    $("div#ClientLookup input#clientsearch").keydown(function (e) {
                        if (e.keyCode === 10 || e.keyCode === 13) {
                            me.ClientLookupFetch(1);
                            return false;
                        }
                    });
                }

                if (result.Rows.length &gt; 0) {

                    if ($("#contactLookupScreenVersion").val() === "1") {
                        if (reloadUtils.getScreenVersion() === "1.5" || reloadUtils.getScreenVersion() === "2.0") {
                            var params = {};
                            params.resources = globalResources;
                            clientLookupDiv.processTemplate(result, params);
                        }
                        else {
                            clientLookupDiv.processTemplate(result);
                        }
                    } else {
                        if (isifirm15_contactlookup == "1") {
                            var params = {};
                            params.resources = globalResources;
                            clientLookupDiv.processTemplate(result, params);
                        }
                        else {
                            clientLookupDiv.processTemplate(result);
                        }
                    }

                    result.PaginationInfo.FetchFunction = "ClientLookup.ClientLookupFetch";
                    result.PaginationInfo.PaginationId = "#clientPagination";
                    result.PaginationInfo.PageNumberId = "clientPageNumber";
                    result.PaginationInfo.PageSizeId = "#clientPageSize";
                    $("#clientPageSize").val(result.PaginationInfo.PageSize);
                    $("#clientPage").val((result.PaginationInfo.RecordStart - 1) / result.PaginationInfo.PageSize + 1);
                    if ($("#contactLookupScreenVersion").val() === "1") {
                        result.PaginationInfo.fromContactLookup = true;
                        if (reloadUtils.getScreenVersion() === "1.5" || reloadUtils.getScreenVersion() === "2.0") {
                            UpdatePagination(result.PaginationInfo, true);
                        } else {
                            UpdatePagination(result.PaginationInfo, false);
                        }
                    } else {
                        UpdatePagination(result.PaginationInfo);
                    }
                    clientLookupDiv.find("table.output_table tbody tr").click(function () {
                        var clientId = $(this)[0].id;
                        var clientCode = $(this).find(".client_code").text();
                        var clientName = $(this).find(".client_name").text();
                        var clientEmail = $(this).attr('email');
                        $("input#" + clientCodeInput).val(clientCode);
                        $("input#" + clientIdInput).val(clientId);
                        $("input#" + clientNameInput).val(clientName);
                        $("input#client_email").val(clientEmail);
                        if (clientIncludeTotalOwed) {
                            $("#total_owed_field").val($(this).attr("total_owed"));
                        }

                        clientLookupDialog.dialog("close");

                        if (clientSelectedCallback) {
                            clientSelectedCallback(clientId, clientCode, clientName);
                        }

                        clientSelectedCallback = null;
                        if ($("#crmRemoveGoButton").val() === '1' &amp;&amp; clientNameInput == 'search_client_name') {
                            if ((typeof (cl_clientManager) == 'undefined' || !cl_clientManager) &amp;&amp; typeof (ClientManagerEdit) !== 'undefined') {
                                cl_clientManager = new ClientManagerEdit();
                            }
                            if (typeof (cl_clientManager) !== 'undefined' &amp;&amp; cl_clientManager) {
                                cl_clientManager.loadClient(clientId);
                            }
                        }
                    });
                }
                else {
                    if ($("#contactLookupScreenVersion").val() === "1") {
                        if (reloadUtils.getScreenVersion() === "1.5" || reloadUtils.getScreenVersion() === "2.0") {
                            clientLookupDiv.html("&lt;div class='alert_message'&gt;" + globalResources.get('ifirm.common.norecords') + "&lt;/div&gt;");
                        }
                        else {
                            clientLookupDiv.html("&lt;div class='alert_message'&gt;There are no records.&lt;/div&gt;");
                        }
                    } else {
                        if (isifirm15_contactlookup == "1") {
                            clientLookupDiv.html("&lt;div class='alert_message'&gt;" + globalResources.get('ifirm.common.norecords') + "&lt;/div&gt;");
                        }
                        else {
                            clientLookupDiv.html("&lt;div class='alert_message'&gt;There are no records.&lt;/div&gt;");
                        }
                    }
                }
                $("div#ClientLookup input#clientsearch").focus();
            },
            type: requestType,
            url: popupLookupUrl
        });
    },

    ShowClientLookup: function (clientName, clientId, includeTotalOwed, selectedCallback, relationshipTypeId, exceptClientId, alwaysFetch, clientCode, includeAdditionalContact) {
        var me = ClientLookup;
        clientNameInput = clientName;
        clientIdInput = clientId;
        clientCodeInput = clientCode;
        clientIncludeTotalOwed = includeTotalOwed;
        clientSelectedCallback = selectedCallback;
        clientRelationshipTypeId = relationshipTypeId;
        clientExceptClientId = exceptClientId;
        if (typeof (includeAdditionalContact) !== 'undefined' &amp;&amp; includeAdditionalContact === true) {
            includeAdditionalContactLookup = includeAdditionalContact;
        } else {
            includeAdditionalContact = false;
            includeAdditionalContactLookup = false;
        }

        if ($("#contactLookupScreenVersion").val() === "1" &amp;&amp; clientLookupDialog) {
            clientLookupDialog.remove();
            clientLookupDialog = null;
            clientLookupDiv = null;
            clientSearchDiv = null;
            clientIsFirst = true;
        }

        if (!clientLookupDialog) {
            if ($("#contactLookupScreenVersion").val() === "1") {
                if (reloadUtils.getScreenVersion() === "1.5" || reloadUtils.getScreenVersion() === "2.0") {
                    var params = {};
                    params.resources = globalResources;
                    clientLookupDialog = $("&lt;div id='clientLookupDialog'&gt;&lt;div id='ClientLookup'&gt;&lt;div id='PageContent'&gt;&lt;div id='searchBarContainer' class='bar-opened'&gt;&lt;/div&gt;&lt;div id='clientResultContainer'&gt;" + params.resources.get('ifirm.common.loadingpleasewait') + "&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;").appendTo($("div#apm"));
                }
                else {
                    clientLookupDialog = $("&lt;div id='clientLookupDialog'&gt;&lt;div id='ClientLookup'&gt;&lt;div id='PageContent'&gt;&lt;div id='searchBarContainer' class='bar-opened'&gt;&lt;/div&gt;&lt;div id='clientResultContainer'&gt;Loading ... Please wait.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;").appendTo($("div#apm"));
                }
            } else {
                if (isifirm15_contactlookup == "1") {
                    var params = {};
                    params.resources = globalResources;
                    clientLookupDialog = $("&lt;div id='clientLookupDialog'&gt;&lt;div id='ClientLookup'&gt;&lt;div id='PageContent'&gt;&lt;div id='searchBarContainer' class='bar-opened'&gt;&lt;/div&gt;&lt;div id='clientResultContainer'&gt;" + params.resources.get('ifirm.common.loadingpleasewait') + "&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;").appendTo($("div#apm"));
                }
                else {
                    clientLookupDialog = $("&lt;div id='clientLookupDialog'&gt;&lt;div id='ClientLookup'&gt;&lt;div id='PageContent'&gt;&lt;div id='searchBarContainer' class='bar-opened'&gt;&lt;/div&gt;&lt;div id='clientResultContainer'&gt;Loading ... Please wait.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;").appendTo($("div#apm"));
                }
            }

            clientLookupDiv = clientLookupDialog.find("div#clientResultContainer");
            var dialogTitle = globalResources.get('ifirm.common.contactlookup');
            var closeText = 'Close';
            if ($("#contactLookupScreenVersion").val() === "1") {
                if (reloadUtils.getScreenVersion() === "1.5" || reloadUtils.getScreenVersion() === "2.0") {
                    dialogTitle = globalResources.get('ifirm.common.contactlookup');
                    closeText = globalResources.get('ifirm.common.close');
                    clientLookupDiv.setTemplateURL("/crm/templates/client_lookup-view15-138342.tpl");
                }
                else {
                    clientLookupDiv.setTemplateURL("/crm/templates/client_lookup-view-138342.tpl");
                }
            } else {
                if (isifirm15_contactlookup == "1") {
                    dialogTitle = globalResources.get('ifirm.common.contactlookup');
                    closeText = globalResources.get('ifirm.common.close');
                    clientLookupDiv.setTemplateURL("/crm/templates/client_lookup-view15-138342.tpl");
                }
                else {
                    clientLookupDiv.setTemplateURL("/crm/templates/client_lookup-view-138342.tpl");
                }
            }

            if (includeAdditionalContactLookup) {
                clientLookupDiv.setTemplateURL("/crm/templates/client_lookup-with-additional-view-138342.tpl");
            }

            me.ClientLookupFetch();
            clientLookupDialog.dialog({
                title: dialogTitle,
                modal: true,
                dialogClass: "apmlookupdialog",
                autoOpen: false,
                resizable: false,
                draggable: false,
                width: 630,
                height: 555,
                closeText: closeText,
                close: function (event, ui) {
                    clientLookupDialog.remove();
                    clientLookupDialog = null;
                    clientLookupDiv = null;
                    clientSearchDiv = null;
                    clientIsFirst = true;
                },
                overlay: {
                    opacity: 0.5,
                    background: "black"
                }
            });
        }
        else if (alwaysFetch) {
            me.ClientLookupFetch();
        }
        clientLookupDialog.dialog("open");
    },

    bringSuggestionsToFront: function (dialog, autocomplete) {
        // GDEV-35136            
        if (dialog != undefined &amp;&amp; dialog.length &gt; 0) {
            var dialogZindex = parseInt(dialog.css("z-index"));
            if (dialogZindex &gt; 0 &amp;&amp; autocomplete) {
                var results = $('.ui-autocomplete.ui-front').closest('.ac_results');
                if (results) {
                    for (let index = 0; index &lt; results.length; ++index) {
                        const element = results[index];
                        element.style.setProperty('z-index', dialogZindex + 1, 'important');
                    }
                }
            }
        }
    },

    SetupClientAutocomplete2: function (edit, options, relationshipType, onSelectedCallback) {
        var me = ClientLookup;
        if (!options) {
            options = {};
        }

        var autoCompleteMinCharLength = 3;

        getAutoCompleteMinCharLength('clientcode').then(function (result) {
            autoCompleteMinCharLength = result;

            var autoCompleteOptions =
            {
                delay: 1000,
                minLength: autoCompleteMinCharLength,
                source: function (request, response) {
                    options.q = request.term;
                    if ($(relationshipType)) {
                        options.type = $(relationshipType).val();

                        $relationshipIsParent = $("input#relationship_type_isParent");
                        if ($relationshipIsParent) {
                            if ($relationshipIsParent.val() === "false") {
                                options.type = -(options.type - 1);
                            }
                        }
                    }

                    lookupUrl = "/crm/client_lookup-getlookup.php";
                    newOptions = options;
                    var requestType = '';

                    if (disableContactAutoLookupOptimization == "0") {
                        requestType = "POST";
                        lookupUrl = "/crm/api/Lookup/GetContactAutoLookup";
                        newOptions.search = options.q;
                        newOptions.exceptClientId = options.except_client_id;
                        newOptions.excludeClientIds = options.exclude_client_ids;
                        newOptions.relationshipTypeId = options.type;
                        newOptions.published = options.publish;
                        newOptions.limit = options.limit;
                        newOptions.includeAdditionalContact = options.includeAdditionalContactLookup;
                        newOptions.taxClient = options.taxclient;

                        if (jQuery.param(newOptions) in lookupResultCache) {

                            var cachedData = lookupResultCache[jQuery.param(newOptions)];
                            if (!me.IsAutoLookupCacheExpired(cachedData.timestamp)) {
                                if (!newOptions.includeAdditionalContact) {
                                    if (cachedData.result.length === 0) {
                                        $(edit).closest("div").find("#lblNoRecordFound").show();
                                    }
                                    else {
                                        $(edit).closest("div").find("#lblNoRecordFound").show();
                                    }
                                }
                                response(cachedData.result);
                                console.log("result found cache key " + jQuery.param(newOptions));
                                return;
                            }
                            else {
                                delete lookupResultCache[jQuery.param(newOptions)];
                                console.log("result Cache expired deleted key " + jQuery.param(newOptions));
                            }
                        }

                    } else {

                        lookupUrl = "/crm/client_lookup-getlookup.php";
                        requestType = "GET";
                    }

                    $.ajax({
                        type: requestType,
                        url: lookupUrl,
                        data: newOptions,
                        dataType: "json",
                        success: function (result) {
                            if (!options.includeAdditionalContactLookup) {
                                if ($.trim(newOptions.search).length &gt; 0 &amp;&amp; result.length === 0) {
                                    $(edit).closest("div").find("#lblNoRecordFound").show();
                                }
                                else {
                                    $(edit).closest("div").find("#lblNoRecordFound").hide();
                                }
                            }

                            if (disableContactAutoLookupOptimization == "0" &amp;&amp; result.length &gt; 0) {
                                lookupResultCache[jQuery.param(options)] = { "result": result, "timestamp": new Date().getTime() };
                                console.log("result cached with key " + jQuery.param(options));
                            }

                            response(result);
                        },
                        error: function () {
                            response(false);
                        }
                    });
                },
                open: function (event, ui) {

                    if ($(this).data("autocomplete") != undefined) {
                        var autocomplete = $(this).data("autocomplete"),
                            menu = autocomplete.menu;

                        if (menu.element.children().length === 1) {
                            menu.activate($.Event({ type: "mouseenter" }), menu.element.children().first());
                        }
                    }

                    ClientLookup.bringSuggestionsToFront($(this).closest('.ui-dialog'), $('.ui-autocomplete.ui-front'));
                },
                select: function (event, ui) {
                    if (!onSelectedCallback) {
                        $(edit).val(ui.item.Code);
                    }
                    else {
                        onSelectedCallback(ui.item);
                    }

                    if ($("#crmRemoveGoButton").val() === '1' &amp;&amp; this.id == 'search_client_name') {
                        if ((typeof (cl_clientManager) == 'undefined' || !cl_clientManager) &amp;&amp; typeof (ClientManagerEdit) !== 'undefined') {
                            cl_clientManager = new ClientManagerEdit();
                        }
                        if (typeof (cl_clientManager) !== 'undefined' &amp;&amp; cl_clientManager) {
                            cl_clientManager.loadClient(ui.item.ClientId);
                        }
                    }
                    return false;
                }
            };

            var autoCompleteVersion = $(edit).autocomplete(autoCompleteOptions).data("ui-autocomplete");
            if (typeof (autoCompleteVersion) == 'undefined' || autoCompleteVersion == null) {
                var autoCompleteObj = $(edit).autocomplete(autoCompleteOptions).data("autocomplete");

                if (typeof (autoCompleteObj) != "undefined" &amp;&amp; autoCompleteObj != null) {
                    autoCompleteObj._renderItem = function (ul, item) {
                        $(ul).addClass('ac_results').addClass('ac_clientSearch_results');
                        return $("&lt;li&gt;&lt;/li&gt;")
                            .data("item.autocomplete", item)
                            .append("&lt;a&gt;&lt;span class='clientCodeAutocomplete2'&gt;" + item.ClientCode + "&lt;/span&gt;&lt;span class='clientNameAutocomplete2'&gt;" + item.ClientName + "&lt;/span&gt;&lt;/a&gt;")
                            .appendTo(ul);
                    };
                }
            }
            else {
                $(edit).autocomplete("option", "appendTo", "#client_manager");
                autoCompleteVersion._renderItem = function (ul, item) {
                    $(ul).addClass('ac_results').addClass('ac_clientSearch_results');
                    return $("&lt;li&gt;&lt;/li&gt;")
                        .data("ui-item.autocomplete", item)
                        .append("&lt;a&gt;&lt;span class='clientCodeAutocomplete2'&gt;" + item.ClientCode + "&lt;/span&gt;&lt;span class='clientNameAutocomplete2'&gt;" + item.ClientName + "&lt;/span&gt;&lt;/a&gt;")
                        .appendTo(ul);
                };
            }

            $(edit).on("input", function () {
                if ($.trim($(this).val()).length &lt;= 0) {
                    $(this).closest("div").find("#lblNoRecordFound").hide();
                }
            });
        });
    },

    SetupClientAutocomplete: function (publishOnly, includeTotalOwed, clientCode, clientName, clientId, selectedCallback, relationshipType, includeAdditionalContact, exceptClientId) {

        if ($('#wipTransferNewJobDialog').length) {
            $('#wipTransferNewJobDialog').parent().css("height", "500px");
        }

        var me = ClientLookup;
        var options = {};
        options.includeAdditionalContactLookup = false;

        if (publishOnly) {
            options.publish = 'y';
        }

        if (includeTotalOwed) {
            options.include_owed = 'y';
        }

        if (!clientName) {
            clientName = "client_name";
        }

        if (!clientId) {
            clientId = "client_id";
        }

        var $relationship_type = null;
        if (relationshipType) {
            $relationship_type = $("input#" + relationshipType);
        }

        if (typeof (includeAdditionalContact) !== 'undefined' &amp;&amp; includeAdditionalContact === true) {
            options.includeAdditionalContactLookup = includeAdditionalContact;
        } else {
            includeAdditionalContact = false;
            includeAdditionalContactLookup = false;
        }

        if (exceptClientId) {
            options.except_client_id = exceptClientId;
        } else {
            options.except_client_id = null;
        }

        var $edit = $("input#" + clientName);

        $edit.focus(function () {
            ClientLookup.bringSuggestionsToFront($(this).closest('.ui-dialog'), $('.ui-autocomplete.ui-front'));
        });

        me.SetupClientAutocomplete2($edit, options, $relationship_type, function (item) {
            $("input#" + clientId).val(item.ClientId);
            $("input#client_email").val(item.ClientEmail);
            $edit.val(item.ClientName);

            if (selectedCallback) {
                selectedCallback();
            }
        });
    },
    IsAutoLookupCacheExpired: function (timeStamp) {
        return typeof timeStamp != 'undefined' &amp;&amp; Math.floor((new Date().getTime() - timeStamp) / (1000 * 60)) &gt;= 10;
    }
};

function SetupClientAutocomplete(publishOnly, includeTotalOwed, clientCode, clientName, clientId, selectedCallback, relationshipType, includeAdditionalContact, exceptClientId) {
    ClientLookup.SetupClientAutocomplete(publishOnly, includeTotalOwed, clientCode, clientName, clientId, selectedCallback, relationshipType, includeAdditionalContact, exceptClientId);
}

function ShowClientLookup(clientName, clientId, includeTotalOwed, selectedCallback, relationshipTypeId, exceptClientId, alwaysFetch, clientCode, includeAdditionalContact) {
    ClientLookup.ShowClientLookup(clientName, clientId, includeTotalOwed, selectedCallback, relationshipTypeId, exceptClientId, alwaysFetch, clientCode, includeAdditionalContact);
}</pre></body></html>