问:
I want to format two arraylist in form of table and save it in file using java
Hello every one I am creating test suite wer it verifies values generated in pdf document by extracting and comparing them with values generated in web-table.Now my approach to it is extract table header and table data and format them in their original table format i.e headers being headers and values placed in under correct header and save it in text file

for ref: This is from actual page and format I want

Code:
Driver Code:

```<code>package Onsight.FrameWork;

import java.util.ArrayList;
import java.util.List;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import com.github.javafaker.Faker;

import io.github.bonigarcia.wdm.WebDriverManager;
import onsight2.Pageobject.HomePage;
import onsight2.Pageobject.LoginPage;
import onsight2.Pageobject.ViewRport;

public class Webtable {

    public static void main(String[] args) throws InterruptedException {
        List<String> listoftable_row=new ArrayList<String>();
        List<String> table_header=new ArrayList<String>();
        // TODO Auto-generated method stub
        String urlString = "https://oinsightsvm1.westindia.cloudapp.azure.com:444/ctsOInsightsBMS/res/createReport.html";
        String userEmailString = "User66";
        String userPassword = "Avdhut@5201";
        String titleString;
        String textString="random";
        int pages;
        Faker faker = new Faker();
        WebDriverManager.chromedriver().setup();
        ChromeOptions options = new ChromeOptions();
        // options.addArguments("--ignore-ssl- errors=yes");
        options.addArguments("--ignore-certificate-errors");
        WebDriver driver = new ChromeDriver(options);
        driver.get(urlString);
        LoginPage loginPage = new LoginPage(driver);
        loginPage.login_username(userEmailString);
        loginPage.click0nsubmit();
        loginPage.EnterPassword(userPassword);
        loginPage.click0nsubmit();
        HomePage homePage = new HomePage(driver);
        homePage.view_report_values(textString);
        ViewRport viewRport=new ViewRport(driver);
        viewRport.view_data();
        table_header=viewRport.get_headers();
        pages=viewRport.no_of_pages();
        listoftable_row=viewRport.view_values(pages);
        for (int i = 0; i < table_header.size(); i++) {
            System.out.println(table_header.get(i)+" "+"\t");
        }
        for (String table_row:listoftable_row) {
            System.out.println(table_row+" "+ "\t");
        }

//

//

    }

}
</code>```

Page Object file:

```<code>package onsight2.Pageobject;

import java.util.ArrayList;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import onsight2.Commonutilities.BaseComponenets;

public class ViewRport extends BaseComponenets {
    WebDriver driver;
    By view_dataBy = By.xpath("//button[contains(@title,'View data')]");
    By dataBy = By.xpath("//table[@id='reportDataTable-0']/tbody/tr ");
    By teable_headingBy = By.xpath(".//div[@class='dataTables_scrollHead']//tr[@id='report-data-table-header-0']/th");
    By data_baseTableBy=By.xpath("//table[@id='reportDataTable-0']");
    By dataTable_row=By.xpath("//table[@id='reportDataTable-0']/tbody/tr");
    By next_paginateBy = By.xpath("//li[@id='reportDataTable-0_next']");
    By next_pageBy = By.xpath("//div[@id='reportDataTable-0_paginate']/ul[@class='pagination']/li[@class='paginate_button page-item active']/following-sibling::li[1]");
    By current_pageBy=By.xpath( "//div[@id='reportDataTable-0_paginate']/ul[@class='pagination']/li[@class='paginate_button page-item active']");
    List<String> listoftable_row=new ArrayList<String>();
    public ViewRport(WebDriver driver) {
        super(driver);
        this.driver = driver;
    }

    public List<String> get_headers() {
        IsVisible(teable_headingBy);
        List<WebElement> table_headerElement = driver.findElements(teable_headingBy);
        List<String> table_header=new ArrayList<String>();
        JavascriptExecutor js=(JavascriptExecutor)driver;
//      System.out.println("Total no. of headers: " + table_headerElement.size());

        System.out.println("Headers: ");
        System.err.println("========");
        for (WebElement header : table_headerElement) {
            js.executeScript("arguments[0].scrollIntoView(true);", header);
            table_header.add(header.getText());
        }
            return table_header;

    }

    public void view_data() {
        IsClickable(view_dataBy);
        WebElement view_data=driver.findElement(view_dataBy);
        view_data.click();
    }

    public List<String> view_values(int no_of_pages ) throws InterruptedException {

        int page_counter;
        String list;
        boolean flag=true;
        while (flag) {
            page_counter=Integer.parseInt(driver.findElement(current_pageBy).getText());
            if (page_counter==no_of_pages) {
                listoftable_row.addAll(test());
                break;
            } else {
                listoftable_row.addAll(test());
                IsClickable(next_pageBy);
                driver.findElement(next_pageBy).click();
//              System.out.println("in pagination"+page_counter);
                Thread.sleep(5000);
            }
        }
        // page_counter=Integer.parseInt(driver.findElement(current_pageBy).getText());
//      for (int i = 1; i <= no_of_pages    ; i++) {
//          listoftable_row.addAll(test());
//          IsClickable(next_pageBy);
//
//          driver.findElement(next_pageBy).click();
//          System.out.println("in pagination"+i);
////            listoftable_row.add(list);
//
////            test();
////            listoftable_row.add(list);
////            System.out.println(list);
//          Thread.sleep(5000);
//
//      }

//          for (int i = 0; i < listoftable_row.size(); i++) {
//              System.out.println(listoftable_row.get(i));
//          }
return listoftable_row;
    }

    public int no_of_pages() {
        IsClickable(next_paginateBy);
        WebElement nextBtn = driver.findElement(next_paginateBy);
        if (!nextBtn.getAttribute("class").contains("disabled")) {
        int maxNum = Integer.parseInt(driver.findElement(By.xpath("//li[@id='reportDataTable-0_next']/preceding-sibling::li[1]")).getText());
        return maxNum;
        }
            return 1;}
public List<String> test() {
    List<String> listoftable_row2=new ArrayList<String>();
    String statuString;
    IsVisible(data_baseTableBy);
    WebElement dataTablebasElement=driver.findElement(data_baseTableBy);
    List<WebElement> dataTable_roWebElement=driver.findElements(dataTable_row);
    for (int i=0;i<dataTable_roWebElement.size();i++) {
//  System.out.println(dataTable_roWebElement.get(i).getText());
    listoftable_row2.add(dataTable_roWebElement.get(i).getText());

    }
//  System.out.println(listoftable_row2);
//  return listoftable_row2;
    return listoftable_row2;

}

}
</code>```

Console O/P:

Table Header:

```<code>SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
Starting ChromeDriver 108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016}) on port 28832
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Dec 21, 2022 7:48:02 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
WARNING: Unable to find an exact match for CDP version 108, so returning the closest version found: 107
Headers:
========
TIMESTAMP
SOURCE NAME
SOURCE STATE
ACK STATE
MESSAGE TEXT
LAST NOTES
ALL NOTES
ALARM VALUE
LOW LIMIT
</code>```

Table Body:

```09-12-22 06:07:42 Bldg4_Flr3_AHU_4_Trip Normal Unacked
> Bldg4_Flr3_AHU_4_Trip has normalised - - true -    09-12-22 06:07:42
> Bldg4_Flr3_AHU_4_FilterSts Normal Unacked Bldg4_Flr3_AHU_4_FilterSts
> has normalised - - true -      09-12-22 06:07:42 Bldg3_Flr3_AHU_4_Trip
> Normal Unacked Bldg3_Flr3_AHU_4_Trip has normalised - - true -
> 09-12-22 06:07:42 Bldg3_Flr3_AHU_4_FilterSts Normal Unacked
> Bldg3_Flr3_AHU_4_FilterSts has normalised - - true -   09-12-22
> 06:08:41 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised -
> - true -   09-12-22 06:09:58 Bldg1_Chiller1_InTemp Normal Unacked - - 10.10 -      09-12-22 06:10:14 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -      09-12-22 06:11:32
> Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has normalised
> - - true -     09-12-22 06:13:46 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -      09-12-22 06:13:46
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 06:15:15 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 06:17:51 Bldg1_Flr1_AHU_1_FilterSts Normal Unacked
> Bldg1_Flr1_AHU_1_FilterSts has normalised - - true -   09-12-22
> 06:19:19 Bldg1_Flr1_CRAC_1_SpaceT Normal Unacked
> Bldg1_Flr1_CRAC_1_SpaceT has normalised - - 28.83 19.0 °C      09-12-22
> 06:19:19 Bldg1_Flr1_CRAC_1_SpaceRh Normal Unacked
> Bldg1_Flr1_CRAC_1_SpaceRh has normalised - - 55.63 40.0 %RH    09-12-22
> 06:19:31 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 06:20:16 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 06:21:33 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 06:21:48 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 06:21:48
> Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has
> normalised - - true -      09-12-22 06:23:43 Bldg1_Flr1_FAS Normal
> Unacked Bldg1_Flr1_FAS has normalised - - true -   09-12-22 06:25:17
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 06:29:13 Bldg1_Flr1_CRAC_2_FilterSts
> Normal Unacked Bldg1_Flr1_CRAC_2_FilterSts has normalised - - true -
> 09-12-22 06:29:13 Bldg1_Flr1_CRAC_1_FilterSts Normal Unacked
> Bldg1_Flr1_CRAC_1_FilterSts has normalised - - true -      09-12-22
> 06:29:13 Bldg1_Flr1_AHU_2_FilterSts Normal Unacked
> Bldg1_Flr1_AHU_2_FilterSts has normalised - - true -   09-12-22
> 06:29:13 Bldg1_Flr2_CRAC_3_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_3_FilterSts has normalised - - true -      09-12-22
> 06:29:13 Bldg1_Flr2_CRAC_4_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_4_FilterSts has normalised - - true -      09-12-22
> 06:29:50 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip
> has normalised - - true -      09-12-22 06:29:50 Bldg1_Flr1_FCU_FilterSts
> Normal Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -
> 09-12-22 06:30:18 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 06:31:34
> Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has normalised
> - - true -     09-12-22 06:33:58 Bldg1_Chiller1_InTemp Normal Unacked - - 10.19 -      09-12-22 06:35:16 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 06:35:19 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 06:37:51 Bldg1_Flr1_FCU_FilterSts
> Normal Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -
> 09-12-22 06:37:51 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 06:38:44
> Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised - - true -
>    09-12-22 06:40:20 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 06:41:35
> Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has normalised
> - - true -     09-12-22 06:45:21 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -      09-12-22 06:45:29
> Bldg1_Chiller1_InTemp Normal Unacked - - 10.12 -   09-12-22 06:45:53
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 06:45:53 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 06:49:28 Bldg1_Chiller1_InTemp Normal Unacked - - 10.09 -      09-12-22
> 06:50:23 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 06:51:36 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 06:53:45 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has
> normalised - - true -      09-12-22 06:53:54 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 06:53:54 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 06:55:24
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 06:56:16 Bldg1_Flr1_AHU_1_SpaceT
> Normal Unacked Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0
> °C     09-12-22 06:59:05 Flr1_Area1_SD6_Alm Normal Unacked - - true -
> 09-12-22 06:59:05 Flr1_Area1_SD5_Alm Normal Unacked - - true -
> 09-12-22 06:59:05 Flr1_Area1_SD4_Alm Normal Unacked - - true -
> 09-12-22 07:00:00 Bldg1_Flr6_AHU32_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 07:00:26 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 07:00:36
> VAV1_DamperStuckAlert Normal Unacked - - true -    09-12-22 07:00:41
> Bldg1_Flr3_AHU1_ValveStuckAlert Normal Unacked - - true -      09-12-22
> 07:00:41 Bldg1_Flr3_AHU2_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:43 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:44 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:47 Bldg1_Flr4_AHU11_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 07:00:48 Bldg1_Flr4_AHU12_ValveStuckAlert Normal
> Unacked - - true -     09-12-22 07:00:49 VAV1_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 07:00:50 VAV2_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 07:00:53
> Bldg1_Flr5_AHU21_ValveStuckAlert Normal Unacked - - true -     09-12-22
> 07:00:54 Bldg1_Flr5_AHU22_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:56 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:56 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:59 Bldg1_Flr6_AHU31_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 07:01:37 Bldg1_Flr1_FCU_Trip Normal Unacked
> Bldg1_Flr1_FCU_Trip has normalised - - true -      09-12-22 07:01:56
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 07:01:56 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 07:04:28 Bldg1_Chiller1_InTemp Normal Unacked - - 10.10 -      09-12-22
> 07:05:27 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:07:20 Bldg1_Flr1_AHU_2_SpaceT
> Offnormal Unacked Bldg1_Flr1_AHU_2_SpaceT has crossed low limit - -
> 18.33 19.0 °C      09-12-22 07:08:18 Bldg1_Flr1_AHU_1_RaRh Offnormal Unacked Bldg1_Flr1_AHU_1_RaRh has crossed low limit - - 39.22 40.0 %RH
>    09-12-22 07:08:19 Bldg2_Flr3_VAV_2_SpaceRh Offnormal Unacked
> Bldg2_Flr3_VAV_2_SpaceRh has crossed low limit - - 39.06 40.0 %RH
> 09-12-22 07:08:48 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has
> normalised - - true -      09-12-22 07:08:58 Bldg1_Chiller1_InTemp Normal
> Unacked - - 10.28 -    09-12-22 07:09:03 Flr1_Area1_SD2_Alm Normal
> Unacked - - true -     09-12-22 07:09:03 Flr1_Area1_SD3_Alm Normal
> Unacked - - true -     09-12-22 07:09:57 Bldg1_Flr1_FCU_FilterSts Normal
> Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22
> 07:09:57 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip
> has normalised - - true -      09-12-22 07:10:29 Bldg1_Flr2_AHU_3_Trip
> Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -
> 09-12-22 07:10:58 Cond_DeltaT Normal Unacked - - 5.70 -    09-12-22
> 07:10:58 KW_Ton_CH1 Normal Unacked - - 1.70 -      09-12-22 07:11:21
> Bldg2_Flr3_VAV_1_SpaceDP Normal Unacked Bldg2_Flr3_VAV_1_SpaceDP has
> normalised - - 40.00 50.0 Pa   09-12-22 07:11:21
> Bldg2_Flr3_VAV_1_SpaceT Normal Unacked Bldg2_Flr3_VAV_1_SpaceT has
> normalised - - 17.00 19.0 °C   09-12-22 07:11:38 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 07:12:01 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 07:13:58 Bldg1_Chiller1_InTemp Normal Unacked - - 10.22 -      09-12-22
> 07:15:30 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:17:58 Bldg1_Flr1_FCU_FilterSts
> Normal Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -
> 09-12-22 07:17:58 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 07:20:31
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 07:21:39 Bldg1_Flr1_FCU_Trip Normal
> Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -      09-12-22
> 07:23:49 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised -
> - true -   09-12-22 07:25:33 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -      09-12-22 07:25:59
> Bldg1_Chiller1_InTemp Normal Unacked - - 10.34 -   09-12-22 07:25:59
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 07:25:59 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 07:27:46 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 07:30:34 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:31:41 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 07:34:01 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 07:34:01
> Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has
> normalised - - true -      09-12-22 07:35:35 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 07:36:36 VAV1_Starving Normal Unacked - - true -   09-12-22 07:36:37
> VAV2_Starving Normal Unacked - - true -    09-12-22 07:36:38
> VAV3_Starving Normal Unacked - - true -    09-12-22 07:36:39
> VAV4_Starving Normal Unacked - - true -    09-12-22 07:36:44
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:44
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:45
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:46
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:50
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:51
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:51
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:52
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:56
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:57
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:57
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:58
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:37:21
> Bldg1_Flr2_CRAC_3_SpaceDP Offnormal Unacked Bldg1_Flr2_CRAC_3_SpaceDP
> has crossed low limit - - 41.65 50.0 Pa    09-12-22 07:37:21
> Bldg1_Flr2_CRAC_3_SpaceT Offnormal Unacked Bldg1_Flr2_CRAC_3_SpaceT
> has crossed low limit - - 17.13 19.0 °C    09-12-22 07:38:50
> Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised - - true -
>    09-12-22 07:39:14 Bldg1_Flr1_AHU_2_FilterSts Normal Unacked
> Bldg1_Flr1_AHU_2_FilterSts has normalised - - true -   09-12-22
> 07:39:14 Bldg1_Flr2_CRAC_4_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_4_FilterSts has normalised - - true -      09-12-22
> 07:39:14 Bldg1_Flr1_CRAC_2_FilterSts Normal Unacked
> Bldg1_Flr1_CRAC_2_FilterSts has normalised - - true -      09-12-22
> 07:39:14 Bldg1_Flr1_CRAC_1_FilterSts Normal Unacked
> Bldg1_Flr1_CRAC_1_FilterSts has normalised - - true -      09-12-22
> 07:39:14 Bldg1_Flr2_CRAC_3_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_3_FilterSts has normalised - - true -      09-12-22
> 07:40:36 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:41:43 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 07:42:02 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 07:42:02
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 07:45:38 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 07:46:29 Bldg1_Chiller1_InTemp Normal Unacked - - 10.07 -      09-12-22
> 07:48:46 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 07:50:04 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 07:50:04
> Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has
> normalised - - true -      09-12-22 07:50:39 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 07:51:44 Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has
> normalised - - true -      09-12-22 07:53:52 Bldg1_Flr1_FAS Normal
> Unacked Bldg1_Flr1_FAS has normalised - - true -   09-12-22 07:55:40
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 07:56:58 Bldg4_Flr3_AHU_4_SpaceT
> Offnormal Unacked Bldg4_Flr3_AHU_4_SpaceT has crossed hi limit - -
> 25.46 19.0 °C      09-12-22 07:58:05 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -      09-12-22 07:58:05
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 08:00:00
> Bldg1_Flr6_AHU32_ValveStuckAlert Normal Unacked - - true -     09-12-22
> 08:00:00 Bldg1_Flr6_AHU33_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:01 Bldg1_Flr6_AHU34_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 08:00:36 VAV1_DamperStuckAlert Normal Unacked - -
> true -     09-12-22 08:00:41 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 08:00:41
> Bldg1_Flr3_AHU1_ValveStuckAlert Normal Unacked - - true -      09-12-22
> 08:00:41 Bldg1_Flr3_AHU2_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:43 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:44 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:47 Bldg1_Flr4_AHU11_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 08:00:48 Bldg1_Flr4_AHU12_ValveStuckAlert Normal
> Unacked - - true -     09-12-22 08:00:50 VAV1_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 08:00:50 VAV2_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 08:00:53
> Bldg1_Flr5_AHU21_ValveStuckAlert Normal Unacked - - true -     09-12-22
> 08:00:54 Bldg1_Flr5_AHU22_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:56 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:56 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:59 Bldg1_Flr6_AHU31_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 08:01:45 Bldg1_Flr1_FCU_Trip Normal Unacked
> Bldg1_Flr1_FCU_Trip has normalised - - true -      09-12-22 08:04:32
> Bldg1_Flr1_AHU_1_SpaceT Normal Unacked Bldg1_Flr1_AHU_1_SpaceT has
> normalised - - 26.00 19.0 °C   09-12-22 08:05:43 Bldg1_Flr2_AHU_3_Trip
> Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -
> 09-12-22 08:06:07 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 08:06:07
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 08:07:52 Bldg1_Flr1_AHU_1_FilterSts
> Normal Unacked Bldg1_Flr1_AHU_1_FilterSts has normalised - - true -
> 09-12-22 08:08:53 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has
> normalised - - true -      09-12-22 08:10:44 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 08:11:46 Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has
> normalised - - true -      09-12-22 08:14:08 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 08:14:08 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 08:15:45
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 08:15:59 KW_Ton_CH1 Normal Unacked -
> - 1.70 -   09-12-22 08:15:59 Cond_DeltaT Normal Unacked - - 5.70 -     09-12-22 08:17:41 Bldg2_Flr3_VAV_1_Trip Normal Unacked
> Bldg2_Flr3_VAV_1_Trip has normalised - - true -    09-12-22 08:17:41
> Bldg2_Flr3_VAV_1_FilterSts Normal Unacked Bldg2_Flr3_VAV_1_FilterSts
> has normalised - - true -      09-12-22 08:17:41 Bldg2_Flr3_VAV_4_Trip
> Normal Unacked Bldg2_Flr3_VAV_4_Trip has normalised - - true -
> 09-12-22 08:17:41 Bldg2_Flr3_VAV_2_Trip Normal Unacked
> Bldg2_Flr3_VAV_2_Trip has normalised - - true -    09-12-22 08:17:41
> Bldg2_Flr3_VAV_3_Trip Normal Unacked Bldg2_Flr3_VAV_3_Trip has
> normalised - - true -      09-12-22 08:17:41 Bldg2_Flr3_VAV_4_FilterSts
> Normal Unacked Bldg2_Flr3_VAV_4_FilterSts has normalised - - true -
> 09-12-22 08:17:41 Bldg2_Flr3_VAV_3_FilterSts Normal Unacked
> Bldg2_Flr3_VAV_3_FilterSts has normalised - - true -   09-12-22
> 08:17:41 Bldg2_Flr3_VAV_5_Trip Normal Unacked Bldg2_Flr3_VAV_5_Trip
> has normalised - - true -      09-12-22 08:17:41
> Bldg2_Flr3_AHU_4_FilterSts Normal Unacked Bldg2_Flr3_AHU_4_FilterSts
> has normalised - - true -      09-12-22 08:17:41
> Bldg2_Flr3_VAV_2_FilterSts Normal Unacked Bldg2_Flr3_VAV_2_FilterSts
> has normalised - - true -      09-12-22 08:17:41
> Bldg2_Flr3_VAV_5_FilterSts Normal Unacked Bldg2_Flr3_VAV_5_FilterSts
> has normalised - - true -      09-12-22 08:17:41 Bldg2_Flr3_AHU_4_Trip
> Normal Unacked Bldg2_Flr3_AHU_4_Trip has normalised - - true -
> 09-12-22 08:17:43 Bldg3_Flr3_AHU_4_Trip Normal Unacked
> Bldg3_Flr3_AHU_4_Trip has normalised - - true -    09-12-22 08:17:43
> Bldg4_Flr3_AHU_4_Trip Normal Unacked Bldg4_Flr3_AHU_4_Trip has
> normalised - - true -      09-12-22 08:17:43 Bldg3_Flr3_AHU_4_FilterSts
> Normal Unacked Bldg3_Flr3_AHU_4_FilterSts has normalised - - true -
> 09-12-22 08:17:43 Bldg4_Flr3_AHU_4_FilterSts Normal Unacked
> Bldg4_Flr3_AHU_4_FilterSts has normalised - - true -   09-12-22
> 08:19:30 Flr1_Area1_SD5_Alm Normal Unacked - - true -      09-12-22
> 08:19:30 Flr1_Area1_SD4_Alm Normal Unacked - - true -      09-12-22
> 08:19:30 Flr1_Area1_SD6_Alm Normal Unacked - - true -      09-12-22
> 08:20:17 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 08:20:47 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 08:20:58 Bldg1_Chiller1_InTemp
> Normal Unacked - - 10.28 -     09-12-22 08:21:47 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 08:22:09 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 08:22:09
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 08:23:54 Bldg1_Flr1_FAS Normal
> Unacked Bldg1_Flr1_FAS has normalised - - true -   09-12-22 08:24:04
> Flr1_Area1_SD2_Alm Normal Unacked - - true -
```

