Commit ad240f42 authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

remove build

parent cf4887b5
/docs/build/
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 4de4cbec66ae022d3ad4051d494b37c0
tags: 645f666f9bcd5a90fca523b33c5a78b7
.. csst-l1doc documentation master file, created by
sphinx-quickstart on Sat Feb 4 12:32:19 2023.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to csst-l1doc's documentation!
======================================
.. toctree::
:maxdepth: 2
:caption: Contents:
.. toctree::
:maxdepth: 2
:caption: MBI
:hidden:
mbi/mbi.rst
mbi/data_model.md
.. toctree::
:maxdepth: 2
:caption: SLS
:hidden:
sls/sls2d.rst
sls/data_model.md
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
# L1-MBI Data model
## File: *_{img/wht/flg}_L1_1.fits
### File contents
| HDU | data | note |
|------|-------------------------|------------|
| HDU0 | None | PrimaryHDU |
| HDU1 | reduced image (9k x 9k) | ImageHDU |
### HDU0
| keyword | value | comment | fallback_value | type | module |
|---------|:------|---------------|----------------|------|-----------|
| SIMPLE | True | Fits standard | True | bool | csst_sims |
### HDU1
#### Header of `csst_ms_mbi_instrument`
| keyword | value | comment | fallback_value | type | module |
|-----------|:--------------------------|-------------------------------|----------------|------|-------------------------|
|SATURATE | 1833.333333333333 | | | f32 | csst_ms_mbi_instrument |
|CRCOUNT | 66791 | | | i8 | csst_ms_mbi_instrument |
|INST_V | '0.0.1 ' | | | str | csst_ms_mbi_instrument |
|INST_TOL | '2022-12-30T10:18:53' | Time of last modification | | str | csst_ms_mbi_instrument |
|DATASUM | '1352015684' | data unit checksum updated 2022-10-28T19:29:10 | | str | csst_ms_mbi_instrument |
#### Header of `csst_ms_mbi_distortion`
| keyword | value | comment | fallback_value | type | module |
|-----------|:--------------------------|-------------------------------|----------------|------|-------------------------|
| RADESYS | 'ICRS ' | should be always 'ICRS' | 'ICRS' | str | csst_ms_mbi_distortion |
| STAR_FIT | 11 | | 0 | i8 | csst_ms_mbi_distortion |
| PV1_0 | 0.003205383944913964 | | 0 | f32 | csst_ms_mbi_distortion |
| PV1_1 | 0.8673020820536499 | | 0 | f32 | csst_ms_mbi_distortion |
| PV1_2 | -0.2011989871377834 | | 0 | f32 | csst_ms_mbi_distortion |
| PV1_3 | -0.2597214229472611 | | 0 | f32 | csst_ms_mbi_distortion |
| PV1_4 | 0.4353828741811097 | | 0 | f32 | csst_ms_mbi_distortion |
| PV1_5 | -0.5054216569802673 | | 0 | f32 | csst_ms_mbi_distortion |
| PV1_6 | 0.1951474426617432 | | 0 | f32 | csst_ms_mbi_distortion |
| PV2_0 | 0.00109803885992697 | | 0 | f32 | csst_ms_mbi_distortion |
| PV2_1 | 0.9171065857705857 | | 0 | f32 | csst_ms_mbi_distortion |
| PV2_2 | -0.04908256792722099 | | 0 | f32 | csst_ms_mbi_distortion |
| PV2_3 | -0.09860562038448289 | | 0 | f32 | csst_ms_mbi_distortion |
| PV2_4 | 0.07961855240788976 | | 0 | f32 | csst_ms_mbi_distortion |
| PV2_5 | -0.2009224365497067 | | 0 | f32 | csst_ms_mbi_distortion |
| PV2_6 | 0.1741954691884874 | | 0 | f32 | csst_ms_mbi_distortion |
| RA_OFF | -0.0 | mas in unit | -99 | f32 | csst_ms_mbi_distortion |
| DEC_OFF | 0.0 | mas in unit | -99 | f32 | csst_ms_mbi_distortion |
| RA_STD | 127.1 | mas in unit | -99 | f32 | csst_ms_mbi_distortion |
| DEC_STD | 60.4 | mas in unit | -99 | f32 | csst_ms_mbi_distortion |
| RA_CEN | 192.1940713422841 | the center of detector in ra | 192.1940713422841 | f32 | csst_ms_mbi_distortion |
| DEC_CEN | 26.72643742371229 | the center of detector in dec | 26.72643742371229 | f32 | csst_ms_mbi_distortion |
| DIST_V | '1.0 ' | version of distortion | '1.0' | str | csst_ms_mbi_distortion |
| DIST_TOL | '2022-12-29T16:36:47' | distortion operation time | '2022-12-29T16:36:47' | str | csst_ms_mbi_distortion |
| DIST_S | 0 | 0=done 1=wrong | 1 | i8 | csst_ms_mbi_distortion |
#### Header of `csst_ms_mbi_position`
| keyword | value | comment | fallback_value | type | module |
|-----------|:--------------------------|-------------------------------|----------------|------|-------------------------|
| RADESYS | 'ICRS ' | should be always 'ICRS' | 'ICRS' | str | csst_ms_mbi_position |
| PV1_0 | -7.032303876526E-04 | | 0 | f32 | csst_ms_mbi_position |
| PV1_1 | 9.986639936274E-01 | | 0 | f32 | csst_ms_mbi_position |
| PV1_2 | -3.506141592607E-03 | | 0 | f32 | csst_ms_mbi_position |
| PV1_4 | -2.342575913122E-03 | | 0 | f32 | csst_ms_mbi_position |
| PV1_5 | -2.216829433925E-03 | | 0 | f32 | csst_ms_mbi_position |
| PV1_6 | -5.122207406521E-03 | | 0 | f32 | csst_ms_mbi_position |
| PV2_0 | -6.939462894407E-04 | | 0 | f32 | csst_ms_mbi_position |
| PV2_1 | 9.988294486003E-01 | | 0 | f32 | csst_ms_mbi_position |
| PV2_2 | -1.687802061938E-03 | | 0 | f32 | csst_ms_mbi_position |
| PV2_4 | 1.561587727533E-03 | | 0 | f32 | csst_ms_mbi_position |
| PV2_5 | -4.159618376671E-03 | | 0 | f32 | csst_ms_mbi_position |
| PV2_6 | 3.398895060382E-03 | | 0 | f32 | csst_ms_mbi_position |
| FGROUPNO | 1 | SCAMP field group label | | i8 | csst_ms_mbi_position |
| ASTIRMS1 | 0.000000000000E+00 | Astrom. dispersion RMS (intern., high S/N) | | f32 | csst_ms_mbi_position |
| ASTIRMS2 | 0.000000000000E+00 | Astrom. dispersion RMS (intern., high S/N) | | f32 | csst_ms_mbi_position |
| ASTRRMS1 | 6.458653303335E-06 | Astrom. dispersion RMS (ref., high S/N) | | f32 | csst_ms_mbi_position |
| ASTRRMS2 | 8.724734011714E-06 | Astrom. dispersion RMS (ref., high S/N) | | f32 | csst_ms_mbi_position |
| ASTINST | 1 | SCAMP astrometric instrument label | | i8 | csst_ms_mbi_position |
| FLXSCALE | 1.000000000000E+00 | SCAMP relative flux scale | | f32 | csst_ms_mbi_position |
| MAGZEROP | 0.00000000 | SCAMP zero-point | | f32 | csst_ms_mbi_position |
| PHOTIRMS | 0.00000000 | mag dispersion RMS (internal, high S/N) | | f32 | csst_ms_mbi_position |
| PHOTINST | 1 | SCAMP photometric instrument label | | i8 | csst_ms_mbi_position |
| PHOTLINK | F | True if linked to a photometric field | | bool | csst_ms_mbi_position |
| WCS_S | 0 | 0=done | | i8 | csst_ms_mbi_position |
| WCS_V | '2.0.4 ' | Version of WCS calibration | | str | csst_ms_mbi_position |
| WCS_P | 'default.scamp' | Configure file name of WCS | | str | csst_ms_mbi_position |
| WCS_TOL | '2022-12-30 18:32:46 PM' | Time of last wcs calibration | | str | csst_ms_mbi_position |
#### Header of `csst_ms_mbi_flux`
| keyword | value | comment | fallback_value | type | module |
|-----------|:--------------------------|-------------------------------|----------------|------|-------------------------|
| CALI_REF | 'GAIA ' | the reference database for calibration | | str | csst_ms_mbi_flux |
| ZP | 23.8435 | photometric zero point in magnitude | | f32 | csst_ms_mbi_flux |
| ZPRMS | 0.0101 | zpt rms of the matched objects | | f32 | csst_ms_mbi_flux |
| APER_R | 10 | (pixels) photo-aperture radius | | i8 | csst_ms_mbi_flux |
| FWHM | 2.147 | FWHM in pixel | | f32 | csst_ms_mbi_flux |
| RAOFF | -0.188 | median positional offset from GAIA, in arcsec | | f32 | csst_ms_mbi_flux |
| DECOFF | -0.1061 | median positional offset from GAIA, in arcsec | | f32 | csst_ms_mbi_flux |
| NSTAR | 49 | total number of stars detected | | i8 | csst_ms_mbi_flux |
| NMATCH | 25 | total number of matched stars in 2 arcsec | | i8 | csst_ms_mbi_flux |
| MDNCOL | 0.0 | median (BP-RP)_GAIA of matched stars | | f32 | csst_ms_mbi_flux |
| SKY | 0.0359 | (e-/s per pixel) | | f32 | csst_ms_mbi_flux |
| SKYRMS | 0.1766 | rms/pixel of the sky in unit of e-/s | | f32 | csst_ms_mbi_flux |
| MLIM | 21.83 | magnitude limiting of 5-sigma galaxy detection| | f32 | csst_ms_mbi_flux |
| FLUX_S | 0 | flux calibration status | | i8 | csst_ms_mbi_flux |
| FLUX_V | '1.3 ' | version of calibration code | | str | csst_ms_mbi_flux |
| FLUX_TOL= | '2022-12-30 18:36:05' | flux calibration operation time | | str | csst_ms_mbi_flux |
## File: *_cat.fits
### File contents
| HDU | data | note |
|------|-------------------------|------------|
| HDU0 | None | PrimaryHDU |
| HDU1 | Table | ImageHDU |
### HDU0
#### Header of photometry
| keyword | value | comment | fallback_value | type | module |
|-----------|:--------------------------|-------------------------------|----------------|------|-------------------------|
| APERSIZE | '3,4,5,6,8,10,13,16,20,25,30,40,' | aperture radii in pixels | | str | csst_ms_mbi_photometry |
| NS_APER | 75 | number of stars used in aperture correction | | i8 | csst_ms_mbi_photometry |
| APCOR0 | -0.06074262037873268 | mag correction for aperture #0 | | f32 | csst_ms_mbi_photometry |
| APERR0 | 0.0 | mag correction error for aperture #0 | | f32 | csst_ms_mbi_photometry |
| APCOR1 | -0.01975813694298267 | mag correction for aperture #1 | | f32 | csst_ms_mbi_photometry |
| APERR1 | 0.0 | mag correction error for aperture #1 | | f32 | csst_ms_mbi_photometry |
| APCOR2 | 0.0 | mag correction for aperture #2 | | f32 | csst_ms_mbi_photometry |
| APERR2 | 0.0 | mag correction error for aperture #2 | | f32 | csst_ms_mbi_photometry |
| APCOR3 | 0.01290098764002323 | mag correction for aperture #3 | | f32 | csst_ms_mbi_photometry |
| APERR3 | 0.0 | mag correction error for aperture #3 | | f32 | csst_ms_mbi_photometry |
| APCOR4 | 0.02804811112582684 | mag correction for aperture #4 | | f32 | csst_ms_mbi_photometry |
| APERR4 | 0.0 | mag correction error for aperture #4 | | f32 | csst_ms_mbi_photometry |
| APCOR5 | 0.03705496713519096 | mag correction for aperture #5 | | f32 | csst_ms_mbi_photometry |
| APERR5 | 0.0 | mag correction error for aperture #5 | | f32 | csst_ms_mbi_photometry |
| APCOR6 | 0.04462624341249466 | mag correction for aperture #6 | | f32 | csst_ms_mbi_photometry |
| APERR6 | 0.0 | mag correction error for aperture #6 | | f32 | csst_ms_mbi_photometry |
| APCOR7 | 0.05059236660599709 | mag correction for aperture #7 | | f32 | csst_ms_mbi_photometry |
| APERR7 | 0.0 | mag correction error for aperture #7 | | f32 | csst_ms_mbi_photometry |
| APCOR8 | 0.05710481852293015 | mag correction for aperture #8 | | f32 | csst_ms_mbi_photometry |
| APERR8 | 0.0 | mag correction error for aperture #8 | | f32 | csst_ms_mbi_photometry |
| APCOR9 | 0.06682745367288589 | mag correction for aperture #9 | | f32 | csst_ms_mbi_photometry |
| APERR9 | 0.0 | mag correction error for aperture #9 | | f32 | csst_ms_mbi_photometry |
| APCOR10 | 0.07620415091514587 | mag correction for aperture #10 | | f32 | csst_ms_mbi_photometry |
| APERR10 | 0.0 | mag correction error for aperture #10 | | f32 | csst_ms_mbi_photometry |
| APCOR11 | 0.0952027440071106 | mag correction for aperture #11 | | f32 | csst_ms_mbi_photometry |
| APERR11 | 0.0 | mag correction error for aperture #11 | | f32 | csst_ms_mbi_photometry |
| HIERARCH ns_HYBRID | 328 |number of stars used in HYBRID correction | | i8 | csst_ms_mbi_photometry |
| HYBCOR | 0.0498337559401989 | mag correction for HYBRID | | f32 | csst_ms_mbi_photometry |
| HYBERR | 0.000711286964798456 | mag correction error | | f32 | csst_ms_mbi_photometry |
| NS_PSF | 306 | number of stars used in PSF correction | | i8 | csst_ms_mbi_photometry |
| PSFCOR | -0.00268870708532631 | mag correction for PSF | | f32 | csst_ms_mbi_photometry |
| PSFERR | 0.000903990056504255 | mag correction error | | f32 | csst_ms_mbi_photometry |
| NS_MODEL | 324 | number of stars used in MODEL correction| | i8 | csst_ms_mbi_photometry |
| MODCOR | 0.04189466685056686 | mag correction for MODEL | | f32 | csst_ms_mbi_photometry |
| MODERR | 0.000894258863834524| mag correction error | | f32 | csst_ms_mbi_photometry |
### HDU1
#### Header
## File: *_psf.fits
### File contents
| HDU | data | note |
|------|-------------------------|------------|
| HDU0 | None | PrimaryHDU |
| HDU1 | Table | ImageHDU |
### HDU0
#### Header
| keyword | value | comment | fallback_value | type | module |
|---------|:------|---------------|----------------|------|------------------|
| SIMPLE | True | Fits standard | True | bool | csst_ooc_psf_mbi |
### HDU1
#### Header of `csst_ooc_psf_mbi`
| keyword | value | comment | fallback_value | type | module |
| -------- |:------------ | --------------------------------------------- | -------------- | ---- | ---------------- |
| LOADED | 579 | Number of loaded sources | | I8 | csst_ooc_psf_mbi |
| ACCEPTED | 573 | Number of accepted sources | | I8 | csst_ooc_psf_mbi |
| CHI2 | 1.12832649 | Final reduced chi2 | | f32 | csst_ooc_psf_mbi |
| POLNAXIS | 2 | Number of context parameters | | I8 | csst_ooc_psf_mbi |
| POLGRP1 | 1 | Polynom group for this context parameter | | I8 | csst_ooc_psf_mbi |
| POLNAME1 | 'XWIN_IMAGE' | Name of this context parameter | | Str | csst_ooc_psf_mbi |
| POLZERO1 | 4607.403434 | Offset value for this context parameter | | f32 | csst_ooc_psf_mbi |
| POLSCAL1 | 9161.359825 | Scale value for this context parameter | | f32 | csst_ooc_psf_mbi |
| POLGRP2 | 1 | Polynom group for this context parameter | | I8 | csst_ooc_psf_mbi |
| POLNAME2 | 'YWIN_IMAGE' | Name of this context parameter | | Str | csst_ooc_psf_mbi |
| POLZERO2 | 4631.62895 | Offset value for this context parameter | | f32 | csst_ooc_psf_mbi |
| POLSCAL2 | 9174.347872 | Scale value for this context parameter | | f32 | csst_ooc_psf_mbi |
| POLNGRP | 1 | Number of context groups | | I8 | csst_ooc_psf_mbi |
| POLDEG1 | 2 | Polynom degree for this context group | | I8 | csst_ooc_psf_mbi |
| PSF_FWHM | 2.31607056 | PSF FWHM in image pixels | | f32 | csst_ooc_psf_mbi |
| PSF_SAMP | 0.49278098 | Sampling step of the PSF data in image pixels | | f32 | csst_ooc_psf_mbi |
| PSFNAXIS | 3 | Dimensionality of the PSF data | | I8 | csst_ooc_psf_mbi |
| PSFAXIS1 | 71 | Number of element along this axis | | I8 | csst_ooc_psf_mbi |
| PSFAXIS2 | 71 | Number of element along this axis | | I8 | csst_ooc_psf_mbi |
| PSFAXIS3 | 6 | Number of element along this axis | | I8 | csst_ooc_psf_mbi |
#### Header of `csst_ooc_psf_strategy_crds`
| keyword | value | comment | fallback_value | type | module |
| --------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ---- | -------------------------- |
| USEAFTER | '2028-07-22T18:52:33' | date and time after the reference files will be used. (YYYY-MM-DDThh:mm:ss) | | str | csst_ooc_psf_strategy_crds |
| OBSSTART | '2028-07-22T18:52:33' | UTC date and time of start of first observation (YYYY-MM-DDThh:mm:ss) | | str | csst_ooc_psf_strategy_crds |
| OBSEND | '2028-07-23T17:54:27' | UTC date and time of end of last observation (YYYY-MM-DDThh:mm:ss) | | str | csst_ooc_psf_strategy_crds |
| EXPTYPE | 'SCI' | type of exposes used to create the reference file ('SCI'or 'OOC') | | str | csst_ooc_psf_strategy_crds |
| COMBINE_N | 135 | number of exposes used to create the reference file. | | I8 | csst_ooc_psf_strategy_crds |
| BREAPHAS | 'hot' | phase of breathing effect, which is the focus varies over orbital time <br> scales due to thermal changes. ('hot', 'cold'. 'none') | | str | csst_ooc_psf_strategy_crds |
| TEMP_PM | 20.72563452 | average temperature surrounding the primary mirror (in K) | | f32 | csst_ooc_psf_strategy_crds |
| TEMP_SM | 20.72563452 | average temperature surrounding the secondary mirror (in K) | | f32 | csst_ooc_psf_strategy_crds |
| TEMP_TM | 20.72563452 | average temperature surrounding the tertiary mirror (in K) | | f32 | csst_ooc_psf_strategy_crds |
| LFOCUST | '2028-07-22T18:52:33' | last focus (AM1 or AM2) time (YYYY-MM-DDThh:mm:ss) | | str | csst_ooc_psf_strategy_crds |
| P1_FOCUS | 28025.63452 | parameter 1 of focal length calculated from the positions ofthe focus <br> adjustment mechanism (FAM) and the secondary mirror (in mm) | | f32 | csst_ooc_psf_strategy_crds |
| P2_ FOCUS | 28025.63452 | parameter 2 of focal length (in mm) | | f32 | csst_ooc_psf_strategy_crds |
| P3_ FOCUS | 28025.63452 | parameter 3 of focal length (in mm) | | f32 | csst_ooc_psf_strategy_crds |
| P4_ FOCUS | 28025.63452 | parameter 4 of focal length (in mm) | | f32 | csst_ooc_psf_strategy_crds |
| P5_ FOCUS | 28025.63452 | parameter 5 of focal length (in mm) | | f32 | csst_ooc_psf_strategy_crds |
| P6_ FOCUS | 28025.63452 | parameter 6 of focal length (in mm) | | f32 | csst_ooc_psf_strategy_crds |
| FSM_STAT | T | working state of fast-steering mirror (FSM) | | bool | csst_ooc_psf_strategy_crds |
MBI pipeline
============
Instrument correction
---------------------
`csst_ms_mbi_instrument` package.
Position calibration
---------------------
`csst_ms_mbi_distortion` and `csst_ms_mbi_position` package.
Flux calibration
----------------
`csst_ms_mbi_flux` package.
Photometry
----------
`csst_ms_mbi_photometry` package.
Astrometry
----------
`csst_ms_mbi_astrometry` package.
API
---
TODO
# L1-MBI Data model
## File: \*\_img_L1_1.fits
### File contents
| HDU | data | note |
| ---- | ----------------------- | ---------- |
| HDU0 | None | PrimaryHDU |
| HDU1 | reduced SCI (9k x 9k) | ImageHDU |
| HDU2 | reduced ERR (9k x 9k) | ImageHDU |
| HDU3 | reduced DQ (9k x 9k) | ImageHDU |
### HDU0
| keyword | value | comment | fallback_value | type | module |
| ------- | :---- | ------------- | -------------- | ---- | --------- |
| SIMPLE | True | Fits standard | True | bool | csst_sims |
### HDU1
#### Header of `csst_ms_sls_instrument`
| keyword | value | comment | fallback_value | type | module |
| -------- | :-------------------- | ---------------------------------------------- | -------------- | ---- | ---------------------- |
| INST_V | '0.0.1 ' | instrument correction pipeline version | | str | csst_ms_sls_instrument |
| INST_TOL | '2022-12-30T10:18:53' | Time of last modification | | str | csst_ms_sls_instrument |
| DATASUM | '1352015684' | Integrity check of data records | | str | csst_ms_sls_instrument |
| NGOODPIX | 84794368 | number of good pixels | | f32 | csst_ms_sls_instrument |
| SDQFLAGS | 31743 | serious data quality flags | | i16 | csst_ms_sls_instrument |
| GOODMAX | 260.0 | maxmum value of good pixels | | f32 | csst_ms_sls_instrument |
| GOODMIN | -0.001 | minmum value of good pixels | | f32 | csst_ms_sls_instrument |
| GOODMEAN | 0.3 | mean value of good pixels | | f32 | csst_ms_sls_instrument |
| SNRMIN | 187.4 | minmum signal to noise of good pixels | | f32 | csst_ms_sls_instrument |
| SNRMAX | 1.2 | maxmum signal to noise of good pixels | | f32 | csst_ms_sls_instrument |
| SNRMEAN | 3.38 | average of the dark values subtracted | | f32 | csst_ms_sls_instrument |
| BUNIT | electrons/s | brightness units | | str | csst_ms_sls_instrument |
| EXTNAEM | SCI | extension name | | str | csst_ms_sls_instrument |
#### Header of `csst_ms_sls_position`
| keyword | value | comment | fallback_value | type | module |
| ---------- | :------------------- | ---------------------------- | -------------- | ---- | -------------------- |
| CTYPE1 | 'RA---TPV' | | 'RA---TPV' | str | csst_ms_sls_position |
| CTYPE2 | 'DEC--TPV' | | 'DEC--TPV' | str | csst_ms_sls_position |
| CUNIT1 | 'deg ' | | 'deg' | str | csst_ms_sls_position |
| CUNIT2 | 'deg ' | | 'deg' | str | csst_ms_sls_position |
| RADESYS | 'ICRS ' | | 'ICRS' | str | csst_ms_sls_position |
| PV1_0 | 0.003205383944913964 | | 0 | f32 | csst_ms_sls_position |
| PV1_1 | 0.8673020820536499 | | 0 | f32 | csst_ms_sls_position |
| PV1_2 | -0.2011989871377834 | | 0 | f32 | csst_ms_sls_position |
| PV1_3 | -0.2597214229472611 | | 0 | f32 | csst_ms_sls_position |
| PV1_4 | 0.4353828741811097 | | 0 | f32 | csst_ms_sls_position |
| PV1_5 | -0.5054216569802673 | | 0 | f32 | csst_ms_sls_position |
| PV1_6 | 0.1951474426617432 | | 0 | f32 | csst_ms_sls_position |
| PV2_0 | 0.00109803885992697 | | 0 | f32 | csst_ms_sls_position |
| PV2_1 | 0.9171065857705857 | | 0 | f32 | csst_ms_sls_position |
| PV2_2 | -0.04908256792722099 | | 0 | f32 | csst_ms_sls_position |
| PV2_3 | -0.09860562038448289 | | 0 | f32 | csst_ms_sls_position |
| PV2_4 | 0.07961855240788976 | | 0 | f32 | csst_ms_sls_position |
| PV2_5 | -0.2009224365497067 | | 0 | f32 | csst_ms_sls_position |
| PV2_6 | 0.1741954691884874 | | 0 | f32 | csst_ms_sls_position |
| FIT_STAR | 10 | | 0 | i8 | csst_ms_sls_position |
| RA_OFF | -0.0 | mas in unit | -99 | f32 | csst_ms_sls_position |
| DEC_OFF | 0.0 | mas in unit | -99 | f32 | csst_ms_sls_position |
| RA_STD | 127.1 | mas in unit | -99 | f32 | csst_ms_sls_position |
| DEC_STD | 60.4 | mas in unit | -99 | f32 | csst_ms_sls_position |
| FIT_S    | 0 | 0 for success, 1 for failure | 1 | i8 | csst_ms_sls_position |
#### Header of `csst_ms_sls_qc1`
| keyword | value | comment | fallback_value | type | module |
| ---------- | :------------------- | ---------------------------- | -------------- | ---- | -------------------- |
| QC1_S    | 0 | 0 for success, 1 for failure | 1 | i8 | csst_ms_sls_qc1 |
SLS-2D pipeline
===============
Instrument correction
---------------------
`csst_ms_sls_instrument` package.
Position calibration
---------------------
`csst_ms_sls_position` package.
API
---
TODO
/*
* _sphinx_javascript_frameworks_compat.js
* ~~~~~~~~~~
*
* Compatability shim for jQuery and underscores.js.
*
* WILL BE REMOVED IN Sphinx 6.0
* xref RemovedInSphinx60Warning
*
*/
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};
/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};
/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
/*
* basic.css
* ~~~~~~~~~
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
div.section::after {
display: block;
content: '';
clear: left;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 230px;
margin-left: -100%;
font-size: 90%;
word-wrap: break-word;
overflow-wrap : break-word;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar #searchbox form.search {
overflow: hidden;
}
div.sphinxsidebar #searchbox input[type="text"] {
float: left;
width: 80%;
padding: 0.25em;
box-sizing: border-box;
}
div.sphinxsidebar #searchbox input[type="submit"] {
float: left;
width: 20%;
border-left: none;
padding: 0.25em;
box-sizing: border-box;
}
img {
border: 0;
max-width: 100%;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li p.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
margin-left: auto;
margin-right: auto;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable {
width: 100%;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable ul {
margin-top: 0;
margin-bottom: 0;
list-style-type: none;
}
table.indextable > tbody > tr > td > ul {
padding-left: 0em;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
div.modindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
div.genindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
/* -- domain module index --------------------------------------------------- */
table.modindextable td {
padding: 2px;
border-collapse: collapse;
}
/* -- general body styles --------------------------------------------------- */
div.body {
min-width: 360px;
max-width: 800px;
}
div.body p, div.body dd, div.body li, div.body blockquote {
-moz-hyphens: auto;
-ms-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
a.headerlink {
visibility: hidden;
}
a.brackets:before,
span.brackets > a:before{
content: "[";
}
a.brackets:after,
span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink,
caption:hover > a.headerlink,
p.caption:hover > a.headerlink,
div.code-block-caption:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.first {
margin-top: 0 !important;
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
img.align-left, figure.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, figure.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, figure.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
img.align-default, figure.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-default {
text-align: center;
}
.align-right {
text-align: right;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar,
aside.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px;
background-color: #ffe;
width: 40%;
float: right;
clear: right;
overflow-x: auto;
}
p.sidebar-title {
font-weight: bold;
}
div.admonition, div.topic, blockquote {
clear: left;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- content of sidebars/topics/admonitions -------------------------------- */
div.sidebar > :last-child,
aside.sidebar > :last-child,
div.topic > :last-child,
div.admonition > :last-child {
margin-bottom: 0;
}
div.sidebar::after,
aside.sidebar::after,
div.topic::after,
div.admonition::after,
blockquote::after {
display: block;
content: '';
clear: both;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
margin-top: 10px;
margin-bottom: 10px;
border: 0;
border-collapse: collapse;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number {
font-style: italic;
}
table caption span.caption-text {
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
th {
text-align: left;
padding-right: 5px;
}
table.citation {
border-left: solid 1px gray;
margin-left: 1px;
}
table.citation td {
border-bottom: none;
}
th > :first-child,
td > :first-child {
margin-top: 0px;
}
th > :last-child,
td > :last-child {
margin-bottom: 0px;
}
/* -- figures --------------------------------------------------------------- */
div.figure, figure {
margin: 0.5em;
padding: 0.5em;
}
div.figure p.caption, figcaption {
padding: 0.3em;
}
div.figure p.caption span.caption-number,
figcaption span.caption-number {
font-style: italic;
}
div.figure p.caption span.caption-text,
figcaption span.caption-text {
}
/* -- field list styles ----------------------------------------------------- */
table.field-list td, table.field-list th {
border: 0 !important;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
/* -- hlist styles ---------------------------------------------------------- */
table.hlist {
margin: 1em 0;
}
table.hlist td {
vertical-align: top;
}
/* -- object description styles --------------------------------------------- */
.sig {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
}
.sig-name, code.descname {
background-color: transparent;
font-weight: bold;
}
.sig-name {
font-size: 1.1em;
}
code.descname {
font-size: 1.2em;
}
.sig-prename, code.descclassname {
background-color: transparent;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.sig-param.n {
font-style: italic;
}
/* C++ specific styling */
.sig-inline.c-texpr,
.sig-inline.cpp-texpr {
font-family: unset;
}
.sig.c .k, .sig.c .kt,
.sig.cpp .k, .sig.cpp .kt {
color: #0033B3;
}
.sig.c .m,
.sig.cpp .m {
color: #1750EB;
}
.sig.c .s, .sig.c .sc,
.sig.cpp .s, .sig.cpp .sc {
color: #067D17;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
list-style: decimal;
}
ol.loweralpha {
list-style: lower-alpha;
}
ol.upperalpha {
list-style: upper-alpha;
}
ol.lowerroman {
list-style: lower-roman;
}
ol.upperroman {
list-style: upper-roman;
}
:not(li) > ol > li:first-child > :first-child,
:not(li) > ul > li:first-child > :first-child {
margin-top: 0px;
}
:not(li) > ol > li:last-child > :last-child,
:not(li) > ul > li:last-child > :last-child {
margin-bottom: 0px;
}
ol.simple ol p,
ol.simple ul p,
ul.simple ol p,
ul.simple ul p {
margin-top: 0;
}
ol.simple > li:not(:first-child) > p,
ul.simple > li:not(:first-child) > p {
margin-top: 0;
}
ol.simple p,
ul.simple p {
margin-bottom: 0;
}
/* Docutils 0.17 and older (footnotes & citations) */
dl.footnote > dt,
dl.citation > dt {
float: left;
margin-right: 0.5em;
}
dl.footnote > dd,
dl.citation > dd {
margin-bottom: 0em;
}
dl.footnote > dd:after,
dl.citation > dd:after {
content: "";
clear: both;
}
/* Docutils 0.18+ (footnotes & citations) */
aside.footnote > span,
div.citation > span {
float: left;
}
aside.footnote > span:last-of-type,
div.citation > span:last-of-type {
padding-right: 0.5em;
}
aside.footnote > p {
margin-left: 2em;
}
div.citation > p {
margin-left: 4em;
}
aside.footnote > p:last-of-type,
div.citation > p:last-of-type {
margin-bottom: 0em;
}
aside.footnote > p:last-of-type:after,
div.citation > p:last-of-type:after {
content: "";
clear: both;
}
/* Footnotes & citations ends */
dl.field-list {
display: grid;
grid-template-columns: fit-content(30%) auto;
}
dl.field-list > dt {
font-weight: bold;
word-break: break-word;
padding-left: 0.5em;
padding-right: 5px;
}
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd {
padding-left: 0.5em;
margin-top: 0em;
margin-left: 0em;
margin-bottom: 0em;
}
dl {
margin-bottom: 15px;
}
dd > :first-child {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
dl > dd:last-child,
dl > dd:last-child > :last-child {
margin-bottom: 0;
}
dt:target, span.highlighted {
background-color: #fbe54e;
}
rect.highlighted {
fill: #fbe54e;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
.guilabel, .menuselection {
font-family: sans-serif;
}
.accelerator {
text-decoration: underline;
}
.classifier {
font-style: oblique;
}
.classifier:before {
font-style: normal;
margin: 0 0.5em;
content: ":";
display: inline-block;
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
pre, div[class*="highlight-"] {
clear: both;
}
span.pre {
-moz-hyphens: none;
-ms-hyphens: none;
-webkit-hyphens: none;
hyphens: none;
white-space: nowrap;
}
div[class*="highlight-"] {
margin: 1em 0;
}
td.linenos pre {
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
display: block;
}
table.highlighttable tbody {
display: block;
}
table.highlighttable tr {
display: flex;
}
table.highlighttable td {
margin: 0;
padding: 0;
}
table.highlighttable td.linenos {
padding-right: 0.5em;
}
table.highlighttable td.code {
flex: 1;
overflow: hidden;
}
.highlight .hll {
display: block;
}
div.highlight pre,
table.highlighttable pre {
margin: 0;
}
div.code-block-caption + div {
margin-top: 0;
}
div.code-block-caption {
margin-top: 1em;
padding: 2px 5px;
font-size: small;
}
div.code-block-caption code {
background-color: transparent;
}
table.highlighttable td.linenos,
span.linenos,
div.highlight span.gp { /* gp: Generic.Prompt */
user-select: none;
-webkit-user-select: text; /* Safari fallback only */
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
}
div.code-block-caption span.caption-number {
padding: 0.1em 0.3em;
font-style: italic;
}
div.code-block-caption span.caption-text {
}
div.literal-block-wrapper {
margin: 1em 0;
}
code.xref, a code {
background-color: transparent;
font-weight: bold;
}
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
background-color: transparent;
}
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family: sans-serif;
}
div.viewcode-block:target {
margin: -1px -10px;
padding: 0 10px;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
span.eqno a.headerlink {
position: absolute;
z-index: 1;
}
div.math:hover a.headerlink {
visibility: visible;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}
\ No newline at end of file
.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment