| <!-- Error and Success templates --> |
| |
| <script type="text/template" id="xos-error-response"> |
| <h5>Error</h5> |
| <table> |
| <tr><td>error:</td><td><%= error %></td></tr> |
| <tr><td>check:</td><td><%= specific_error %></td></tr> |
| </table> |
| <h5>Details:</h5> |
| <table> |
| <tbody> |
| <% _.each(reasons, function(element, index) { %> |
| <tr><td><%= index %></td><td><%= element %></td></tr> |
| <% }); %> |
| </tbody> |
| </table> |
| </script> |
| |
| <script type="text/template" id="xos-error-rawresponse"> |
| <h5>Error</h5> |
| <pre>The server returned: |
| "<%= responseText %>"</pre> |
| </script> |
| |
| <script type="text/template" id="xos-error-template"> |
| <button id="close-error-box">Close Error Message</button> |
| <h3>An error has occurred.</h3> |
| <table class="test-error-table"> |
| <tr><td>Code:</td><td><%= status %></td></tr> |
| <tr><td>Message:</td><td><%= statusText %></td></tr> |
| </table> |
| </script> |
| |
| <script type="text/template" id="xos-success-template"> |
| <button id="close-success-box">Close Success Message</button> |
| <h3>Success!</h3> |
| <table class="test-success-table"> |
| <tr><td>Code:</td><td><%= status %></td></tr> |
| <tr><td>Message:</td><td><%= statusText %></td></tr> |
| </table> |
| </script> |
| |
| <script type="text/template" id="xos-navbutton-old"> |
| <button class="btn btn-default btn-xosnav" onclick="<%= router %>.navigate('<%= routeUrl %>', {trigger: true})"><%= name %></button><br> |
| </script> |
| |
| <script type="text/template" id="xos-status-template"> |
| <div class="xos-status xos-<%= statusclass %>"><%= what %>: <%= statusText %> (<%= status %>)</div> |
| </script> |
| |
| <script type="text/template" id="xos-tabs-template"> |
| <ul class="xos-nav-list"> |
| <% _.each(tabs, function(tab) { %> |
| <li class="xos-nav-item" id="xos-nav-<%= tab["region"] %>"><%= tab["name"] %></li> |
| <% }); %> |
| </ul> |
| </script> |
| |
| <script type="text/template" id="xos-title-list"> |
| <h3><img src="/static/img/brokencircle.gif" height=16 width=16 id="xos-list-title-spinner"> <%= title %></h3> |
| </script> |
| |
| <script type="text/template" id="xos-title-detail"> |
| <h3><%= title %></h3> |
| </script> |
| |
| <script type="text/template" id="xos-navbutton"> |
| <li> |
| <a href="<%= routeUrl %>"> |
| <i class="<%= iconClass %>"></i> |
| <%= name %> |
| </a> |
| </li> |
| </script> |
| |
| <script type="text/template" id="xos-inline-detail-buttons-template"> |
| <tr> |
| <td colspan=2><button class="btn js-submit btn-xos-detail btn-xos-save-leave">Save</button> |
| <button class="btn js-submit btn-xos-detail btn-xos-save-continue">Save and Continue Editing</button> |
| <button class="btn js-submit btn-xos-detail btn-xos-save-another">Save and Add Another</button> |
| <button class="btn js-submit btn-xos-detail btn-xos-delete">Delete</button> |
| </td> |
| </tr> |
| </script> |
| |
| <script type="text/template" id="xos-list-header-template"> |
| <button class="btn js-submit btn-xos-list btn-xos-add">Add</button> |
| <button class="btn js-submit btn-xos-list btn-xos-refresh">Refresh</button> |
| </script> |
| |
| <script type="text/template" id="xos-list-footer-template"> |
| <a href="#addChildSliver/slice/slice/23">Add another...</a> |
| </script> |
| |
| <script type="text/template" id="xos-delete-button-template"> |
| <a href="#delete<%= firstCharUpper(modelName) %>/<%= id %>">delete</a> |
| </script> |
| |
| <script type="text/template" id="xos-detail-link-template"> |
| <a href="#<%= collectionName %>/<%= id %>"><%= text %></a> |
| </script> |
| |
| <script type="text/template" id="xos-add-template"> |
| <h3 class="xos-detail-title">Add Object: <%= modelName %></h3> |
| <form> |
| <table>
|
| <% _.each(addFields, function(fieldName) { %>
|
| <tr><td><%= fieldName %>
|
| <% if (fieldName in foreignFields) { %>
|
| <td><%= idToSelect(fieldName, window[fieldName], foreignFields[fieldName], "humanReadableName") %></td>
|
| <% } else if (inputType[fieldName] == "checkbox") { %>
|
| <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %>></td>
|
| <% } else { %>
|
| <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"></td>
|
| <% } %>
|
| </tr>
|
| <% }); %>
|
| <%= xosInlineDetailButtonsTemplate() %>
|
| </table>
|
| </form>
|
| </script> |
| |
| <script type="text/template" id="xos-detail-template"> |
| <h3 class="xos-detail-title">Add Object: <%= modelName %></h3> |
| <form> |
| <table>
|
| <% console.log(model); _.each(detailFields, function(fieldName) { %>
|
| <tr><td><%= fieldName %>
|
| <% if (fieldName in foreignFields) { %>
|
| <td><%= idToSelect(fieldName, window[fieldName], foreignFields[fieldName], "humanReadableName") %></td>
|
| <% } else if (inputType[fieldName] == "checkbox") { %>
|
| <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %>></td>
|
| <% } else { %>
|
| <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"></td>
|
| <% } %>
|
| </tr>
|
| <% }); %>
|
| <%= xosInlineDetailButtonsTemplate() %>
|
| </table>
|
| </form>
|
| </script> |
| |
| <!-- Deployment --> |
| |
| <script type="text/template" id="xosAdmin-deployment-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>backend</th> |
| <th>admin_tenant</th> |
| <th># sites</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| |
| <script type="text/template" id="xosAdmin-deployment-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= backend_type %></td> |
| <td><%= admin_tenant %></td> |
| <td><%= typeof sites != 'undefined' && sites.length || 0 %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- Image --> |
| |
| <script type="text/template" id="xosAdmin-image-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>disk_format</th> |
| <th>container_format</th> |
| <th>path</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-image-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= disk_format %></td> |
| <td><%= container_format %></td> |
| <td><%= path %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- NetworkTemplate --> |
| |
| <script type="text/template" id="xosAdmin-networkTemplate-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>description</th> |
| <th>visibility</th> |
| <th>translation</th> |
| <th>sharedNetworkName</th> |
| <th>sharedNetworkId</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| |
| <script type="text/template" id="xosAdmin-networkTemplate-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= description %></td> |
| <td><%= visibility %></td> |
| <td><%= translation %></td> |
| <td><%= sharedNetworkName %></td> |
| <td><%= sharedNetworkId %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- Network --> |
| |
| <script type="text/template" id="xosAdmin-network-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>template</th> |
| <th>ports</th> |
| <th>labels</th> |
| <th>owner</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-network-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= idToName(template,"networkTemplates","name") %></td> |
| <td><%= ports %></td> |
| <td><%= labels %></td> |
| <td><%= idToName(owner,"slices","name") %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- NetworkSliver --> |
| |
| <script type="text/template" id="xosAdmin-networkSliver-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>network</th> |
| <th>sliver</th> |
| <th>ip</th> |
| <th>port_id</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-networkSliver-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td><%= idToName(network,"networks","name") %></td> |
| <td><%= idToName(sliver,"slivers","name") %></td> |
| <td><%= ip %></td> |
| <td><%= port_id %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- NetworkDeployment --> |
| |
| <script type="text/template" id="xosAdmin-networkDeployment-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>network</th> |
| <th>deployment</th> |
| <th>net_id</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-networkDeployment-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td><%= idToName(network,"networks","name") %></td> |
| <td><%= idToName(deployment,"deployments","name") %></td> |
| <td><%= net_id %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- Node --> |
| |
| <script type="text/template" id="xosAdmin-node-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>site</th> |
| <th>deployment</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| |
| <script type="text/template" id="xosAdmin-node-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= idToName(site,"sites","name") %></td> |
| <td><%= idToName(deployment,"deployments","name") %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- SliceRole --> |
| |
| <script type="text/template" id="xosAdmin-sliceRole-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>role</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-sliceRole-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td><%= role %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- Service --> |
| |
| <script type="text/template" id="xosAdmin-service-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>description</th> |
| <th>enabled</th> |
| <th>versionNumber</th> |
| <th>published</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| |
| <script type="text/template" id="xosAdmin-service-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= description %></td> |
| <td><%= enabled %></td> |
| <td><%= versionNumber %></td> |
| <td><%= published %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- Site --> |
| |
| <script type="text/template" id="xosAdmin-site-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>url</th> |
| <th>enabled</th> |
| <th>login_base</th> |
| <th>is_public</th> |
| <th>abbreviated_name</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-site-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= site_url %></td> |
| <td><%= enabled %></td> |
| <td><%= login_base %></td> |
| <td><%= is_public %></td> |
| <td><%= abbreviated_name %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- Slice --> |
| |
| <script type="text/template" id="xosAdmin-slice-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>enabled</th> |
| <th>omf_friendly</th> |
| <th>description</th> |
| <th>slice_url</th> |
| <th>site</th> |
| <th>max_slivers</th> |
| <th>service</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-slice-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= enabled %></td> |
| <td><%= omf_friendly %></td> |
| <td><%= description %></td> |
| <td><%= slice_url %></td> |
| <td><%= idToName(site,"sites","name") %></td> |
| <td><%= max_slivers %></td> |
| <td><%= idToName(service,"services","name") %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- SliceDeployment --> |
| |
| <script type="text/template" id="xosAdmin-sliceDeployment-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>slice</th> |
| <th>deployment</th> |
| <th>tenant_id</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-sliceDeployment-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td><%= idToName(slice,"slices","name") %></td> |
| <td><%= idToName(deployment,"deployments","name") %></td> |
| <td><%= tenant_id %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- SlicePrivilege --> |
| |
| <script type="text/template" id="xosAdmin-slicePrivilege-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>user</th> |
| <th>slice</th> |
| <th>role</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-slicePrivilege-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td><%= idToName(user,"users","username") %></td> |
| <td><%= idToName(slice,"slices","name") %></td> |
| <td><%= idToName(role,"sliceRoles","role") %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| |
| <!-- Sliver --> |
| |
| <script type="text/template" id="xosAdmin-sliver-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>name</th> |
| <th>instance_id</th> |
| <th>instance_name</th> |
| <th>image</th> |
| <th>creator</th> |
| <th>slice</th> |
| <th>node</th> |
| <th>deploymentNetwork</th> |
| <th>flavor</th> |
| <th>userData</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| |
| <script type="text/template" id="xosAdmin-sliver-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: name}) %></td> |
| <td><%= instance_id %></td> |
| <td><%= instance_name %></td> |
| <td><%= idToName(image,"images","name") %></td> |
| <td><%= idToName(creator,"users","name") %></td> |
| <td><%= idToName(slice,"slices","name") %></td> |
| <td><%= idToName(node,"nodes","name") %></td> |
| <td><%= idToName(deploymentNetwork,"deployments","name") %></td> |
| <td><%= flavor %></td> |
| <td><%= userData %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- User --> |
| |
| <script type="text/template" id="xosAdmin-user-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>username</th> |
| <th>firstname</th> |
| <th>lastname</th> |
| <th>phone</th> |
| <th>user_url</th> |
| <th>site</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| |
| <script type="text/template" id="xosAdmin-user-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: username}) %></td> |
| <td><%= firstname %></td> |
| <td><%= lastname %></td> |
| <td><%= phone %></td> |
| <td><%= user_url %></td> |
| <td><%= idToName(site,"sites","name") %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <!-- UserDeployments --> |
| |
| <script type="text/template" id="xosAdmin-userDeployment-list-template"> |
| <h3 class="xos-list-title"><%= title %></h3> |
| <%= xosListHeaderTemplate() %> |
| <table class="test-table"> |
| <thead><tr> |
| <th>id</th> |
| <th>user</th> |
| <th>deployment</th> |
| <th>kuser_id</th> |
| <th>delete</th> |
| </tr></thead> |
| <tbody></tbody> |
| </table> |
| <%= xosListFooterTemplate() %> |
| </script> |
| |
| <script type="text/template" id="xosAdmin-userDeployment-listitem-template"> |
| <td> <%= xosDetailLinkTemplate({collectionName: collectionName, id: id, text: id}) %></td> |
| <td><%= idToName(user,"users","username") %></td> |
| <td><%= idToName(deployment,"deployments","name") %></td> |
| <td><%= kuser_id %></td> |
| <td><%= xosDeleteButtonTemplate({modelName: modelName, id: id}) %></td> |
| </script> |
| |
| <script> |
| xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html()); |
| xosListHeaderTemplate = _.template($("#xos-list-header-template").html()); |
| xosListFooterTemplate = _.template($("#xos-list-footer-template").html()); |
| xosDeleteButtonTemplate = _.template($("#xos-delete-button-template").html()); |
| xosDetailLinkTemplate = _.template($("#xos-detail-link-template").html()); |
| </script> |