Body:
Hello every one I am creating test suite wer it verifies values generated in pdf document by extracting and comparing them with values generated in web-table.Now my approach to it is extract table header and table data and format them in their original table format i.e headers being headers and values placed in under correct header and save it in text file

for ref: This is from actual page and format I want

Code:
Driver Code:

package Onsight.FrameWork;

import java.util.ArrayList;
import java.util.List;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import com.github.javafaker.Faker;

import io.github.bonigarcia.wdm.WebDriverManager;
import onsight2.Pageobject.HomePage;
import onsight2.Pageobject.LoginPage;
import onsight2.Pageobject.ViewRport;

public class Webtable {

    public static void main(String[] args) throws InterruptedException {
        List<String> listoftable_row=new ArrayList<String>();
        List<String> table_header=new ArrayList<String>();
        // TODO Auto-generated method stub
        String urlString = "https://oinsightsvm1.westindia.cloudapp.azure.com:444/ctsOInsightsBMS/res/createReport.html";
        String userEmailString = "User66";
        String userPassword = "Avdhut@5201";
        String titleString;
        String textString="random";
        int pages;
        Faker faker = new Faker();
        WebDriverManager.chromedriver().setup();
        ChromeOptions options = new ChromeOptions();
        // options.addArguments("--ignore-ssl- errors=yes");
        options.addArguments("--ignore-certificate-errors");
        WebDriver driver = new ChromeDriver(options);
        driver.get(urlString);
        LoginPage loginPage = new LoginPage(driver);
        loginPage.login_username(userEmailString);
        loginPage.click0nsubmit();
        loginPage.EnterPassword(userPassword);
        loginPage.click0nsubmit();
        HomePage homePage = new HomePage(driver);
        homePage.view_report_values(textString);
        ViewRport viewRport=new ViewRport(driver);
        viewRport.view_data();
        table_header=viewRport.get_headers();
        pages=viewRport.no_of_pages();
        listoftable_row=viewRport.view_values(pages);
        for (int i = 0; i < table_header.size(); i++) {
            System.out.println(table_header.get(i)+" "+"\t");
        }
        for (String table_row:listoftable_row) {
            System.out.println(table_row+" "+ "\t");
        }

//

//

    }

}

Page Object file:

package onsight2.Pageobject;

import java.util.ArrayList;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import onsight2.Commonutilities.BaseComponenets;

public class ViewRport extends BaseComponenets {
    WebDriver driver;
    By view_dataBy = By.xpath("//button[contains(@title,'View data')]");
    By dataBy = By.xpath("//table[@id='reportDataTable-0']/tbody/tr ");
    By teable_headingBy = By.xpath(".//div[@class='dataTables_scrollHead']//tr[@id='report-data-table-header-0']/th");
    By data_baseTableBy=By.xpath("//table[@id='reportDataTable-0']");
    By dataTable_row=By.xpath("//table[@id='reportDataTable-0']/tbody/tr");
    By next_paginateBy = By.xpath("//li[@id='reportDataTable-0_next']");
    By next_pageBy = By.xpath("//div[@id='reportDataTable-0_paginate']/ul[@class='pagination']/li[@class='paginate_button page-item active']/following-sibling::li[1]");
    By current_pageBy=By.xpath( "//div[@id='reportDataTable-0_paginate']/ul[@class='pagination']/li[@class='paginate_button page-item active']");
    List<String> listoftable_row=new ArrayList<String>();
    public ViewRport(WebDriver driver) {
        super(driver);
        this.driver = driver;
    }

    public List<String> get_headers() {
        IsVisible(teable_headingBy);
        List<WebElement> table_headerElement = driver.findElements(teable_headingBy);
        List<String> table_header=new ArrayList<String>();
        JavascriptExecutor js=(JavascriptExecutor)driver;
//      System.out.println("Total no. of headers: " + table_headerElement.size());

        System.out.println("Headers: ");
        System.err.println("========");
        for (WebElement header : table_headerElement) {
            js.executeScript("arguments[0].scrollIntoView(true);", header);
            table_header.add(header.getText());
        }
            return table_header;

    }

    public void view_data() {
        IsClickable(view_dataBy);
        WebElement view_data=driver.findElement(view_dataBy);
        view_data.click();
    }

    public List<String> view_values(int no_of_pages ) throws InterruptedException {

        int page_counter;
        String list;
        boolean flag=true;
        while (flag) {
            page_counter=Integer.parseInt(driver.findElement(current_pageBy).getText());
            if (page_counter==no_of_pages) {
                listoftable_row.addAll(test());
                break;
            } else {
                listoftable_row.addAll(test());
                IsClickable(next_pageBy);
                driver.findElement(next_pageBy).click();
//              System.out.println("in pagination"+page_counter);
                Thread.sleep(5000);
            }
        }
        // page_counter=Integer.parseInt(driver.findElement(current_pageBy).getText());
//      for (int i = 1; i <= no_of_pages    ; i++) {
//          listoftable_row.addAll(test());
//          IsClickable(next_pageBy);
//
//          driver.findElement(next_pageBy).click();
//          System.out.println("in pagination"+i);
////            listoftable_row.add(list);
//
////            test();
////            listoftable_row.add(list);
////            System.out.println(list);
//          Thread.sleep(5000);
//
//      }

//          for (int i = 0; i < listoftable_row.size(); i++) {
//              System.out.println(listoftable_row.get(i));
//          }
return listoftable_row;
    }

    public int no_of_pages() {
        IsClickable(next_paginateBy);
        WebElement nextBtn = driver.findElement(next_paginateBy);
        if (!nextBtn.getAttribute("class").contains("disabled")) {
        int maxNum = Integer.parseInt(driver.findElement(By.xpath("//li[@id='reportDataTable-0_next']/preceding-sibling::li[1]")).getText());
        return maxNum;
        }
            return 1;}
public List<String> test() {
    List<String> listoftable_row2=new ArrayList<String>();
    String statuString;
    IsVisible(data_baseTableBy);
    WebElement dataTablebasElement=driver.findElement(data_baseTableBy);
    List<WebElement> dataTable_roWebElement=driver.findElements(dataTable_row);
    for (int i=0;i<dataTable_roWebElement.size();i++) {
//  System.out.println(dataTable_roWebElement.get(i).getText());
    listoftable_row2.add(dataTable_roWebElement.get(i).getText());

    }
//  System.out.println(listoftable_row2);
//  return listoftable_row2;
    return listoftable_row2;

}

}

Console O/P:

Table Header:

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
Starting ChromeDriver 108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016}) on port 28832
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Dec 21, 2022 7:48:02 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
WARNING: Unable to find an exact match for CDP version 108, so returning the closest version found: 107
Headers:
========
TIMESTAMP
SOURCE NAME
SOURCE STATE
ACK STATE
MESSAGE TEXT
LAST NOTES
ALL NOTES
ALARM VALUE
LOW LIMIT

Table Body:

