def getNeoParam(fn, FrameIndReq=None, ut1req=None, kineticsec=None, startUTC=None, cmosinit={}, verbose=False):
fn = Path(fn).expanduser()<EOL>nHeadBytes = <NUM_LIT:0><EOL>if fn.suffix.lower() in '<STR_LIT>':<EOL><INDENT>if tifffile is None:<EOL><INDENT>raise ImportError('<STR_LIT>')<EOL><DEDENT>with tifffile.TiffFile(str(fn)) as f:<EOL><INDENT>Y, X = f[<NUM_LIT:0>].shape<EOL>cmosinit = {'<STR_LIT>': <NUM_LIT:1>,<EOL>'<STR_LIT>': len(f)}<EOL><DEDENT><DEDENT>elif fn.suffix.lower() in '<STR_LIT>':<EOL><INDENT>with fits.open(fn, mode='<STR_LIT>', memmap=False) as f:<EOL><INDENT>kineticsec = f[<NUM_LIT:0>].header['<STR_LIT>']<EOL>startseries = parse(f[<NUM_LIT:0>].header['<STR_LIT>'] + '<STR_LIT>')<EOL>try:<EOL><INDENT>frametxt = f[<NUM_LIT:0>].header['<STR_LIT>']<EOL>m = re.search('<STR_LIT>', frametxt)<EOL>inds = m.group(<NUM_LIT:0>).split('<STR_LIT:->')<EOL><DEDENT>except KeyError:  <EOL><INDENT>inds = [<NUM_LIT:1>, f[<NUM_LIT:0>].shape[<NUM_LIT:0>]]<EOL><DEDENT>cmosinit = {'<STR_LIT>': int(inds[<NUM_LIT:0>]),<EOL>'<STR_LIT>': int(inds[<NUM_LIT:1>])}<EOL>Y, X = f[<NUM_LIT:0>].shape[-<NUM_LIT:2>:]<EOL><DEDENT>startUTC = startseries.timestamp()<EOL>
assumption is that this is a Neo sCMOS FITS/TIFF file, where Solis chooses to break up the recordings
    into smaller files. Verify if this timing estimate makes sense for your application!
    I did not want to do regexp on the filename or USERTXT1 as I felt this too prone to error.

    inputs:
    -------
    cmosinit = {'firstrawind','lastrawind'}