09-12-22 06:07:42 Bldg4_Flr3_AHU_4_Trip Normal Unacked
> Bldg4_Flr3_AHU_4_Trip has normalised - - true -    09-12-22 06:07:42
> Bldg4_Flr3_AHU_4_FilterSts Normal Unacked Bldg4_Flr3_AHU_4_FilterSts
> has normalised - - true -      09-12-22 06:07:42 Bldg3_Flr3_AHU_4_Trip
> Normal Unacked Bldg3_Flr3_AHU_4_Trip has normalised - - true -
> 09-12-22 06:07:42 Bldg3_Flr3_AHU_4_FilterSts Normal Unacked
> Bldg3_Flr3_AHU_4_FilterSts has normalised - - true -   09-12-22
> 06:08:41 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised -
> - true -   09-12-22 06:09:58 Bldg1_Chiller1_InTemp Normal Unacked - - 10.10 -      09-12-22 06:10:14 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -      09-12-22 06:11:32
> Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has normalised
> - - true -     09-12-22 06:13:46 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -      09-12-22 06:13:46
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 06:15:15 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 06:17:51 Bldg1_Flr1_AHU_1_FilterSts Normal Unacked
> Bldg1_Flr1_AHU_1_FilterSts has normalised - - true -   09-12-22
> 06:19:19 Bldg1_Flr1_CRAC_1_SpaceT Normal Unacked
> Bldg1_Flr1_CRAC_1_SpaceT has normalised - - 28.83 19.0 °C      09-12-22
> 06:19:19 Bldg1_Flr1_CRAC_1_SpaceRh Normal Unacked
> Bldg1_Flr1_CRAC_1_SpaceRh has normalised - - 55.63 40.0 %RH    09-12-22
> 06:19:31 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 06:20:16 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 06:21:33 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 06:21:48 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 06:21:48
> Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has
> normalised - - true -      09-12-22 06:23:43 Bldg1_Flr1_FAS Normal
> Unacked Bldg1_Flr1_FAS has normalised - - true -   09-12-22 06:25:17
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 06:29:13 Bldg1_Flr1_CRAC_2_FilterSts
> Normal Unacked Bldg1_Flr1_CRAC_2_FilterSts has normalised - - true -
> 09-12-22 06:29:13 Bldg1_Flr1_CRAC_1_FilterSts Normal Unacked
> Bldg1_Flr1_CRAC_1_FilterSts has normalised - - true -      09-12-22
> 06:29:13 Bldg1_Flr1_AHU_2_FilterSts Normal Unacked
> Bldg1_Flr1_AHU_2_FilterSts has normalised - - true -   09-12-22
> 06:29:13 Bldg1_Flr2_CRAC_3_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_3_FilterSts has normalised - - true -      09-12-22
> 06:29:13 Bldg1_Flr2_CRAC_4_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_4_FilterSts has normalised - - true -      09-12-22
> 06:29:50 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip
> has normalised - - true -      09-12-22 06:29:50 Bldg1_Flr1_FCU_FilterSts
> Normal Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -
> 09-12-22 06:30:18 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 06:31:34
> Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has normalised
> - - true -     09-12-22 06:33:58 Bldg1_Chiller1_InTemp Normal Unacked - - 10.19 -      09-12-22 06:35:16 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 06:35:19 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 06:37:51 Bldg1_Flr1_FCU_FilterSts
> Normal Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -
> 09-12-22 06:37:51 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 06:38:44
> Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised - - true -
>    09-12-22 06:40:20 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 06:41:35
> Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has normalised
> - - true -     09-12-22 06:45:21 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -      09-12-22 06:45:29
> Bldg1_Chiller1_InTemp Normal Unacked - - 10.12 -   09-12-22 06:45:53
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 06:45:53 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 06:49:28 Bldg1_Chiller1_InTemp Normal Unacked - - 10.09 -      09-12-22
> 06:50:23 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 06:51:36 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 06:53:45 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has
> normalised - - true -      09-12-22 06:53:54 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 06:53:54 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 06:55:24
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 06:56:16 Bldg1_Flr1_AHU_1_SpaceT
> Normal Unacked Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0
> °C     09-12-22 06:59:05 Flr1_Area1_SD6_Alm Normal Unacked - - true -
> 09-12-22 06:59:05 Flr1_Area1_SD5_Alm Normal Unacked - - true -
> 09-12-22 06:59:05 Flr1_Area1_SD4_Alm Normal Unacked - - true -
> 09-12-22 07:00:00 Bldg1_Flr6_AHU32_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 07:00:26 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 07:00:36
> VAV1_DamperStuckAlert Normal Unacked - - true -    09-12-22 07:00:41
> Bldg1_Flr3_AHU1_ValveStuckAlert Normal Unacked - - true -      09-12-22
> 07:00:41 Bldg1_Flr3_AHU2_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:43 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:44 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:47 Bldg1_Flr4_AHU11_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 07:00:48 Bldg1_Flr4_AHU12_ValveStuckAlert Normal
> Unacked - - true -     09-12-22 07:00:49 VAV1_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 07:00:50 VAV2_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 07:00:53
> Bldg1_Flr5_AHU21_ValveStuckAlert Normal Unacked - - true -     09-12-22
> 07:00:54 Bldg1_Flr5_AHU22_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:56 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:56 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 07:00:59 Bldg1_Flr6_AHU31_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 07:01:37 Bldg1_Flr1_FCU_Trip Normal Unacked
> Bldg1_Flr1_FCU_Trip has normalised - - true -      09-12-22 07:01:56
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 07:01:56 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 07:04:28 Bldg1_Chiller1_InTemp Normal Unacked - - 10.10 -      09-12-22
> 07:05:27 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:07:20 Bldg1_Flr1_AHU_2_SpaceT
> Offnormal Unacked Bldg1_Flr1_AHU_2_SpaceT has crossed low limit - -
> 18.33 19.0 °C      09-12-22 07:08:18 Bldg1_Flr1_AHU_1_RaRh Offnormal Unacked Bldg1_Flr1_AHU_1_RaRh has crossed low limit - - 39.22 40.0 %RH
>    09-12-22 07:08:19 Bldg2_Flr3_VAV_2_SpaceRh Offnormal Unacked
> Bldg2_Flr3_VAV_2_SpaceRh has crossed low limit - - 39.06 40.0 %RH
> 09-12-22 07:08:48 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has
> normalised - - true -      09-12-22 07:08:58 Bldg1_Chiller1_InTemp Normal
> Unacked - - 10.28 -    09-12-22 07:09:03 Flr1_Area1_SD2_Alm Normal
> Unacked - - true -     09-12-22 07:09:03 Flr1_Area1_SD3_Alm Normal
> Unacked - - true -     09-12-22 07:09:57 Bldg1_Flr1_FCU_FilterSts Normal
> Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22
> 07:09:57 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip
> has normalised - - true -      09-12-22 07:10:29 Bldg1_Flr2_AHU_3_Trip
> Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -
> 09-12-22 07:10:58 Cond_DeltaT Normal Unacked - - 5.70 -    09-12-22
> 07:10:58 KW_Ton_CH1 Normal Unacked - - 1.70 -      09-12-22 07:11:21
> Bldg2_Flr3_VAV_1_SpaceDP Normal Unacked Bldg2_Flr3_VAV_1_SpaceDP has
> normalised - - 40.00 50.0 Pa   09-12-22 07:11:21
> Bldg2_Flr3_VAV_1_SpaceT Normal Unacked Bldg2_Flr3_VAV_1_SpaceT has
> normalised - - 17.00 19.0 °C   09-12-22 07:11:38 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 07:12:01 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 07:13:58 Bldg1_Chiller1_InTemp Normal Unacked - - 10.22 -      09-12-22
> 07:15:30 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:17:58 Bldg1_Flr1_FCU_FilterSts
> Normal Unacked Bldg1_Flr1_FCU_FilterSts has normalised - - true -
> 09-12-22 07:17:58 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 07:20:31
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 07:21:39 Bldg1_Flr1_FCU_Trip Normal
> Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -      09-12-22
> 07:23:49 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised -
> - true -   09-12-22 07:25:33 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -      09-12-22 07:25:59
> Bldg1_Chiller1_InTemp Normal Unacked - - 10.34 -   09-12-22 07:25:59
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 07:25:59 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 07:27:46 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 07:30:34 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:31:41 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 07:34:01 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 07:34:01
> Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has
> normalised - - true -      09-12-22 07:35:35 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 07:36:36 VAV1_Starving Normal Unacked - - true -   09-12-22 07:36:37
> VAV2_Starving Normal Unacked - - true -    09-12-22 07:36:38
> VAV3_Starving Normal Unacked - - true -    09-12-22 07:36:39
> VAV4_Starving Normal Unacked - - true -    09-12-22 07:36:44
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:44
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:45
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:46
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:50
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:51
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:51
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:52
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:56
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:57
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:57
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:36:58
> VAV1_Starving Normal Unacked - - true -    09-12-22 07:37:21
> Bldg1_Flr2_CRAC_3_SpaceDP Offnormal Unacked Bldg1_Flr2_CRAC_3_SpaceDP
> has crossed low limit - - 41.65 50.0 Pa    09-12-22 07:37:21
> Bldg1_Flr2_CRAC_3_SpaceT Offnormal Unacked Bldg1_Flr2_CRAC_3_SpaceT
> has crossed low limit - - 17.13 19.0 °C    09-12-22 07:38:50
> Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has normalised - - true -
>    09-12-22 07:39:14 Bldg1_Flr1_AHU_2_FilterSts Normal Unacked
> Bldg1_Flr1_AHU_2_FilterSts has normalised - - true -   09-12-22
> 07:39:14 Bldg1_Flr2_CRAC_4_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_4_FilterSts has normalised - - true -      09-12-22
> 07:39:14 Bldg1_Flr1_CRAC_2_FilterSts Normal Unacked
> Bldg1_Flr1_CRAC_2_FilterSts has normalised - - true -      09-12-22
> 07:39:14 Bldg1_Flr1_CRAC_1_FilterSts Normal Unacked
> Bldg1_Flr1_CRAC_1_FilterSts has normalised - - true -      09-12-22
> 07:39:14 Bldg1_Flr2_CRAC_3_FilterSts Normal Unacked
> Bldg1_Flr2_CRAC_3_FilterSts has normalised - - true -      09-12-22
> 07:40:36 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 07:41:43 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 07:42:02 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 07:42:02
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 07:45:38 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 07:46:29 Bldg1_Chiller1_InTemp Normal Unacked - - 10.07 -      09-12-22
> 07:48:46 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 07:50:04 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 07:50:04
> Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has
> normalised - - true -      09-12-22 07:50:39 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 07:51:44 Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has
> normalised - - true -      09-12-22 07:53:52 Bldg1_Flr1_FAS Normal
> Unacked Bldg1_Flr1_FAS has normalised - - true -   09-12-22 07:55:40
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 07:56:58 Bldg4_Flr3_AHU_4_SpaceT
> Offnormal Unacked Bldg4_Flr3_AHU_4_SpaceT has crossed hi limit - -
> 25.46 19.0 °C      09-12-22 07:58:05 Bldg1_Flr1_AHU_2_Trip Normal Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -      09-12-22 07:58:05
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 08:00:00
> Bldg1_Flr6_AHU32_ValveStuckAlert Normal Unacked - - true -     09-12-22
> 08:00:00 Bldg1_Flr6_AHU33_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:01 Bldg1_Flr6_AHU34_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 08:00:36 VAV1_DamperStuckAlert Normal Unacked - -
> true -     09-12-22 08:00:41 Bldg1_Flr2_AHU_3_Trip Normal Unacked
> Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22 08:00:41
> Bldg1_Flr3_AHU1_ValveStuckAlert Normal Unacked - - true -      09-12-22
> 08:00:41 Bldg1_Flr3_AHU2_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:43 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:44 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:47 Bldg1_Flr4_AHU11_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 08:00:48 Bldg1_Flr4_AHU12_ValveStuckAlert Normal
> Unacked - - true -     09-12-22 08:00:50 VAV1_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 08:00:50 VAV2_DamperStuckAlert Normal
> Unacked - - true -     09-12-22 08:00:53
> Bldg1_Flr5_AHU21_ValveStuckAlert Normal Unacked - - true -     09-12-22
> 08:00:54 Bldg1_Flr5_AHU22_ValveStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:56 VAV1_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:56 VAV2_DamperStuckAlert Normal Unacked - - true -
> 09-12-22 08:00:59 Bldg1_Flr6_AHU31_ValveStuckAlert Normal Unacked - -
> true -     09-12-22 08:01:45 Bldg1_Flr1_FCU_Trip Normal Unacked
> Bldg1_Flr1_FCU_Trip has normalised - - true -      09-12-22 08:04:32
> Bldg1_Flr1_AHU_1_SpaceT Normal Unacked Bldg1_Flr1_AHU_1_SpaceT has
> normalised - - 26.00 19.0 °C   09-12-22 08:05:43 Bldg1_Flr2_AHU_3_Trip
> Normal Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -
> 09-12-22 08:06:07 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 08:06:07
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 08:07:52 Bldg1_Flr1_AHU_1_FilterSts
> Normal Unacked Bldg1_Flr1_AHU_1_FilterSts has normalised - - true -
> 09-12-22 08:08:53 Bldg1_Flr1_FAS Normal Unacked Bldg1_Flr1_FAS has
> normalised - - true -      09-12-22 08:10:44 Bldg1_Flr2_AHU_3_Trip Normal
> Unacked Bldg1_Flr2_AHU_3_Trip has normalised - - true -    09-12-22
> 08:11:46 Bldg1_Flr1_FCU_Trip Normal Unacked Bldg1_Flr1_FCU_Trip has
> normalised - - true -      09-12-22 08:14:08 Bldg1_Flr1_AHU_2_Trip Normal
> Unacked Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22
> 08:14:08 Bldg1_Flr1_FCU_FilterSts Normal Unacked
> Bldg1_Flr1_FCU_FilterSts has normalised - - true -     09-12-22 08:15:45
> Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip has
> normalised - - true -      09-12-22 08:15:59 KW_Ton_CH1 Normal Unacked -
> - 1.70 -   09-12-22 08:15:59 Cond_DeltaT Normal Unacked - - 5.70 -     09-12-22 08:17:41 Bldg2_Flr3_VAV_1_Trip Normal Unacked
> Bldg2_Flr3_VAV_1_Trip has normalised - - true -    09-12-22 08:17:41
> Bldg2_Flr3_VAV_1_FilterSts Normal Unacked Bldg2_Flr3_VAV_1_FilterSts
> has normalised - - true -      09-12-22 08:17:41 Bldg2_Flr3_VAV_4_Trip
> Normal Unacked Bldg2_Flr3_VAV_4_Trip has normalised - - true -
> 09-12-22 08:17:41 Bldg2_Flr3_VAV_2_Trip Normal Unacked
> Bldg2_Flr3_VAV_2_Trip has normalised - - true -    09-12-22 08:17:41
> Bldg2_Flr3_VAV_3_Trip Normal Unacked Bldg2_Flr3_VAV_3_Trip has
> normalised - - true -      09-12-22 08:17:41 Bldg2_Flr3_VAV_4_FilterSts
> Normal Unacked Bldg2_Flr3_VAV_4_FilterSts has normalised - - true -
> 09-12-22 08:17:41 Bldg2_Flr3_VAV_3_FilterSts Normal Unacked
> Bldg2_Flr3_VAV_3_FilterSts has normalised - - true -   09-12-22
> 08:17:41 Bldg2_Flr3_VAV_5_Trip Normal Unacked Bldg2_Flr3_VAV_5_Trip
> has normalised - - true -      09-12-22 08:17:41
> Bldg2_Flr3_AHU_4_FilterSts Normal Unacked Bldg2_Flr3_AHU_4_FilterSts
> has normalised - - true -      09-12-22 08:17:41
> Bldg2_Flr3_VAV_2_FilterSts Normal Unacked Bldg2_Flr3_VAV_2_FilterSts
> has normalised - - true -      09-12-22 08:17:41
> Bldg2_Flr3_VAV_5_FilterSts Normal Unacked Bldg2_Flr3_VAV_5_FilterSts
> has normalised - - true -      09-12-22 08:17:41 Bldg2_Flr3_AHU_4_Trip
> Normal Unacked Bldg2_Flr3_AHU_4_Trip has normalised - - true -
> 09-12-22 08:17:43 Bldg3_Flr3_AHU_4_Trip Normal Unacked
> Bldg3_Flr3_AHU_4_Trip has normalised - - true -    09-12-22 08:17:43
> Bldg4_Flr3_AHU_4_Trip Normal Unacked Bldg4_Flr3_AHU_4_Trip has
> normalised - - true -      09-12-22 08:17:43 Bldg3_Flr3_AHU_4_FilterSts
> Normal Unacked Bldg3_Flr3_AHU_4_FilterSts has normalised - - true -
> 09-12-22 08:17:43 Bldg4_Flr3_AHU_4_FilterSts Normal Unacked
> Bldg4_Flr3_AHU_4_FilterSts has normalised - - true -   09-12-22
> 08:19:30 Flr1_Area1_SD5_Alm Normal Unacked - - true -      09-12-22
> 08:19:30 Flr1_Area1_SD4_Alm Normal Unacked - - true -      09-12-22
> 08:19:30 Flr1_Area1_SD6_Alm Normal Unacked - - true -      09-12-22
> 08:20:17 Bldg1_Flr1_AHU_1_SpaceT Normal Unacked
> Bldg1_Flr1_AHU_1_SpaceT has normalised - - 26.00 19.0 °C   09-12-22
> 08:20:47 Bldg1_Flr2_AHU_3_Trip Normal Unacked Bldg1_Flr2_AHU_3_Trip
> has normalised - - true -      09-12-22 08:20:58 Bldg1_Chiller1_InTemp
> Normal Unacked - - 10.28 -     09-12-22 08:21:47 Bldg1_Flr1_FCU_Trip
> Normal Unacked Bldg1_Flr1_FCU_Trip has normalised - - true -
> 09-12-22 08:22:09 Bldg1_Flr1_AHU_2_Trip Normal Unacked
> Bldg1_Flr1_AHU_2_Trip has normalised - - true -    09-12-22 08:22:09
> Bldg1_Flr1_FCU_FilterSts Normal Unacked Bldg1_Flr1_FCU_FilterSts has
> normalised - - true -      09-12-22 08:23:54 Bldg1_Flr1_FAS Normal
> Unacked Bldg1_Flr1_FAS has normalised - - true -   09-12-22 08:24:04
> Flr1_Area1_SD2_Alm Normal Unacked - - true -


来源: stackexchange

问:
Can we get forecast on train data using DeepAR gluonts method?
I want to know the residuals value on train dataset i.e. actual value-fitted value.

I have tried with gluonts DeepAR package. It's working fine when I am training on train data and trying to predict on validation dataset. But I am unable to get the forecast value on train data.

ContentLicense: CC BY-SA 4.0


问:
How to get exceptions from list of azure app insights resources using kql?
I'm trying to form a KQL query to get exceptions logged from app insights using tags on the resources and then return that as time series data to work with Grafana alerting. I'm not sure how to create this query but here's what I have so far (retrieves app insights resources tagged with 'test'). How do I iterate over these resources to check each one for exceptions and then return that as something compatible with Grafana?


问:
put Image in cache from secur url for markdown usage
How can we put an image in browser's cache from a url with token barrer in the header to avoid some components (for example using markdown) to fetch the image automatically with a http request and get a 401 error?

Ex with angular:

```<code>                  const headers: HttpHeaders = new HttpHeaders({
                    'Authorization': `Bearer ${auth_token}`,
                  })
                  this.http.get(aSecurUrl, { headers,  responseType: 'blob'  })
                  .pipe(
                    tap( blob => {
                    //Here we need to be sure that the image from the url is in cache, then when a component will call this url he will take it from cache instead of fetching with http
                    })
                  )
                  .subscribe();
</code>```

I tryed to create an image with the url after fetching it with a http XML call containing the token barer for autentication.I was expecting that the image was loaded in cache.

Body:
How can we put an image in browser's cache from a url with token barrer in the header to avoid some components (for example using markdown) to fetch the image automatically with a http request and get a 401 error?

Ex with angular:

                  const headers: HttpHeaders = new HttpHeaders({
                    'Authorization': `Bearer ${auth_token}`,
                  })
                  this.http.get(aSecurUrl, { headers,  responseType: 'blob'  })
                  .pipe(
                    tap( blob => {
                    //Here we need to be sure that the image from the url is in cache, then when a component will call this url he will take it from cache instead of fetching with http
                    })
                  )
                  .subscribe();

I tryed to create an image with the url after fetching it with a http XML call containing the token barer for autentication.I was expecting that the image was loaded in cache.


问:
How do I convert a character in a model to a factor?
```<code>library(multcomp)
file$Substrate = as.factor(file$Substrate)
tukey=glht(lm_plant,linfct=mcp(Substrate="Tukey"))
summary(tukey)
confint(tukey)
</code>```

This is my code, but when running it gives this error.

Error in mcp2matrix(model, linfct = linfct) :  Variable(s) ‘Substrate’
of class ‘character’ is/are not contained as a factor in ‘model’.

But I just made it a factor with as.factor?
So why isn't it a factor?

I tried adding substrate as just a factor but it didn't work.

Body:
library(multcomp)
file$Substrate = as.factor(file$Substrate)
tukey=glht(lm_plant,linfct=mcp(Substrate="Tukey"))
summary(tukey)
confint(tukey)

This is my code, but when running it gives this error.

Error in mcp2matrix(model, linfct = linfct) :  Variable(s) ‘Substrate’
of class ‘character’ is/are not contained as a factor in ‘model’.

But I just made it a factor with as.factor?
So why isn't it a factor?

I tried adding substrate as just a factor but it didn't work.


问:
It shows me my post type but my pages don't
I made a directory and I wanted it to be displayed alphabetically by last name, I made it work but now you only see my custom post type and my pages don't show them...

Appreciate your help

```<code>add_action( 'pre_get_posts', 'dr_order_content' );
function dr_order_content( $query ) {
  if ( $query->is_main_query() ){
    $query->set( 'post_type', 'directorio-doctores' );
    $query->set( 'orderby', 'meta_value' );
    $query->set( 'meta_key', 'apellido' );
    $query->set( 'meta_type', 'CHAR' );
    $query->set( 'order', 'ASC' );
    }
  return $query;
}
```
`
```

Body:
I made a directory and I wanted it to be displayed alphabetically by last name, I made it work but now you only see my custom post type and my pages don't show them...

Appreciate your help

add_action( 'pre_get_posts', 'dr_order_content' );
function dr_order_content( $query ) {
  if ( $query->is_main_query() ){
    $query->set( 'post_type', 'directorio-doctores' );
    $query->set( 'orderby', 'meta_value' );
    $query->set( 'meta_key', 'apellido' );
    $query->set( 'meta_type', 'CHAR' );
    $query->set( 'order', 'ASC' );
    }
  return $query;
}
```
`


问:
Cannot save notebooks on GCP
I have a problem with saving my notebook in Vertex AI Workbench. This problem happened the second time today. I've really lost a lot of work in my notebook. Everything was fine, I saved the notebook as usual. However, after restarting the notebook, all my work had disappeared! It is really surprising that a lot of users complaining about this problem on the platform (another example). Unfortunately, no one could find a solution?

My question: How I can assure that my notebook is saved when working on GCP Vertex AI? The notebook is linked to my github account. (Unfortunately, the changes were not pushed into repository.)

Title: Cannot save notebooks on GCP


问:
Decode Result From JSON-RPC eth_call to a Smart Contract
I would like to know if web3py or another package has a function to decode the result you get when you send a call to a smart contract.
Something similar to decode_function_input or abi.decodeParameters.
I know that doing contract.functions.myFunc().call() will return the value as expected but I need to do HTTP request, sending to Infura the JSON-RPC object.
Doing
response.json() I get a json object

```<code>{
 'jsonrpc': '2.0',
 'id': 1,
 'result': *some string representing bytes*
}
</code>```

How can I transform this result field to get the same thing as what I get when running contract.functions.myFunc().call()?

Searched stackoverflow but only found answer on how to decode inputs but not outputs.

Also tried to look at the code of web3py to understand how the decoding is done there, but got lost in the hundreds of functions and the different web3._utils.abi and eth_utils.abi, etc... files.

Body:
I would like to know if web3py or another package has a function to decode the result you get when you send a call to a smart contract.
Something similar to decode_function_input or abi.decodeParameters.
I know that doing contract.functions.myFunc().call() will return the value as expected but I need to do HTTP request, sending to Infura the JSON-RPC object.
Doing
response.json() I get a json object

{
 'jsonrpc': '2.0',
 'id': 1,
 'result': *some string representing bytes*
}

How can I transform this result field to get the same thing as what I get when running contract.functions.myFunc().call()?

Searched stackoverflow but only found answer on how to decode inputs but not outputs.

Also tried to look at the code of web3py to understand how the decoding is done there, but got lost in the hundreds of functions and the different web3._utils.abi and eth_utils.abi, etc... files.


问:
C# MongoDB driver how to get data from tableId by Id form tableA
I have a problem, I just started with MongoDB driver in C# and now I have a tricky question. I have TabA where there's an Id field and I want to get a result which is a combination of the full collection from TabA plus additional result from tables ( name of each record from TabA as combination of "cart/lobId="+ TabA.lobId ).

I understand that it's a poor description, if you'll need some additional info - shoot it.

Tried to use Lookup but didn't understood how to in one request get that expected result, for now first I load all from tabA and after that foreach every item and load data based on lobId paring with "cart/lobId=" plus tabA.Id.

Update, the main problem that I can’t use simple Lookup because name of table is different for every record in tabA , and looks like that problem is not much popular unfortunately ♂


问:
Jboss5 struts1 ajax response data limited
I'm working in a system that's doing an ajax request (HTTP GET) to a struts action and is waiting for a JSON response, when the json string is small there's no problem, however when the string have more then 8k characters the json is being cut.

I've tried to increase maxHttpHeaderSize from jboss 5 but the behavior of cutting the json continue. So what do I need to configure to increase this limit of 8kb?

Thanks for the help


问:
Vite hot update only works for App.vue but not for components
I have created a fresh vue3/vite stack and noticed that the hot reload only works for the App.vue file but not for components in the components folder.
If I stop and restart "npm run dev" the updates on the component file takes effect.

I have vite 4.0.0, vue 3.2.45 and vscode 1.74.1


问:
Integrate Kubesphere 3.3 with a self-hosted GitLab instance
I would integrate Kubesphere 3.3 with a my self-hosted GitLab instance all on-premise. Is possible to change the default public gitlab code repository or add my gitlab code repository host ?
Thank's for response.

Actually not integrate.


问:
Frontend and backend can't communicate in kubernetes | Nginx and PHP-FPM
I'm porting an application based in Vue.js and php for back that is running in docker-compose. I'm trying to bring it to kubernetes. I did the basic, created the yamls for deployment and services, and put this is in an AKS service. I can reach the front, but the connections between the microservices are broken. I tried many things already but I'm stucked on that.

Frontend has a env that indicates the backend URL. In compose, the value is 'http://localhost:8001/api' and works well. When I deployed to K8s I tried with localhost, backend(kube dns name for backend service that I created), even an LoadBalancer external IP that I created for backend, but nothing works. Backend and frontend docker images has nginx.conf and backend also has php-fpm.conf configured, and seems to be ok.

Here is my frontend and backend yaml files. First I tried using backend as clusterIP and use the kubedns, but this above is the LoadBalancer service. The images are in dockerhub also.

frontend-deployment.yaml

```<code>apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: frontend
  name: frontend
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: frontend
  strategy: {}
  template:
    metadata:
      annotations:
        kompose.cmd: C:\kompose\kompose.exe convert
        kompose.version: 1.26.0 (40646f47)
      creationTimestamp: null
      labels:
        io.kompose.service: frontend
    spec:
      containers:
        - env:
            - name: VUE_APP_BACKEND_URL
              value: http://<IP from loadbalancer svc>:8001/api
          image: jvfazolo/algochallenger-frontend
          name: frontend
          ports:
            - containerPort: 80
          resources: {}
      restartPolicy: Always
status: {}
</code>```

frontend-service.yaml

```<code>apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: frontend
  name: frontend
spec:
  type: LoadBalancer
  ports:
    - port: 80
  selector:
    io.kompose.service: frontend
status:
  loadBalancer: {}
</code>```

backend-deployment.yaml

```<code>apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: backend
  name: backend
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: backend
  strategy: {}
  template:
    metadata:
      annotations:
        kompose.cmd: C:\kompose\kompose.exe convert
        kompose.version: 1.26.0 (40646f47)
      creationTimestamp: null
      labels:
        io.kompose.service: backend
    spec:
      containers:
        - env:
            - name: APP_DEBUG
              value: "true"
            - name: APP_ENV
              value: local
            - name: APP_NAME
              value: Boca
            - name: APP_URL
              value: http://<LB SVC IP Backend>
            - name: DB_CONNECTION
              value: pgsql
            - name: DB_DATABASE
              value: boca
            - name: DB_HOST
              value: db
            - name: DB_PASSWORD
              value: boca
            - name: DB_PORT
              value: "5432"
            - name: DB_USERNAME
              value: boca
            - name: LOG_CHANNEL
              value: daily
          image: jvfazolo/algochallenger-backend
          name: backend
          ports:
            - containerPort: 80
          resources: {}
      restartPolicy: Always
status: {}
</code>```

backend-servicelb.yaml

```<code>apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: backend
  name: backend
spec:
  type: LoadBalancer
  ports:
    - port: 8001
  selector:
    io.kompose.service: backend
status:
  loadBalancer: {}
</code>```

Body:
I'm porting an application based in Vue.js and php for back that is running in docker-compose. I'm trying to bring it to kubernetes. I did the basic, created the yamls for deployment and services, and put this is in an AKS service. I can reach the front, but the connections between the microservices are broken. I tried many things already but I'm stucked on that.

Frontend has a env that indicates the backend URL. In compose, the value is 'http://localhost:8001/api' and works well. When I deployed to K8s I tried with localhost, backend(kube dns name for backend service that I created), even an LoadBalancer external IP that I created for backend, but nothing works. Backend and frontend docker images has nginx.conf and backend also has php-fpm.conf configured, and seems to be ok.

Here is my frontend and backend yaml files. First I tried using backend as clusterIP and use the kubedns, but this above is the LoadBalancer service. The images are in dockerhub also.

frontend-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: frontend
  name: frontend
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: frontend
  strategy: {}
  template:
    metadata:
      annotations:
        kompose.cmd: C:\kompose\kompose.exe convert
        kompose.version: 1.26.0 (40646f47)
      creationTimestamp: null
      labels:
        io.kompose.service: frontend
    spec:
      containers:
        - env:
            - name: VUE_APP_BACKEND_URL
              value: http://<IP from loadbalancer svc>:8001/api
          image: jvfazolo/algochallenger-frontend
          name: frontend
          ports:
            - containerPort: 80
          resources: {}
      restartPolicy: Always
status: {}

frontend-service.yaml

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: frontend
  name: frontend
spec:
  type: LoadBalancer
  ports:
    - port: 80
  selector:
    io.kompose.service: frontend
status:
  loadBalancer: {}

backend-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: backend
  name: backend
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: backend
  strategy: {}
  template:
    metadata:
      annotations:
        kompose.cmd: C:\kompose\kompose.exe convert
        kompose.version: 1.26.0 (40646f47)
      creationTimestamp: null
      labels:
        io.kompose.service: backend
    spec:
      containers:
        - env:
            - name: APP_DEBUG
              value: "true"
            - name: APP_ENV
              value: local
            - name: APP_NAME
              value: Boca
            - name: APP_URL
              value: http://<LB SVC IP Backend>
            - name: DB_CONNECTION
              value: pgsql
            - name: DB_DATABASE
              value: boca
            - name: DB_HOST
              value: db
            - name: DB_PASSWORD
              value: boca
            - name: DB_PORT
              value: "5432"
            - name: DB_USERNAME
              value: boca
            - name: LOG_CHANNEL
              value: daily
          image: jvfazolo/algochallenger-backend
          name: backend
          ports:
            - containerPort: 80
          resources: {}
      restartPolicy: Always
status: {}

backend-servicelb.yaml

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: C:\kompose\kompose.exe convert
    kompose.version: 1.26.0 (40646f47)
  creationTimestamp: null
  labels:
    io.kompose.service: backend
  name: backend
spec:
  type: LoadBalancer
  ports:
    - port: 8001
  selector:
    io.kompose.service: backend
status:
  loadBalancer: {}


问:
recharts zoom data.slice is not function
```<code>const getYAxisDomain = (from, to, ref, offset) => {
  const refData = initialData.slice(from - 1, to, ref);
  let [bottom, top] = [refData[0][ref], refData[0][ref]];

  refData.forEach((d) => {
    if (d[ref] > top) top = d[ref];
    if (d[ref] < bottom) bottom = d[ref];
  });

  return [(bottom | 0) - offset, (top | 0) + offset];
};
</code>```

TypeError: initialData.slice is not a function

Body:
const getYAxisDomain = (from, to, ref, offset) => {
  const refData = initialData.slice(from - 1, to, ref);
  let [bottom, top] = [refData[0][ref], refData[0][ref]];

  refData.forEach((d) => {
    if (d[ref] > top) top = d[ref];
    if (d[ref] < bottom) bottom = d[ref];
  });

  return [(bottom | 0) - offset, (top | 0) + offset];
};

TypeError: initialData.slice is not a function


问:
VBA having column name and value down the left of the worksheet
rather than have all my column names across the top of the worksheet, I'm looking to have them down the left hand side eg in Column A. The value of that will then be in Column B.
I have used a record set which loops through and pulls the first column correctly, but I need 30 more columns to do the same with the values.

My code:

```<code>' Run the query and store the retrieved data in the recordset
Set adoRecordset = adoCommand.Execute
' Set to the first empty row
intRow = 10
' Loop through the recordset
Do While Not adoRecordset.EOF
    For rs = 0 To adoRecordset.Fields.Count - 1

        With shtData

                With .Cells(intRow, intCol + 1)

                ' Write the data to the cells
                .Cells(intRow, intCol + 1).Value = adoRecordset.Fields(intCol).Name
                .Cells(intRow, intCol + 2).Value = adoRecordset.Fields(intCol).Value

                End With

        End With
    ' Go to the next column in the record
    Next rs
    'Next intRow

    ' Go to the next row
    intRow = intRow + 1
    ' Move to the next record in the recordset
    adoRecordset.MoveNext
Loop
' Reset the recordset
Set adoRecordset = Nothing
' Reset the command
Set adoCommand = Nothing
' Closet and reset the connection
adoConnection.Close
Set adoConnection = Nothing
</code>```

Body:
rather than have all my column names across the top of the worksheet, I'm looking to have them down the left hand side eg in Column A. The value of that will then be in Column B.
I have used a record set which loops through and pulls the first column correctly, but I need 30 more columns to do the same with the values.

My code:

' Run the query and store the retrieved data in the recordset
Set adoRecordset = adoCommand.Execute
' Set to the first empty row
intRow = 10
' Loop through the recordset
Do While Not adoRecordset.EOF
    For rs = 0 To adoRecordset.Fields.Count - 1

        With shtData

                With .Cells(intRow, intCol + 1)

                ' Write the data to the cells
                .Cells(intRow, intCol + 1).Value = adoRecordset.Fields(intCol).Name
                .Cells(intRow, intCol + 2).Value = adoRecordset.Fields(intCol).Value

                End With

        End With
    ' Go to the next column in the record
    Next rs
    'Next intRow

    ' Go to the next row
    intRow = intRow + 1
    ' Move to the next record in the recordset
    adoRecordset.MoveNext
Loop
' Reset the recordset
Set adoRecordset = Nothing
' Reset the command
Set adoCommand = Nothing
' Closet and reset the connection
adoConnection.Close
Set adoConnection = Nothing


问:
deference between request.meta and request.headers In django
what is the deference between these ?

I see in the django doc that we can get content-length in meta and header atrebute in HttpResponse class.
so what is the difference between request.meta and request.headers?


问:
Java JNI native code jshortArray for audio lib/codec
Is this correct way to create native jshortArray from C char array:

```<code>size_t s;
FILE *f = fopen(argv[4], "rb");
void *b;
fseek(f, 0, SEEK_END);
s = ftell(f);
fseek(f, 0, SEEK_SET);

b = (char *)malloc(s);
fread(b, s, 1, f);
fclose(f);

jshortArray js = env->NewShortArray(s*2);
env->SetShortArrayRegion(js, 0 , s*2, (short const *)b);
</code>```

Will js contain the same content as char array?

I am working with audio library and it takes input as bytes and output will be short array (jshortArray). But I need to pass it and I assume being the right size.

Working on proprietary implementation of libspx (libspeex)

I assume that is what it takes/works:

```<code>public static native boolean nDecodeBuffer(long j12, byte[] bArr, long j13, short[] sArr);
</code>```

I am also confused .... how do JNI/Java works with codecs?

I see in Java we pass by value i.e I will pass byte array as input and get my short array hopefully with output in Java Implementation (correct me if I am wrong)

In C/C++ it would be done with pointers, I would pass output to be a pointer to my short array

Can somebody explain it also

Body:
Is this correct way to create native jshortArray from C char array:

size_t s;
FILE *f = fopen(argv[4], "rb");
void *b;
fseek(f, 0, SEEK_END);
s = ftell(f);
fseek(f, 0, SEEK_SET);

b = (char *)malloc(s);
fread(b, s, 1, f);
fclose(f);

jshortArray js = env->NewShortArray(s*2);
env->SetShortArrayRegion(js, 0 , s*2, (short const *)b);

Will js contain the same content as char array?

I am working with audio library and it takes input as bytes and output will be short array (jshortArray). But I need to pass it and I assume being the right size.

Working on proprietary implementation of libspx (libspeex)

I assume that is what it takes/works:

public static native boolean nDecodeBuffer(long j12, byte[] bArr, long j13, short[] sArr);

I am also confused .... how do JNI/Java works with codecs?

I see in Java we pass by value i.e I will pass byte array as input and get my short array hopefully with output in Java Implementation (correct me if I am wrong)

In C/C++ it would be done with pointers, I would pass output to be a pointer to my short array

Can somebody explain it also


问:
How to Upload video in android ktor client
I want to upload a video to the server but I get an error:

ّI read the file from device storage and I call a network request to upload video.

where is the problem?

get the file from storage:

```<code> override suspend fun getLocalTrips() {
        val file = storageDirectoryHandler.getBaseDirectory?.let { File(it) }
        val currentFile = file?.listFiles()?.last()?.absolutePath + "/video.mp4"
        network.uploadChunks(token = userData.firstOrNull()?.token ?: "", file = File(currentFile))
    }
</code>```

cal API to upload:

```<code>
    override suspend fun uploadChunks(token: String, file: File): NetworkUploadChunks =
        KtorModule.provideKtor.use {
            it.post("example.com/UploadChunks") {
                headers{
                    bearerAuth(token)
                }
                setBody(
                    MultiPartFormDataContent(
                        formData {
                            append("id", 3)
                            append("FileId", "3")
                            append("FileName", "chunkFile")
                            append("FileChunk", file.readBytes(), Headers.build {
                                append(HttpHeaders.ContentType, "video/mp4")

                            })
                        },
                    )
                )
            }
        }.body()
</code>```
```<code>  E  FATAL EXCEPTION: main
                                                                                Process: de.artificient.gizo, PID: 4879
                                                                                io.ktor.client.plugins.ClientRequestException: Client request(POST example.com/UploadChunks) invalid: 403 Forbidden. Text: "<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1256"><title>MZ2(1)</title></head><body><iframe src="http://10.10.34.35:80" style="width: 100%; height: 100%" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0"></iframe></body></html>

</code>```

note: Sometimes I get this error:    Failed with exception:

```<code>java.net.ProtocolException: unexpected end of stream upload file
</code>```

Body:
I want to upload a video to the server but I get an error:

ّI read the file from device storage and I call a network request to upload video.

where is the problem?

get the file from storage:

 override suspend fun getLocalTrips() {
        val file = storageDirectoryHandler.getBaseDirectory?.let { File(it) }
        val currentFile = file?.listFiles()?.last()?.absolutePath + "/video.mp4"
        network.uploadChunks(token = userData.firstOrNull()?.token ?: "", file = File(currentFile))
    }

cal API to upload:

    override suspend fun uploadChunks(token: String, file: File): NetworkUploadChunks =
        KtorModule.provideKtor.use {
            it.post("example.com/UploadChunks") {
                headers{
                    bearerAuth(token)
                }
                setBody(
                    MultiPartFormDataContent(
                        formData {
                            append("id", 3)
                            append("FileId", "3")
                            append("FileName", "chunkFile")
                            append("FileChunk", file.readBytes(), Headers.build {
                                append(HttpHeaders.ContentType, "video/mp4")

                            })
                        },
                    )
                )
            }
        }.body()

  E  FATAL EXCEPTION: main
                                                                                Process: de.artificient.gizo, PID: 4879
                                                                                io.ktor.client.plugins.ClientRequestException: Client request(POST example.com/UploadChunks) invalid: 403 Forbidden. Text: "<meta http-equiv="Content-Type" content="text/html; charset=windows-1256"><title>MZ2(1)</title>

note: Sometimes I get this error:    Failed with exception:

java.net.ProtocolException: unexpected end of stream upload file


问:
Slider is disabled when styled-components extends "react-slick-slider"
`

```<code>import React from 'react';
import Slider from 'react-slick';
import styled from 'styled-components';
import { fireStore } from '../../src/firebase';
import { collection, getDocs, query, where } from 'firebase/firestore';
import { useEffect } from 'react';
import { useState } from 'react';

// Slider setting
const settings = {
  slide: 'div',
  dots: true,
  rows: 2,
  slidePerRow: 4,
  infinite: true,
  speed: 1000,
  slidesToShow: 4,
  slidesToScroll: 4,
  autoplay: true,
  autoplaySpeed: 7500,
  vertical: false,
  arrows: true,
  dotsClass: 'slick-dots',
  dragable: 'true',
};

const StyledSlider = styled(Slider)`
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-around;
  max-width: 1100px;
  min-width: 900px;
  width: 1100px;
  height: 315px;
  margin: auto;

  & img {
    margin-bottom: 10px;
    width: 230px;
    height: 315px;
  }
`;

const Main = () => {
  const itemsRef = collection(fireStore, 'shopping_items');
  const resultQuery = query(itemsRef, where('ITEMS_SHOWMAIN', '==', 'O'));
  const [ItemsList, setItemsList] = useState([]);

  // Loading
  useEffect(() => {
    const TmpItemList = [];
    const getItems = async () => {
      const data = await getDocs(resultQuery);
      data.forEach((doc) => {
        TmpItemList.push(doc.data());
        setItemsList(TmpItemList);
      });
    };
    getItems();
  }, []);

  return (
    <div>
      <MainSlideImage />
      <SiteIntroBox />
      <h2 style={{ textAlign: 'center' }}>WEEKLY BEST ITEMS</h2>
      <p style={{
          textAlign: 'center',
          color: '#8A8989',
          marginTop: '-5px',
        }}
      >
        BEST 16 ITEMS
      </p>
      <StyledSlider {...settings}>
        {ItemsList.map((ele, idx) => (
          <div key={idx}>
            <Link to="/product">
              <img src={ele['ITEMS_IMGURL']} alt="" />
            </Link>
          </div>
        ))}
      </StyledSlider>
    </div>
  );
};

export default Main;

</code>```

`
enter image description here

It consists of 2 slide screens, and 1 slide screen consists of 2 lines with 4 items per line.
I wrote the code like above, and it worked at first. However, when I refresh the page, the slick-slider screen is not visible at all.
However, if you check the element tab, it seems that the  tag is properly inserted, but nothing is actually displayed on the screen. I would like to ask a question about this strange phenomenon.

Body:
`

import React from 'react';
import Slider from 'react-slick';
import styled from 'styled-components';
import { fireStore } from '../../src/firebase';
import { collection, getDocs, query, where } from 'firebase/firestore';
import { useEffect } from 'react';
import { useState } from 'react';

// Slider setting
const settings = {
  slide: 'div',
  dots: true,
  rows: 2,
  slidePerRow: 4,
  infinite: true,
  speed: 1000,
  slidesToShow: 4,
  slidesToScroll: 4,
  autoplay: true,
  autoplaySpeed: 7500,
  vertical: false,
  arrows: true,
  dotsClass: 'slick-dots',
  dragable: 'true',
};

const StyledSlider = styled(Slider)`
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-around;
  max-width: 1100px;
  min-width: 900px;
  width: 1100px;
  height: 315px;
  margin: auto;

  & img {
    margin-bottom: 10px;
    width: 230px;
    height: 315px;
  }
`;

const Main = () => {
  const itemsRef = collection(fireStore, 'shopping_items');
  const resultQuery = query(itemsRef, where('ITEMS_SHOWMAIN', '==', 'O'));
  const [ItemsList, setItemsList] = useState([]);

  // Loading
  useEffect(() => {
    const TmpItemList = [];
    const getItems = async () => {
      const data = await getDocs(resultQuery);
      data.forEach((doc) => {
        TmpItemList.push(doc.data());
        setItemsList(TmpItemList);
      });
    };
    getItems();
  }, []);

  return (

      <MainSlideImage />
      <SiteIntroBox />

WEEKLY BEST ITEMS

        BEST 16 ITEMS

  );
};

export default Main;

`
enter image description here

It consists of 2 slide screens, and 1 slide screen consists of 2 lines with 4 items per line.
I wrote the code like above, and it worked at first. However, when I refresh the page, the slick-slider screen is not visible at all.
However, if you check the element tab, it seems that the  tag is properly inserted, but nothing is actually displayed on the screen. I would like to ask a question about this strange phenomenon.


问:
Error while using import file in the XSD of RAML design with APIKIt router
Error: File Not Found: C:\work\AnypointStudio\plugins\org.mule.tooling.server.4.4.0.ee_7.11.0.202206241916\mule\bin\data-type\test.xsd (The system cannot find the path specified) while calling API, APIKit router giving above issue.

I have used two XSD files one is main.xsd and test.xsd.
test.xsd is imported in the main.xsd.

Can someone help me to resolve this issue

Used mule-apikit-module 1.7.1 and Mule runtime 4.4.0.


问:
Why do i have so many renders in ReactJS?
I'm trying to make tools popup as Netflix did. So i made a listeners -

```<code> const [popup,setPopup] = React.useState(false); // hook to shov popup via hover

</code>```
```<code>onMouseEnter={() => setPopup(true)}
</code>```
```<code>onMouseLeave={() => setPopup(false)}
</code>```

so that popup will open when i hover the icon of user on li block:

```<code><AiOutlineUser className='text-2xl'/>
</code>```

and close popup when i leave this icon.

First pair of listeners i made on
 block(where is 2 icons), so that popup will open when i hover that block.
Second listeners i made on popup itself, so that he will open and if i leave my mouse out of poppup it will close.

```<code><IoMdArrowDropdown className='group-hover:rotate-180 transition-all'/>
</code>```

this icon i made as a bridge beetwen icon block and popup, so that it won't close while i move my mouse.
enter image description hereenter image description here

The problem is that i think that component renders many time because when i leave my mouse, console.log("hi") shows any time i move my mouse on the block and out the block.

```<code>export default function Header({handleSignOut}) {
  const [show,setShow] = React.useState(false); // hook to change background of navigation block
  const [popup,setPopup] = React.useState(false); // hook to shov popup via hover

  const changeVis = () =>{
    if(window.scrollY > 0){
      setShow(true)
    }else{
      setShow(false)
    }
  }

  React.useEffect(()=>{ // to chane backgorund color while scrolling down and up
   window.addEventListener('scroll', changeVis)
   return ()  => window.removeEventListener('scroll',changeVis)
  },[])

  console.log("hi")
  return (
    <nav className={`${show ? 'bg-default' : 'bg-transparent'} flex justify-between items-center px-12 fixed top-0 right-0 left-0 ease-in duration-500 bg-gradient z-10`}>
      <div className='flex items-center'>
          <div className='mr-9 cursor-pointer max-h-[62px] flex'>
            <img className='max-w-[140px]'src="https://pngimg.com/uploads/netflix/netflix_PNG32.png" alt="logo Netflix" />
          </div>
          <ul className='flex'>
            <li className='mr-6 text-sm hover'>Главная</li>
            <li className='mr-6 text-sm hover'>Сериалы</li>
            <li className='mr-6 text-sm hover'>Фильмы</li>
            <li className='mr-6 text-sm hover'>Новинки и популярное</li>
            <li className='mr-6 text-sm hover'>Мой список</li>
            <li className='mr-6 text-sm hover'>Поиск по языку</li>
          </ul>
      </div>
        <ul className='flex items-center'>
          <li className='ml-6 cursor-pointer'><AiOutlineSearch className='text-2xl'/></li>
          <li className='ml-6 cursor-pointer'>Kids</li>
          <li className='ml-6 cursor-pointer'><IoIosNotificationsOutline className='text-2xl'/></li>
          <li onMouseEnter={() => setPopup(true)} onMouseLeave={(e) => setPopup(false)} className='ml-6 cursor-pointer flex group items-center justify-center'>
            <AiOutlineUser className='text-2xl'/>
            <IoMdArrowDropdown className='group-hover:rotate-180 transition-all'/>
          </li>
        </ul>
        <div onMouseEnter={() => setPopup(true)} onMouseLeave={() => setPopup(false)} className={`${popup ? 'visible' : 'invisible'} absolute right-[3%] top-[100%] bg-default mt-1 justify-between`}>
          <ul className='relative py-6 px-3'>
            <IoMdArrowDropdown className='absolute top-[-30px] right-[15px] text-3xl rotate-180'/>
            <li className='flex items-center text-base cursor-pointer py-2'><FaPencilAlt className='mr-2'/><span className='border-b border-transparent hover:border-[#fff]'>Управление профилями</span></li>
            <li className='flex items-center text-base cursor-pointer py-2'><BiUserPin className='mr-2'/><span className='border-b border-transparent hover:border-[#fff]'>Перенос профиля</span></li>
            <li className='flex items-center text-base cursor-pointer py-2'><CgUserlane className='mr-2'/><span className='border-b border-transparent hover:border-[#fff]'>Аккаунт</span></li>
            <li className='flex items-center text-base cursor-pointer py-2'><BiSupport className='mr-2'/><span className='border-b border-transparent hover:border-[#fff]'>Центр поддержки</span></li>
          </ul>
          <button onClick={handleSignOut} className='py-3 text-center mx-0 my-auto w-full border-t-2 border-[#fff] group'><span className='group-hover:border-b hover:border-[#fff]'>Выйти из Netflix</span> </button>
        </div>
    </nav>
  )
}
</code>```

enter image description here

Body:
I'm trying to make tools popup as Netflix did. So i made a listeners -

 const [popup,setPopup] = React.useState(false); // hook to shov popup via hover

onMouseEnter={() => setPopup(true)}

onMouseLeave={() => setPopup(false)}

so that popup will open when i hover the icon of user on li block:

<AiOutlineUser className='text-2xl'/>

and close popup when i leave this icon.

First pair of listeners i made on
 block(where is 2 icons), so that popup will open when i hover that block.
Second listeners i made on popup itself, so that he will open and if i leave my mouse out of poppup it will close.

<IoMdArrowDropdown className='group-hover:rotate-180 transition-all'/>

this icon i made as a bridge beetwen icon block and popup, so that it won't close while i move my mouse.
enter image description hereenter image description here

The problem is that i think that component renders many time because when i leave my mouse, console.log("hi") shows any time i move my mouse on the block and out the block.

export default function Header({handleSignOut}) {
  const [show,setShow] = React.useState(false); // hook to change background of navigation block
  const [popup,setPopup] = React.useState(false); // hook to shov popup via hover

  const changeVis = () =>{
    if(window.scrollY > 0){
      setShow(true)
    }else{
      setShow(false)
    }
  }

  React.useEffect(()=>{ // to chane backgorund color while scrolling down and up
   window.addEventListener('scroll', changeVis)
   return ()  => window.removeEventListener('scroll',changeVis)
  },[])

  console.log("hi")
  return (
    <nav className={`${show ? 'bg-default' : 'bg-transparent'} flex justify-between items-center px-12 fixed top-0 right-0 left-0 ease-in duration-500 bg-gradient z-10`}>

Главная

Сериалы

Фильмы

Новинки и популярное

Мой список

Поиск по языку

<AiOutlineSearch className='text-2xl'/>

Kids

<IoIosNotificationsOutline className='text-2xl'/>

 setPopup(true)} onMouseLeave={(e) => setPopup(false)} className='ml-6 cursor-pointer flex group items-center justify-center'>
            <AiOutlineUser className='text-2xl'/>
            <IoMdArrowDropdown className='group-hover:rotate-180 transition-all'/>

 setPopup(true)} onMouseLeave={() => setPopup(false)} className={`${popup ? 'visible' : 'invisible'} absolute right-[3%] top-[100%] bg-default mt-1 justify-between`}>

            <IoMdArrowDropdown className='absolute top-[-30px] right-[15px] text-3xl rotate-180'/>

<FaPencilAlt className='mr-2'/>Управление профилями

<BiUserPin className='mr-2'/>Перенос профиля

<CgUserlane className='mr-2'/>Аккаунт

<BiSupport className='mr-2'/>Центр поддержки

          <button onClick={handleSignOut} className='py-3 text-center mx-0 my-auto w-full border-t-2 border-[#fff] group'>Выйти из Netflix </button>

  )
}

enter image description here