Full Code of AlphacatPlus/VmambaIR for AI

main 51c2efbdcb50 cached
304 files
4.1 MB
1.1M tokens
1327 symbols
1 requests
Download .txt
Showing preview only (4,332K chars total). Download the full file or copy to clipboard to get everything.
Repository: AlphacatPlus/VmambaIR
Branch: main
Commit: 51c2efbdcb50
Files: 304
Total size: 4.1 MB

Directory structure:
gitextract_1m56b8y9/

├── .gitignore
├── Deraining/
│   ├── Deraining/
│   │   ├── Datasets/
│   │   │   └── README.md
│   │   ├── Metric/
│   │   │   └── PSNR.py
│   │   ├── Options/
│   │   │   ├── Deraining_mamber28.yml
│   │   │   ├── Deraining_mamber32.yml
│   │   │   ├── Deraining_mamber33.yml
│   │   │   └── Deraining_mamber34.yml
│   │   ├── README.md
│   │   ├── download_data.py
│   │   ├── evaluate_PSNR_SSIM.m
│   │   ├── test.py
│   │   └── utils.py
│   ├── Deraining_test.sh
│   ├── Deraining_train.sh
│   ├── INSTALL.md
│   ├── LICENSE.md
│   ├── VERSION
│   ├── basicsr/
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── data_sampler.py
│   │   │   ├── data_util.py
│   │   │   ├── ffhq_dataset.py
│   │   │   ├── meta_info/
│   │   │   │   ├── meta_info_DIV2K800sub_GT.txt
│   │   │   │   ├── meta_info_REDS4_test_GT.txt
│   │   │   │   ├── meta_info_REDS_GT.txt
│   │   │   │   ├── meta_info_REDSofficial4_test_GT.txt
│   │   │   │   ├── meta_info_REDSval_official_test_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_fast_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_medium_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_slow_GT.txt
│   │   │   │   └── meta_info_Vimeo90K_train_GT.txt
│   │   │   ├── paired_image_dataset.py
│   │   │   ├── prefetch_dataloader.py
│   │   │   ├── reds_dataset.py
│   │   │   ├── single_image_dataset.py
│   │   │   ├── transforms.py
│   │   │   ├── video_test_dataset.py
│   │   │   └── vimeo90k_dataset.py
│   │   ├── metrics/
│   │   │   ├── __init__.py
│   │   │   ├── fid.py
│   │   │   ├── metric_util.py
│   │   │   ├── niqe.py
│   │   │   ├── niqe_pris_params.npz
│   │   │   └── psnr_ssim.py
│   │   ├── models/
│   │   │   ├── __init__.py
│   │   │   ├── archs/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── arch_util.py
│   │   │   │   ├── common.py
│   │   │   │   ├── mamber32_arch.py
│   │   │   │   ├── mamber33_arch.py
│   │   │   │   └── restormer_arch.py
│   │   │   ├── base_model.py
│   │   │   ├── image_restoration_model.py
│   │   │   ├── losses/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── loss_util.py
│   │   │   │   └── losses.py
│   │   │   └── lr_scheduler.py
│   │   ├── test.py
│   │   ├── test_deraining.py
│   │   ├── train.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── bundle_submissions.py
│   │   │   ├── create_lmdb.py
│   │   │   ├── dist_util.py
│   │   │   ├── download_util.py
│   │   │   ├── face_util.py
│   │   │   ├── file_client.py
│   │   │   ├── flow_util.py
│   │   │   ├── img_util.py
│   │   │   ├── lmdb_util.py
│   │   │   ├── logger.py
│   │   │   ├── matlab_functions.py
│   │   │   ├── misc.py
│   │   │   └── options.py
│   │   ├── utils2.py
│   │   └── version.py
│   ├── pip.sh
│   ├── setup.cfg
│   ├── setup.py
│   └── train.sh
├── Mamba/
│   ├── .gitignore
│   └── kernels/
│       └── selective_scan/
│           ├── README.md
│           ├── csrc/
│           │   └── selective_scan/
│           │       ├── cub_extra.cuh
│           │       ├── cus/
│           │       │   ├── selective_scan.cpp
│           │       │   ├── selective_scan_bwd_kernel.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   └── selective_scan_fwd_kernel.cuh
│           │       ├── cusndstate/
│           │       │   ├── selective_scan_bwd_kernel_ndstate.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   ├── selective_scan_fwd_kernel_ndstate.cuh
│           │       │   ├── selective_scan_ndstate.cpp
│           │       │   └── selective_scan_ndstate.h
│           │       ├── cusnrow/
│           │       │   ├── selective_scan_bwd_kernel_nrow.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_bwd2.cu
│           │       │   ├── selective_scan_core_bwd3.cu
│           │       │   ├── selective_scan_core_bwd4.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   ├── selective_scan_core_fwd2.cu
│           │       │   ├── selective_scan_core_fwd3.cu
│           │       │   ├── selective_scan_core_fwd4.cu
│           │       │   ├── selective_scan_fwd_kernel_nrow.cuh
│           │       │   └── selective_scan_nrow.cpp
│           │       ├── cusoflex/
│           │       │   ├── selective_scan_bwd_kernel_oflex.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   ├── selective_scan_fwd_kernel_oflex.cuh
│           │       │   └── selective_scan_oflex.cpp
│           │       ├── reverse_scan.cuh
│           │       ├── selective_scan.h
│           │       ├── selective_scan_common.h
│           │       ├── static_switch.h
│           │       └── uninitialized_copy.cuh
│           ├── setup.py
│           └── test_selective_scan.py
├── README.md
├── RealSR/
│   ├── .gitignore
│   ├── Metric/
│   │   ├── DISTS/
│   │   │   ├── DISTS_pytorch/
│   │   │   │   ├── DISTS_pt.py
│   │   │   │   └── weights.pt
│   │   │   ├── DISTS_tensorflow/
│   │   │   │   └── DISTS_tf.py
│   │   │   ├── LICENSE
│   │   │   └── requirements.txt
│   │   ├── LPIPS.py
│   │   ├── PSNR.py
│   │   ├── dists.py
│   │   └── pip.sh
│   ├── VERSION
│   ├── VmambaIR/
│   │   ├── __init__.py
│   │   ├── archs/
│   │   │   ├── MambaRealSR11_arch.py
│   │   │   ├── __init__.py
│   │   │   ├── attention.py
│   │   │   ├── common.py
│   │   │   ├── discriminator_arch.py
│   │   │   └── srvgg_arch.py
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── data_util.py
│   │   │   ├── deblur_paired_dataset.py
│   │   │   ├── diffir_dataset.py
│   │   │   ├── diffir_paired_dataset.py
│   │   │   ├── gaussiandenoising_paired_dataset.py
│   │   │   ├── realesrgan400_dataset.py
│   │   │   ├── realesrgan_dataset.py
│   │   │   ├── realesrgan_memery_dataset.py
│   │   │   ├── realesrgan_paired_dataset.py
│   │   │   └── transforms.py
│   │   ├── losses/
│   │   │   ├── __init__.py
│   │   │   └── my_loss.py
│   │   ├── models/
│   │   │   ├── MambaRealSRGAN_model.py
│   │   │   ├── MambaRealSRGANtest_model.py
│   │   │   ├── MambaRealSR_model.py
│   │   │   ├── __init__.py
│   │   │   └── lr_scheduler.py
│   │   ├── test.py
│   │   ├── train.py
│   │   ├── train_pipeline.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── bundle_submissions.py
│   │   │   ├── create_lmdb.py
│   │   │   ├── dist_util.py
│   │   │   ├── download_util.py
│   │   │   ├── face_util.py
│   │   │   ├── file_client.py
│   │   │   ├── flow_util.py
│   │   │   ├── img_util.py
│   │   │   ├── lmdb_util.py
│   │   │   ├── logger.py
│   │   │   ├── matlab_functions.py
│   │   │   ├── misc.py
│   │   │   └── options.py
│   │   ├── utils.py
│   │   └── weights/
│   │       └── README.md
│   ├── inference.py
│   ├── ldm/
│   │   ├── classifier.py
│   │   ├── lr_scheduler.py
│   │   ├── util.py
│   │   └── util2.py
│   ├── metric.sh
│   ├── options/
│   │   ├── mambaSR11GAN_x4.yml
│   │   ├── mambaSR11_x4.yml
│   │   ├── mambaSR11m_x4.yml
│   │   └── test_mambaSR11GAN_x4.yml
│   ├── pip.sh
│   ├── requirements.txt
│   ├── scripts/
│   │   ├── Metric/
│   │   │   ├── DISTS/
│   │   │   │   ├── DISTS_pytorch/
│   │   │   │   │   ├── DISTS_pt.py
│   │   │   │   │   └── weights.pt
│   │   │   │   ├── DISTS_tensorflow/
│   │   │   │   │   └── DISTS_tf.py
│   │   │   │   ├── LICENSE
│   │   │   │   └── requirements.txt
│   │   │   ├── LPIPS.py
│   │   │   ├── PSNR.py
│   │   │   ├── dists.py
│   │   │   └── pip.sh
│   │   ├── extract_subimages.py
│   │   ├── extract_subimages_DF2K.py
│   │   ├── generate_meta_info.py
│   │   ├── generate_meta_info_DF2K.py
│   │   ├── generate_meta_info_DF2K_memo.py
│   │   ├── generate_meta_info_OST.py
│   │   ├── generate_meta_info_pairdata.py
│   │   ├── generate_multiscale_DF2K.py
│   │   ├── options/
│   │   │   ├── mambaSR11GAN_x4.yml
│   │   │   ├── mambaSR11_x4.yml
│   │   │   ├── mambaSR11m_x4.yml
│   │   │   └── test_mambaSR11GAN_x4.yml
│   │   └── pytorch2onnx.py
│   ├── setup.cfg
│   ├── setup.py
│   ├── test.sh
│   ├── tests/
│   │   ├── data/
│   │   │   ├── gt.lmdb/
│   │   │   │   ├── data.mdb
│   │   │   │   ├── lock.mdb
│   │   │   │   └── meta_info.txt
│   │   │   ├── lq.lmdb/
│   │   │   │   ├── data.mdb
│   │   │   │   ├── lock.mdb
│   │   │   │   └── meta_info.txt
│   │   │   ├── meta_info_gt.txt
│   │   │   ├── meta_info_pair.txt
│   │   │   ├── test_realesrgan_dataset.yml
│   │   │   ├── test_realesrgan_model.yml
│   │   │   ├── test_realesrgan_paired_dataset.yml
│   │   │   └── test_realesrnet_model.yml
│   │   ├── test_dataset.py
│   │   ├── test_discriminator_arch.py
│   │   ├── test_model.py
│   │   └── test_utils.py
│   ├── train_S1.sh
│   └── train_S2.sh
├── SRGAN/
│   ├── .gitignore
│   ├── Metric/
│   │   ├── DISTS/
│   │   │   ├── DISTS_pytorch/
│   │   │   │   ├── DISTS_pt.py
│   │   │   │   └── weights.pt
│   │   │   ├── DISTS_tensorflow/
│   │   │   │   └── DISTS_tf.py
│   │   │   ├── LICENSE
│   │   │   └── requirements.txt
│   │   ├── LPIPS.py
│   │   ├── PSNR.py
│   │   ├── dists.py
│   │   └── pip.sh
│   ├── VERSION
│   ├── VmambaIR/
│   │   ├── __init__.py
│   │   ├── archs/
│   │   │   ├── MambaSISR6_arch.py
│   │   │   ├── __init__.py
│   │   │   ├── attention.py
│   │   │   ├── common.py
│   │   │   ├── discriminator_arch.py
│   │   │   └── srvgg_arch.py
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── data_util.py
│   │   │   ├── deblur_paired_dataset.py
│   │   │   ├── diffir_dataset.py
│   │   │   ├── diffir_paired_dataset.py
│   │   │   ├── gaussiandenoising_paired_dataset.py
│   │   │   └── transforms.py
│   │   ├── losses/
│   │   │   ├── __init__.py
│   │   │   └── my_loss.py
│   │   ├── models/
│   │   │   ├── MambaSISR2_model.py
│   │   │   ├── MambaSISRGAN_model.py
│   │   │   ├── MambaSISR_model.py
│   │   │   ├── __init__.py
│   │   │   └── lr_scheduler.py
│   │   ├── test.py
│   │   ├── train.py
│   │   ├── train_pipeline.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── bundle_submissions.py
│   │   │   ├── create_lmdb.py
│   │   │   ├── dist_util.py
│   │   │   ├── download_util.py
│   │   │   ├── face_util.py
│   │   │   ├── file_client.py
│   │   │   ├── flow_util.py
│   │   │   ├── img_util.py
│   │   │   ├── lmdb_util.py
│   │   │   ├── logger.py
│   │   │   ├── matlab_functions.py
│   │   │   ├── misc.py
│   │   │   └── options.py
│   │   ├── utils.py
│   │   └── weights/
│   │       └── README.md
│   ├── ldm/
│   │   ├── classifier.py
│   │   ├── lr_scheduler.py
│   │   ├── util.py
│   │   └── util2.py
│   ├── metric.sh
│   ├── options/
│   │   ├── MambaSISR15GAN_x4.yml
│   │   ├── MambaSISR15_x4.yml
│   │   └── test_mamba15_x4.yml
│   ├── pip.sh
│   ├── requirements.txt
│   ├── scripts/
│   │   ├── extract_subimages.py
│   │   ├── extract_subimages_DF2K.py
│   │   ├── generate_meta_info.py
│   │   ├── generate_meta_info_DF2K.py
│   │   ├── generate_meta_info_OST.py
│   │   ├── generate_meta_info_pairdata.py
│   │   ├── generate_multiscale_DF2K.py
│   │   └── pytorch2onnx.py
│   ├── setup.cfg
│   ├── setup.py
│   ├── test.sh
│   ├── train_S1.sh
│   └── train_S2.sh
├── install.md
└── requirements.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# global
**/__pycache__
**/_ignore
**/.dist_test
**/.pytest_cache
**/*.egg-info
**/*.TAG
**/dist
**/*.so
*.so
**/build
**/tmp
**/output
**/work_dirs
logs
ckpts
log
ckpt


Mamba/kernels/selective_scan/1.log
Mamba/kernels/selective_scan/test_selective_scan_speed.py
Mamba/kernels/selective_scan/test_selective_scan_easy.py
Mamba/kernels/selective_scan/ssmtriton.py
Mamba/kernels/selective_scan/ssmjax.py

.ipynb_checkpoints/
*.pyc
*.png
*.tif
*.jpg
*.pth
*.mat
*.npy
.DS_Store
*.state


================================================
FILE: Deraining/Deraining/Datasets/README.md
================================================
For training and testing, your directory structure should look like this
  
 `Datasets` <br/>
 `├──train`  <br/>
     `└──Rain13K`   <br/>
          `├──input`   <br/>
          `└──target`   <br/>
 `└──test`  <br/>
     `├──Test100`   <br/>
          `├──input`   <br/>
          `└──target`   <br/>
     `├──Rain100H`  <br/>
          `├──input`   <br/>
          `└──target`   <br/>
     `├──Rain100L`  <br/>
          `├──input`   <br/>
          `└──target`   <br/>
     `├──Test1200`  <br/>
          `├──input`   <br/>
          `└──target`   <br/>
     `└──Test2800`<br/>
          `├──input`   <br/>
          `└──target` 


================================================
FILE: Deraining/Deraining/Metric/PSNR.py
================================================
import cv2
import glob
import numpy as np
import os.path as osp
from torchvision.transforms.functional import normalize
from basicsr.utils import img2tensor
import lpips
import argparse
from basicsr.metrics import calculate_psnr, calculate_ssim


def main():
    # Configurations
    parser = argparse.ArgumentParser()
    parser.add_argument('--folder_gt', type=str, default='/mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100H/target')
    #parser.add_argument('--folder_gt', type=str, default='/mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/target')
    #parser.add_argument('--folder_gt', type=str, default='/mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Test100/target')
    #parser.add_argument('--folder_gt', type=str, default='/mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Test1200/target')
    #parser.add_argument('--folder_gt', type=str, default='/mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Test2800/target')
    parser.add_argument('--folder_restored', type=str, default='/mnt/bn/shiyuan-arnold/code/VmambaIR/Restoration/results/mamber32_net144000/Rain100H')
    args = parser.parse_args()
    psnr_all = []
    ssim_all = []
    img_list = sorted(glob.glob(osp.join(args.folder_gt, '*.png'))) #test2800:jpg others:png
    lr_list = sorted(glob.glob(osp.join(args.folder_restored, '*.png')))
    #print('img list ',img_list)
    #print('lr list', lr_list)
    for i, (img_path, lr_path) in enumerate(zip(img_list,lr_list)):
        basename, ext = osp.splitext(osp.basename(img_path))
        img_gt = cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
        img_restored = cv2.imread(osp.join(lr_path), cv2.IMREAD_UNCHANGED)
        psnr=calculate_psnr(img_restored, img_gt, crop_border=4, test_y_channel=True)
        ssim=calculate_ssim(img_restored, img_gt, crop_border=4, test_y_channel=True)
        psnr_all.append(psnr)
        ssim_all.append(ssim)

    print(f'Average: PSNR: {sum(psnr_all) / len(psnr_all):.6f}')
    print(f'Average: SSIM: {sum(ssim_all) / len(ssim_all):.6f}')


if __name__ == '__main__':
    main()


================================================
FILE: Deraining/Deraining/Options/Deraining_mamber28.yml
================================================
# general settings
name: Deraining_mamber28
model_type: ImageCleanModel
scale: 1
num_gpu: 8  # set num_gpu: 0 for cpu mode
manual_seed: 100

# dataset and data loader settings
datasets:
  train:
    name: TrainSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/input
    geometric_augs: true

    filename_tmpl: '{}'
    io_backend:
      type: disk

    # data loader
    use_shuffle: true
    num_worker_per_gpu: 8
    batch_size_per_gpu: 8

    ### -------------Progressive training--------------------------
    mini_batch_sizes: [8,5,3,2,1,1]             # Batch size per gpu   
    iters: [92000,64000,48000,36000,36000,24000]
    gt_size: 384   # Max patch size for progressive training
    gt_sizes: [128,160,192,256,320,384]  # Patch sizes for progressive training.
    ### ------------------------------------------------------------

    ### ------- Training on single fixed-patch size 128x128---------
    # mini_batch_sizes: [8]   
    # iters: [300000]
    # gt_size: 128   
    # gt_sizes: [128]
    ### ------------------------------------------------------------

    dataset_enlarge_ratio: 1
    prefetch_mode: ~

  val:
    name: ValSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/input
    io_backend:
      type: disk

# network structures
network_g:
  type: Mamber32
  inp_channels: 3
  out_channels: 3
  dim: 48
  num_blocks: [3,5,7,9]
  num_refinement_blocks: 2
  heads: [1,2,4,8]
  ffn_expansion_factor: 2.66
  bias: False
  LayerNorm_type: WithBias
  dual_pixel_task: False


# path
path:
  pretrain_network_g: ~
  strict_load_g: true
  resume_state: ~

# training settings
train:
  total_iter: 300000
  warmup_iter: -1 # no warm up
  use_grad_clip: true

  # Split 300k iterations into two cycles. 
  # 1st cycle: fixed 3e-4 LR for 92k iters. 
  # 2nd cycle: cosine annealing (3e-4 to 1e-6) for 208k iters.
  scheduler:
    type: CosineAnnealingRestartCyclicLR
    periods: [92000, 208000]       
    restart_weights: [1,1]
    eta_mins: [0.0003,0.000001]   
  
  mixing_augs:
    mixup: false
    mixup_beta: 1.2
    use_identity: true

  optim_g:
    type: AdamW
    lr: !!float 3e-4
    weight_decay: !!float 1e-4
    betas: [0.9, 0.999]
  
  # losses
  pixel_opt:
    type: L1Loss
    loss_weight: 1
    reduction: mean

# validation settings
val:
  window_size: 8
  val_freq: !!float 4e3
  save_img: false
  rgb2bgr: true
  use_image: true
  max_minibatch: 8

  metrics:
    psnr: # metric name, can be arbitrary
      type: calculate_psnr
      crop_border: 0
      test_y_channel: true

# logging settings
logger:
  print_freq: 1000
  save_checkpoint_freq: !!float 4e3
  use_tb_logger: true
  wandb:
    project: ~
    resume_id: ~

# dist training settings
dist_params:
  backend: nccl
  port: 29500


================================================
FILE: Deraining/Deraining/Options/Deraining_mamber32.yml
================================================
# general settings
name: Deraining_mamber32
model_type: ImageCleanModel
scale: 1
num_gpu: 8  # set num_gpu: 0 for cpu mode
manual_seed: 100

# dataset and data loader settings
datasets:
  train:
    name: TrainSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/input
    geometric_augs: true

    filename_tmpl: '{}'
    io_backend:
      type: disk

    # data loader
    use_shuffle: true
    num_worker_per_gpu: 8
    batch_size_per_gpu: 8

    ### -------------Progressive training--------------------------
    mini_batch_sizes: [8,5,3,2,1,1]             # Batch size per gpu   
    iters: [36000,24000,24000,24000,24000,24000]
    gt_size: 384   # Max patch size for progressive training
    gt_sizes: [128,160,192,256,320,384]  # Patch sizes for progressive training.
    ### ------------------------------------------------------------

    ### ------- Training on single fixed-patch size 128x128---------
    # mini_batch_sizes: [8]   
    # iters: [300000]
    # gt_size: 128   
    # gt_sizes: [128]
    ### ------------------------------------------------------------

    dataset_enlarge_ratio: 1
    prefetch_mode: ~

  val:
    name: ValSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/input
    io_backend:
      type: disk

# network structures
network_g:
  type: Mamber32
  inp_channels: 3
  out_channels: 3
  dim: 48
  num_blocks: [3,5,7,9]
  num_refinement_blocks: 2
  heads: [1,2,4,8]
  ffn_expansion_factor: 2.66
  bias: False
  LayerNorm_type: WithBias
  dual_pixel_task: False


# path
path:
  pretrain_network_g: /mnt/bn/shiyuan-arnold/code/VmambaIR/Restoration/experiments/Deraining_mamber28/models/net_g_300000.pth
  strict_load_g: true
  resume_state: ~

# training settings
train:
  total_iter: 156000
  warmup_iter: -1 # no warm up
  use_grad_clip: true

  # Split 300k iterations into two cycles. 
  # 1st cycle: fixed 3e-4 LR for 92k iters. 
  # 2nd cycle: cosine annealing (3e-4 to 1e-6) for 208k iters.
  scheduler:
    type: CosineAnnealingRestartCyclicLR
    periods: [48000, 96000]       
    restart_weights: [1,1]
    eta_mins: [0.000285,0.000001]   
  
  mixing_augs:
    mixup: false
    mixup_beta: 1.2
    use_identity: true

  optim_g:
    type: AdamW
    lr: !!float 1e-4
    weight_decay: !!float 5e-5
    betas: [0.9, 0.999]
  
  # losses
  pixel_opt:
    type: L1Loss
    loss_weight: 1
    reduction: mean

# validation settings
val:
  window_size: 8
  val_freq: !!float 4e3
  save_img: false
  rgb2bgr: true
  use_image: true
  max_minibatch: 8

  metrics:
    psnr: # metric name, can be arbitrary
      type: calculate_psnr
      crop_border: 0
      test_y_channel: true

# logging settings
logger:
  print_freq: 1000
  save_checkpoint_freq: !!float 4e3
  use_tb_logger: true
  wandb:
    project: ~
    resume_id: ~

# dist training settings
dist_params:
  backend: nccl
  port: 29500


================================================
FILE: Deraining/Deraining/Options/Deraining_mamber33.yml
================================================
# general settings
name: Deraining_mamber33
model_type: ImageCleanModel
scale: 1
num_gpu: 8  # set num_gpu: 0 for cpu mode
manual_seed: 100

# dataset and data loader settings
datasets:
  train:
    name: TrainSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/input
    geometric_augs: true

    filename_tmpl: '{}'
    io_backend:
      type: disk

    # data loader
    use_shuffle: true
    num_worker_per_gpu: 8
    batch_size_per_gpu: 8

    ### -------------Progressive training--------------------------
    mini_batch_sizes: [8,5,3,2,1,1]             # Batch size per gpu   
    iters: [92000,64000,64000,64000,64000,48000]
    gt_size: 384   # Max patch size for progressive training
    gt_sizes: [128,160,192,256,320,384]  # Patch sizes for progressive training.
    ### ------------------------------------------------------------

    ### ------- Training on single fixed-patch size 128x128---------
    # mini_batch_sizes: [8]   
    # iters: [300000]
    # gt_size: 128   
    # gt_sizes: [128]
    ### ------------------------------------------------------------

    dataset_enlarge_ratio: 1
    prefetch_mode: ~

  val:
    name: ValSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/input
    io_backend:
      type: disk

# network structures
network_g:
  type: Mamber32
  inp_channels: 3
  out_channels: 3
  dim: 48
  num_blocks: [3,5,7,9]
  num_refinement_blocks: 2
  heads: [1,2,4,8]
  ffn_expansion_factor: 2.66
  bias: False
  LayerNorm_type: WithBias
  dual_pixel_task: False


# path
path:
  pretrain_network_g: ~
  strict_load_g: true
  resume_state: ~

# training settings
train:
  total_iter: 396000
  warmup_iter: -1 # no warm up
  use_grad_clip: true

  # Split 300k iterations into two cycles. 
  # 1st cycle: fixed 3e-4 LR for 92k iters. 
  # 2nd cycle: cosine annealing (3e-4 to 1e-6) for 208k iters.
  scheduler:
    type: CosineAnnealingRestartCyclicLR
    periods: [144000, 288000]       
    restart_weights: [1,1]
    eta_mins: [0.0003,0.000001]   
  
  mixing_augs:
    mixup: false
    mixup_beta: 1.2
    use_identity: true

  optim_g:
    type: AdamW
    lr: !!float 3e-4
    weight_decay: !!float 1e-4
    betas: [0.9, 0.999]
  
  # losses
  pixel_opt:
    type: L1Loss
    loss_weight: 1
    reduction: mean

# validation settings
val:
  window_size: 8
  val_freq: !!float 4e3
  save_img: false
  rgb2bgr: true
  use_image: true
  max_minibatch: 8

  metrics:
    psnr: # metric name, can be arbitrary
      type: calculate_psnr
      crop_border: 0
      test_y_channel: true

# logging settings
logger:
  print_freq: 1000
  save_checkpoint_freq: !!float 4e3
  use_tb_logger: true
  wandb:
    project: ~
    resume_id: ~

# dist training settings
dist_params:
  backend: nccl
  port: 29500


================================================
FILE: Deraining/Deraining/Options/Deraining_mamber34.yml
================================================
# general settings
name: Deraining_mamber34
model_type: ImageCleanModel
scale: 1
num_gpu: 8  # set num_gpu: 0 for cpu mode
manual_seed: 100

# dataset and data loader settings
datasets:
  train:
    name: TrainSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/train/Rain13K/input
    geometric_augs: true

    filename_tmpl: '{}'
    io_backend:
      type: disk

    # data loader
    use_shuffle: true
    num_worker_per_gpu: 8
    batch_size_per_gpu: 8

    ### -------------Progressive training--------------------------
    mini_batch_sizes: [8,5,3,2,1,1]             # Batch size per gpu   
    iters: [92000,64000,64000,64000,64000,48000]
    gt_size: 384   # Max patch size for progressive training
    gt_sizes: [128,160,192,256,320,384]  # Patch sizes for progressive training.
    ### ------------------------------------------------------------

    ### ------- Training on single fixed-patch size 128x128---------
    # mini_batch_sizes: [8]   
    # iters: [300000]
    # gt_size: 128   
    # gt_sizes: [128]
    ### ------------------------------------------------------------

    dataset_enlarge_ratio: 1
    prefetch_mode: ~

  val:
    name: ValSet
    type: Dataset_PairedImage
    dataroot_gt: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/target
    dataroot_lq: /mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test/Rain100L/input
    io_backend:
      type: disk

# network structures
network_g:
  type: Mamber32
  inp_channels: 3
  out_channels: 3
  dim: 48
  num_blocks: [3,5,7,9]
  num_refinement_blocks: 2
  heads: [1,2,4,8]
  ffn_expansion_factor: 2.66
  bias: False
  LayerNorm_type: WithBias
  dual_pixel_task: False


# path
path:
  pretrain_network_g: ~
  strict_load_g: true
  resume_state: ~

# training settings
train:
  total_iter: 396000
  warmup_iter: -1 # no warm up
  use_grad_clip: true

  # Split 300k iterations into two cycles. 
  # 1st cycle: fixed 3e-4 LR for 92k iters. 
  # 2nd cycle: cosine annealing (3e-4 to 1e-6) for 208k iters.
  scheduler:
    type: CosineAnnealingRestartCyclicLR
    periods: [144000, 288000]       
    restart_weights: [1,1]
    eta_mins: [0.0003,0.000001]   
  
  mixing_augs:
    mixup: false
    mixup_beta: 1.2
    use_identity: true

  optim_g:
    type: AdamW
    lr: !!float 3e-4
    weight_decay: !!float 1e-4
    betas: [0.9, 0.999]
  
  # losses
  pixel_opt:
    type: L1Loss
    loss_weight: 1
    reduction: mean

# validation settings
val:
  window_size: 8
  val_freq: !!float 4e3
  save_img: false
  rgb2bgr: true
  use_image: true
  max_minibatch: 8

  metrics:
    psnr: # metric name, can be arbitrary
      type: calculate_psnr
      crop_border: 0
      test_y_channel: true

# logging settings
logger:
  print_freq: 1000
  save_checkpoint_freq: !!float 4e3
  use_tb_logger: true
  wandb:
    project: ~
    resume_id: ~

# dist training settings
dist_params:
  backend: nccl
  port: 29500


================================================
FILE: Deraining/Deraining/README.md
================================================

## Training

1. To download Rain13K training and testing data, run
```
python download_data.py --data train-test
```

2. To train Restormer with default settings, run
```
cd Restormer
./train.sh Deraining/Options/Deraining_Restormer.yml
```

**Note:** The above training script uses 8 GPUs by default. To use any other number of GPUs, modify [Restormer/train.sh](../train.sh) and [Deraining/Options/Deraining_Restormer.yml](Options/Deraining_Restormer.yml)

## Evaluation

1. Download the pre-trained [model](https://drive.google.com/drive/folders/1ZEDDEVW0UgkpWi-N4Lj_JUoVChGXCu_u?usp=sharing) and place it in `./pretrained_models/`

2. Download test datasets (Test100, Rain100H, Rain100L, Test1200, Test2800), run 
```
python download_data.py --data test
```

3. Testing
```
python test.py
```

#### To reproduce PSNR/SSIM scores of Table 1, run

```
evaluate_PSNR_SSIM.m 
```


================================================
FILE: Deraining/Deraining/download_data.py
================================================
## Restormer: Efficient Transformer for High-Resolution Image Restoration
## Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, and Ming-Hsuan Yang
## https://arxiv.org/abs/2111.09881

## Download training and testing data for image deraining task
import os
# import gdown
import shutil

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--data', type=str, required=True, help='train, test or train-test')
args = parser.parse_args()

### Google drive IDs ######
rain13k_train = '14BidJeG4nSNuFNFDf99K-7eErCq4i47t'   ## https://drive.google.com/file/d/14BidJeG4nSNuFNFDf99K-7eErCq4i47t/view?usp=sharing
rain13k_test  = '1P_-RAvltEoEhfT-9GrWRdpEi6NSswTs8'   ## https://drive.google.com/file/d/1P_-RAvltEoEhfT-9GrWRdpEi6NSswTs8/view?usp=sharing

for data in args.data.split('-'):
    if data == 'train':
        print('Rain13K Training Data!')
        # gdown.download(id=rain13k_train, output='Datasets/train.zip', quiet=False)
        os.system(f'gdrive download {rain13k_train} --path Datasets/')
        print('Extracting Rain13K data...')
        shutil.unpack_archive('Datasets/train.zip', 'Datasets')
        os.remove('Datasets/train.zip')

    if data == 'test':
        print('Download Deraining Testing Data')
        # gdown.download(id=rain13k_test, output='Datasets/test.zip', quiet=False)
        os.system(f'gdrive download {rain13k_test} --path Datasets/')
        print('Extracting test data...')
        shutil.unpack_archive('Datasets/test.zip', 'Datasets')
        os.remove('Datasets/test.zip')

   
# print('Download completed successfully!')




================================================
FILE: Deraining/Deraining/evaluate_PSNR_SSIM.m
================================================
%% Restormer: Efficient Transformer for High-Resolution Image Restoration
%% Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, and Ming-Hsuan Yang
%% https://arxiv.org/abs/2111.09881


clc;close all;clear all;

% datasets = {'Rain100L'};
datasets = {'Test100', 'Rain100H', 'Rain100L', 'Test2800', 'Test1200'};
num_set = length(datasets);

psnr_alldatasets = 0;
ssim_alldatasets = 0;

tic
delete(gcp('nocreate'))
parpool('local',20);

for idx_set = 1:num_set
    file_path = strcat('./results/', datasets{idx_set}, '/');
    gt_path = strcat('/mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/test', datasets{idx_set}, '/target/');
    path_list = [dir(strcat(file_path,'*.jpg')); dir(strcat(file_path,'*.png'))];
    gt_list = [dir(strcat(gt_path,'*.jpg')); dir(strcat(gt_path,'*.png'))];
    img_num = length(path_list);

    total_psnr = 0;
    total_ssim = 0;
    if img_num > 0 
        parfor j = 1:img_num 
           image_name = path_list(j).name;
           gt_name = gt_list(j).name;
           input = imread(strcat(file_path,image_name));
           gt = imread(strcat(gt_path, gt_name));
           ssim_val = compute_ssim(input, gt);
           psnr_val = compute_psnr(input, gt);
           total_ssim = total_ssim + ssim_val;
           total_psnr = total_psnr + psnr_val;
       end
    end
    qm_psnr = total_psnr / img_num;
    qm_ssim = total_ssim / img_num;

    fprintf('For %s dataset PSNR: %f SSIM: %f\n', datasets{idx_set}, qm_psnr, qm_ssim);

    psnr_alldatasets = psnr_alldatasets + qm_psnr;
    ssim_alldatasets = ssim_alldatasets + qm_ssim;
    
end

fprintf('For all datasets PSNR: %f SSIM: %f\n', psnr_alldatasets/num_set, ssim_alldatasets/num_set);

delete(gcp('nocreate'))
toc

function ssim_mean=compute_ssim(img1,img2)
    if size(img1, 3) == 3
        img1 = rgb2ycbcr(img1);
        img1 = img1(:, :, 1);
    end

    if size(img2, 3) == 3
        img2 = rgb2ycbcr(img2);
        img2 = img2(:, :, 1);
    end
    ssim_mean = SSIM_index(img1, img2);
end

function psnr=compute_psnr(img1,img2)
    if size(img1, 3) == 3
        img1 = rgb2ycbcr(img1);
        img1 = img1(:, :, 1);
    end

    if size(img2, 3) == 3
        img2 = rgb2ycbcr(img2);
        img2 = img2(:, :, 1);
    end

    imdff = double(img1) - double(img2);
    imdff = imdff(:);
    rmse = sqrt(mean(imdff.^2));
    psnr = 20*log10(255/rmse);
    
end

function [mssim, ssim_map] = SSIM_index(img1, img2, K, window, L)

%========================================================================
%SSIM Index, Version 1.0
%Copyright(c) 2003 Zhou Wang
%All Rights Reserved.
%
%The author is with Howard Hughes Medical Institute, and Laboratory
%for Computational Vision at Center for Neural Science and Courant
%Institute of Mathematical Sciences, New York University.
%
%----------------------------------------------------------------------
%Permission to use, copy, or modify this software and its documentation
%for educational and research purposes only and without fee is hereby
%granted, provided that this copyright notice and the original authors'
%names appear on all copies and supporting documentation. This program
%shall not be used, rewritten, or adapted as the basis of a commercial
%software or hardware product without first obtaining permission of the
%authors. The authors make no representations about the suitability of
%this software for any purpose. It is provided "as is" without express
%or implied warranty.
%----------------------------------------------------------------------
%
%This is an implementation of the algorithm for calculating the
%Structural SIMilarity (SSIM) index between two images. Please refer
%to the following paper:
%
%Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, "Image
%quality assessment: From error measurement to structural similarity"
%IEEE Transactios on Image Processing, vol. 13, no. 1, Jan. 2004.
%
%Kindly report any suggestions or corrections to zhouwang@ieee.org
%
%----------------------------------------------------------------------
%
%Input : (1) img1: the first image being compared
%        (2) img2: the second image being compared
%        (3) K: constants in the SSIM index formula (see the above
%            reference). defualt value: K = [0.01 0.03]
%        (4) window: local window for statistics (see the above
%            reference). default widnow is Gaussian given by
%            window = fspecial('gaussian', 11, 1.5);
%        (5) L: dynamic range of the images. default: L = 255
%
%Output: (1) mssim: the mean SSIM index value between 2 images.
%            If one of the images being compared is regarded as 
%            perfect quality, then mssim can be considered as the
%            quality measure of the other image.
%            If img1 = img2, then mssim = 1.
%        (2) ssim_map: the SSIM index map of the test image. The map
%            has a smaller size than the input images. The actual size:
%            size(img1) - size(window) + 1.
%
%Default Usage:
%   Given 2 test images img1 and img2, whose dynamic range is 0-255
%
%   [mssim ssim_map] = ssim_index(img1, img2);
%
%Advanced Usage:
%   User defined parameters. For example
%
%   K = [0.05 0.05];
%   window = ones(8);
%   L = 100;
%   [mssim ssim_map] = ssim_index(img1, img2, K, window, L);
%
%See the results:
%
%   mssim                        %Gives the mssim value
%   imshow(max(0, ssim_map).^4)  %Shows the SSIM index map
%
%========================================================================


if (nargin < 2 || nargin > 5)
   ssim_index = -Inf;
   ssim_map = -Inf;
   return;
end

if (size(img1) ~= size(img2))
   ssim_index = -Inf;
   ssim_map = -Inf;
   return;
end

[M N] = size(img1);

if (nargin == 2)
   if ((M < 11) || (N < 11))
	   ssim_index = -Inf;
	   ssim_map = -Inf;
      return
   end
   window = fspecial('gaussian', 11, 1.5);	%
   K(1) = 0.01;								      % default settings
   K(2) = 0.03;								      %
   L = 255;                                  %
end

if (nargin == 3)
   if ((M < 11) || (N < 11))
	   ssim_index = -Inf;
	   ssim_map = -Inf;
      return
   end
   window = fspecial('gaussian', 11, 1.5);
   L = 255;
   if (length(K) == 2)
      if (K(1) < 0 || K(2) < 0)
		   ssim_index = -Inf;
   		ssim_map = -Inf;
	   	return;
      end
   else
	   ssim_index = -Inf;
   	ssim_map = -Inf;
	   return;
   end
end

if (nargin == 4)
   [H W] = size(window);
   if ((H*W) < 4 || (H > M) || (W > N))
	   ssim_index = -Inf;
	   ssim_map = -Inf;
      return
   end
   L = 255;
   if (length(K) == 2)
      if (K(1) < 0 || K(2) < 0)
		   ssim_index = -Inf;
   		ssim_map = -Inf;
	   	return;
      end
   else
	   ssim_index = -Inf;
   	ssim_map = -Inf;
	   return;
   end
end

if (nargin == 5)
   [H W] = size(window);
   if ((H*W) < 4 || (H > M) || (W > N))
	   ssim_index = -Inf;
	   ssim_map = -Inf;
      return
   end
   if (length(K) == 2)
      if (K(1) < 0 || K(2) < 0)
		   ssim_index = -Inf;
   		ssim_map = -Inf;
	   	return;
      end
   else
	   ssim_index = -Inf;
   	ssim_map = -Inf;
	   return;
   end
end

C1 = (K(1)*L)^2;
C2 = (K(2)*L)^2;
window = window/sum(sum(window));
img1 = double(img1);
img2 = double(img2);

mu1   = filter2(window, img1, 'valid');
mu2   = filter2(window, img2, 'valid');
mu1_sq = mu1.*mu1;
mu2_sq = mu2.*mu2;
mu1_mu2 = mu1.*mu2;
sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq;
sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq;
sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2;

if (C1 > 0 & C2 > 0)
   ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq + mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2));
else
   numerator1 = 2*mu1_mu2 + C1;
   numerator2 = 2*sigma12 + C2;
	denominator1 = mu1_sq + mu2_sq + C1;
   denominator2 = sigma1_sq + sigma2_sq + C2;
   ssim_map = ones(size(mu1));
   index = (denominator1.*denominator2 > 0);
   ssim_map(index) = (numerator1(index).*numerator2(index))./(denominator1(index).*denominator2(index));
   index = (denominator1 ~= 0) & (denominator2 == 0);
   ssim_map(index) = numerator1(index)./denominator1(index);
end

mssim = mean2(ssim_map);

end



================================================
FILE: Deraining/Deraining/test.py
================================================
## Restormer: Efficient Transformer for High-Resolution Image Restoration
## Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, and Ming-Hsuan Yang
## https://arxiv.org/abs/2111.09881



import numpy as np
import os
import argparse
from tqdm import tqdm

import torch.nn as nn
import torch
import torch.nn.functional as F
import utils

from natsort import natsorted
from glob import glob
from basicsr.models.archs.restormer_arch import Restormer
from skimage import img_as_ubyte
from pdb import set_trace as stx

parser = argparse.ArgumentParser(description='Image Deraining using Restormer')

parser.add_argument('--input_dir', default='/mnt/bn/shiyuan-arnold/code/Restormer/Deraining/Datasets/', type=str, help='Directory of validation images')
parser.add_argument('--result_dir', default='./results/restormer', type=str, help='Directory for results')
parser.add_argument('--weights', default='/mnt/bn/shiyuan-arnold/code/Mamber/Restormer/experiments/deraining.pth', type=str, help='Path to weights')

args = parser.parse_args()

####### Load yaml #######
yaml_file = 'Options/Deraining_Restormer.yml'
import yaml

try:
    from yaml import CLoader as Loader
except ImportError:
    from yaml import Loader

x = yaml.load(open(yaml_file, mode='r'), Loader=Loader)

s = x['network_g'].pop('type')
##########################

model_restoration = Restormer(**x['network_g'])

checkpoint = torch.load(args.weights)
model_restoration.load_state_dict(checkpoint['params'])
print("===>Testing using weights: ",args.weights)
model_restoration.cuda()
model_restoration = nn.DataParallel(model_restoration)
model_restoration.eval()


factor = 8
datasets = ['Rain100L', 'Rain100H', 'Test100', 'Test1200', 'Test2800']

for dataset in datasets:
    result_dir  = os.path.join(args.result_dir, dataset)
    os.makedirs(result_dir, exist_ok=True)

    inp_dir = os.path.join(args.input_dir, 'test', dataset, 'input')
    files = natsorted(glob(os.path.join(inp_dir, '*.png')) + glob(os.path.join(inp_dir, '*.jpg')))
    with torch.no_grad():
        for file_ in tqdm(files):
            torch.cuda.ipc_collect()
            torch.cuda.empty_cache()

            img = np.float32(utils.load_img(file_))/255.
            img = torch.from_numpy(img).permute(2,0,1)
            input_ = img.unsqueeze(0).cuda()

            # Padding in case images are not multiples of 8
            h,w = input_.shape[2], input_.shape[3]
            H,W = ((h+factor)//factor)*factor, ((w+factor)//factor)*factor
            padh = H-h if h%factor!=0 else 0
            padw = W-w if w%factor!=0 else 0
            input_ = F.pad(input_, (0,padw,0,padh), 'reflect')

            restored = model_restoration(input_)

            # Unpad images to original dimensions
            restored = restored[:,:,:h,:w]

            restored = torch.clamp(restored,0,1).cpu().detach().permute(0, 2, 3, 1).squeeze(0).numpy()

            utils.save_img((os.path.join(result_dir, os.path.splitext(os.path.split(file_)[-1])[0]+'.png')), img_as_ubyte(restored))


================================================
FILE: Deraining/Deraining/utils.py
================================================
## Restormer: Efficient Transformer for High-Resolution Image Restoration
## Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, and Ming-Hsuan Yang
## https://arxiv.org/abs/2111.09881

import numpy as np
import os
import cv2
import math

def calculate_psnr(img1, img2, border=0):
    # img1 and img2 have range [0, 255]
    #img1 = img1.squeeze()
    #img2 = img2.squeeze()
    if not img1.shape == img2.shape:
        raise ValueError('Input images must have the same dimensions.')
    h, w = img1.shape[:2]
    img1 = img1[border:h-border, border:w-border]
    img2 = img2[border:h-border, border:w-border]

    img1 = img1.astype(np.float64)
    img2 = img2.astype(np.float64)
    mse = np.mean((img1 - img2)**2)
    if mse == 0:
        return float('inf')
    return 20 * math.log10(255.0 / math.sqrt(mse))


# --------------------------------------------
# SSIM
# --------------------------------------------
def calculate_ssim(img1, img2, border=0):
    '''calculate SSIM
    the same outputs as MATLAB's
    img1, img2: [0, 255]
    '''
    #img1 = img1.squeeze()
    #img2 = img2.squeeze()
    if not img1.shape == img2.shape:
        raise ValueError('Input images must have the same dimensions.')
    h, w = img1.shape[:2]
    img1 = img1[border:h-border, border:w-border]
    img2 = img2[border:h-border, border:w-border]

    if img1.ndim == 2:
        return ssim(img1, img2)
    elif img1.ndim == 3:
        if img1.shape[2] == 3:
            ssims = []
            for i in range(3):
                ssims.append(ssim(img1[:,:,i], img2[:,:,i]))
            return np.array(ssims).mean()
        elif img1.shape[2] == 1:
            return ssim(np.squeeze(img1), np.squeeze(img2))
    else:
        raise ValueError('Wrong input image dimensions.')


def ssim(img1, img2):
    C1 = (0.01 * 255)**2
    C2 = (0.03 * 255)**2

    img1 = img1.astype(np.float64)
    img2 = img2.astype(np.float64)
    kernel = cv2.getGaussianKernel(11, 1.5)
    window = np.outer(kernel, kernel.transpose())

    mu1 = cv2.filter2D(img1, -1, window)[5:-5, 5:-5]  # valid
    mu2 = cv2.filter2D(img2, -1, window)[5:-5, 5:-5]
    mu1_sq = mu1**2
    mu2_sq = mu2**2
    mu1_mu2 = mu1 * mu2
    sigma1_sq = cv2.filter2D(img1**2, -1, window)[5:-5, 5:-5] - mu1_sq
    sigma2_sq = cv2.filter2D(img2**2, -1, window)[5:-5, 5:-5] - mu2_sq
    sigma12 = cv2.filter2D(img1 * img2, -1, window)[5:-5, 5:-5] - mu1_mu2

    ssim_map = ((2 * mu1_mu2 + C1) * (2 * sigma12 + C2)) / ((mu1_sq + mu2_sq + C1) *
                                                            (sigma1_sq + sigma2_sq + C2))
    return ssim_map.mean()

def load_img(filepath):
    return cv2.cvtColor(cv2.imread(filepath), cv2.COLOR_BGR2RGB)

def save_img(filepath, img):
    cv2.imwrite(filepath,cv2.cvtColor(img, cv2.COLOR_RGB2BGR))

def load_gray_img(filepath):
    return np.expand_dims(cv2.imread(filepath, cv2.IMREAD_GRAYSCALE), axis=2)

def save_gray_img(filepath, img):
    cv2.imwrite(filepath, img)


================================================
FILE: Deraining/Deraining_test.sh
================================================
CUDA_VISIBLE_DEVICES=2 \
python3 ./basicsr/test_deraining.py

================================================
FILE: Deraining/Deraining_train.sh
================================================
bash ./train.sh Deraining/Options/Deraining_mamber34.yml

================================================
FILE: Deraining/INSTALL.md
================================================
# Installation

This repository is built in PyTorch 1.8.1 and tested on Ubuntu 16.04 environment (Python3.7, CUDA10.2, cuDNN7.6).
Follow these intructions

1. Clone our repository
```
git clone https://github.com/swz30/Restormer.git
cd Restormer
```

2. Make conda environment
```
conda create -n pytorch181 python=3.7
conda activate pytorch181
```

3. Install dependencies
```
conda install pytorch=1.8 torchvision cudatoolkit=10.2 -c pytorch
pip install matplotlib scikit-learn scikit-image opencv-python yacs joblib natsort h5py tqdm
pip install einops gdown addict future lmdb numpy pyyaml requests scipy tb-nightly yapf lpips
```

4. Install basicsr
```
python setup.py develop --no_cuda_ext
```

### Download datasets from Google Drive

To be able to download datasets automatically you would need `go` and `gdrive` installed. 

1. You can install `go` with the following
```
curl -O https://storage.googleapis.com/golang/go1.11.1.linux-amd64.tar.gz
mkdir -p ~/installed
tar -C ~/installed -xzf go1.11.1.linux-amd64.tar.gz
mkdir -p ~/go
```

2. Add the lines in `~/.bashrc`
```
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin:$HOME/installed/go/bin
```

3. Install `gdrive` using
```
go get github.com/prasmussen/gdrive
```

4. Close current terminal and open a new terminal. 


================================================
FILE: Deraining/LICENSE.md
================================================
## ACADEMIC PUBLIC LICENSE

### Permissions
:heavy_check_mark: Non-Commercial use
:heavy_check_mark: Modification
:heavy_check_mark: Distribution
:heavy_check_mark: Private use

### Limitations
:x: Commercial Use
:x: Liability
:x: Warranty

### Conditions
:information_source: License and copyright notice
:information_source: Same License

Restormer is free for use in noncommercial settings: at academic institutions for teaching and research use, and at non-profit research organizations.
You can use Restormer in your research, academic work, non-commercial work, projects and personal work. We only ask you to credit us appropriately. 

You have the right to use the software, to distribute copies, to receive source code, to change the software and distribute your modifications or the modified software.
If you distribute verbatim or modified copies of this software, they must be distributed under this license.
This license guarantees that you're safe when using Restormer in your work, for teaching or research.
This license guarantees that Restormer will remain available free of charge for nonprofit use.
You can modify Restormer to your purposes, and you can also share your modifications.

If you would like to use Restormer in commercial settings, contact us so we can discuss options. Send an email to waqas.zamir@inceptioniai.org




================================================
FILE: Deraining/VERSION
================================================
1.2.0


================================================
FILE: Deraining/basicsr/data/__init__.py
================================================
import importlib
import numpy as np
import random
import torch
import torch.utils.data
from functools import partial
from os import path as osp

from data.prefetch_dataloader import PrefetchDataLoader
from utils import get_root_logger, scandir
from utils.dist_util import get_dist_info

__all__ = ['create_dataset', 'create_dataloader']

# automatically scan and import dataset modules
# scan all the files under the data folder with '_dataset' in file names
data_folder = osp.dirname(osp.abspath(__file__))
dataset_filenames = [
    osp.splitext(osp.basename(v))[0] for v in scandir(data_folder)
    if v.endswith('_dataset.py')
]
# import all the dataset modules
_dataset_modules = [
    importlib.import_module(f'data.{file_name}')
    for file_name in dataset_filenames
]


def create_dataset(dataset_opt):
    """Create dataset.

    Args:
        dataset_opt (dict): Configuration for dataset. It constains:
            name (str): Dataset name.
            type (str): Dataset type.
    """
    dataset_type = dataset_opt['type']

    # dynamic instantiation
    for module in _dataset_modules:
        dataset_cls = getattr(module, dataset_type, None)
        if dataset_cls is not None:
            break
    if dataset_cls is None:
        raise ValueError(f'Dataset {dataset_type} is not found.')

    dataset = dataset_cls(dataset_opt)

    logger = get_root_logger()
    logger.info(
        f'Dataset {dataset.__class__.__name__} - {dataset_opt["name"]} '
        'is created.')
    return dataset


def create_dataloader(dataset,
                      dataset_opt,
                      num_gpu=1,
                      dist=False,
                      sampler=None,
                      seed=None):
    """Create dataloader.

    Args:
        dataset (torch.utils.data.Dataset): Dataset.
        dataset_opt (dict): Dataset options. It contains the following keys:
            phase (str): 'train' or 'val'.
            num_worker_per_gpu (int): Number of workers for each GPU.
            batch_size_per_gpu (int): Training batch size for each GPU.
        num_gpu (int): Number of GPUs. Used only in the train phase.
            Default: 1.
        dist (bool): Whether in distributed training. Used only in the train
            phase. Default: False.
        sampler (torch.utils.data.sampler): Data sampler. Default: None.
        seed (int | None): Seed. Default: None
    """
    phase = dataset_opt['phase']
    rank, _ = get_dist_info()
    if phase == 'train':
        if dist:  # distributed training
            batch_size = dataset_opt['batch_size_per_gpu']
            num_workers = dataset_opt['num_worker_per_gpu']
        else:  # non-distributed training
            multiplier = 1 if num_gpu == 0 else num_gpu
            batch_size = dataset_opt['batch_size_per_gpu'] * multiplier
            num_workers = dataset_opt['num_worker_per_gpu'] * multiplier
        dataloader_args = dict(
            dataset=dataset,
            batch_size=batch_size,
            shuffle=False,
            num_workers=num_workers,
            sampler=sampler,
            drop_last=True)
        if sampler is None:
            dataloader_args['shuffle'] = True
        dataloader_args['worker_init_fn'] = partial(
            worker_init_fn, num_workers=num_workers, rank=rank,
            seed=seed) if seed is not None else None
    elif phase in ['val', 'test']:  # validation
        dataloader_args = dict(
            dataset=dataset, batch_size=1, shuffle=False, num_workers=0)
    else:
        raise ValueError(f'Wrong dataset phase: {phase}. '
                         "Supported ones are 'train', 'val' and 'test'.")

    dataloader_args['pin_memory'] = dataset_opt.get('pin_memory', False)

    prefetch_mode = dataset_opt.get('prefetch_mode')
    if prefetch_mode == 'cpu':  # CPUPrefetcher
        num_prefetch_queue = dataset_opt.get('num_prefetch_queue', 1)
        logger = get_root_logger()
        logger.info(f'Use {prefetch_mode} prefetch dataloader: '
                    f'num_prefetch_queue = {num_prefetch_queue}')
        return PrefetchDataLoader(
            num_prefetch_queue=num_prefetch_queue, **dataloader_args)
    else:
        # prefetch_mode=None: Normal dataloader
        # prefetch_mode='cuda': dataloader for CUDAPrefetcher
        return torch.utils.data.DataLoader(**dataloader_args)


def worker_init_fn(worker_id, num_workers, rank, seed):
    # Set the worker seed to num_workers * rank + worker_id + seed
    worker_seed = num_workers * rank + worker_id + seed
    np.random.seed(worker_seed)
    random.seed(worker_seed)


================================================
FILE: Deraining/basicsr/data/data_sampler.py
================================================
import math
import torch
from torch.utils.data.sampler import Sampler


class EnlargedSampler(Sampler):
    """Sampler that restricts data loading to a subset of the dataset.

    Modified from torch.utils.data.distributed.DistributedSampler
    Support enlarging the dataset for iteration-based training, for saving
    time when restart the dataloader after each epoch

    Args:
        dataset (torch.utils.data.Dataset): Dataset used for sampling.
        num_replicas (int | None): Number of processes participating in
            the training. It is usually the world_size.
        rank (int | None): Rank of the current process within num_replicas.
        ratio (int): Enlarging ratio. Default: 1.
    """

    def __init__(self, dataset, num_replicas, rank, ratio=1):
        self.dataset = dataset
        self.num_replicas = num_replicas
        self.rank = rank
        self.epoch = 0
        self.num_samples = math.ceil(
            len(self.dataset) * ratio / self.num_replicas)
        self.total_size = self.num_samples * self.num_replicas

    def __iter__(self):
        # deterministically shuffle based on epoch
        g = torch.Generator()
        g.manual_seed(self.epoch)
        indices = torch.randperm(self.total_size, generator=g).tolist()

        dataset_size = len(self.dataset)
        indices = [v % dataset_size for v in indices]

        # subsample
        indices = indices[self.rank:self.total_size:self.num_replicas]
        assert len(indices) == self.num_samples

        return iter(indices)

    def __len__(self):
        return self.num_samples

    def set_epoch(self, epoch):
        self.epoch = epoch


================================================
FILE: Deraining/basicsr/data/data_util.py
================================================
import cv2
cv2.setNumThreads(1)
import numpy as np
import torch
from os import path as osp
from torch.nn import functional as F

from data.transforms import mod_crop
from utils import img2tensor, scandir


def read_img_seq(path, require_mod_crop=False, scale=1):
    """Read a sequence of images from a given folder path.

    Args:
        path (list[str] | str): List of image paths or image folder path.
        require_mod_crop (bool): Require mod crop for each image.
            Default: False.
        scale (int): Scale factor for mod_crop. Default: 1.

    Returns:
        Tensor: size (t, c, h, w), RGB, [0, 1].
    """
    if isinstance(path, list):
        img_paths = path
    else:
        img_paths = sorted(list(scandir(path, full_path=True)))
    imgs = [cv2.imread(v).astype(np.float32) / 255. for v in img_paths]
    if require_mod_crop:
        imgs = [mod_crop(img, scale) for img in imgs]
    imgs = img2tensor(imgs, bgr2rgb=True, float32=True)
    imgs = torch.stack(imgs, dim=0)
    return imgs


def generate_frame_indices(crt_idx,
                           max_frame_num,
                           num_frames,
                           padding='reflection'):
    """Generate an index list for reading `num_frames` frames from a sequence
    of images.

    Args:
        crt_idx (int): Current center index.
        max_frame_num (int): Max number of the sequence of images (from 1).
        num_frames (int): Reading num_frames frames.
        padding (str): Padding mode, one of
            'replicate' | 'reflection' | 'reflection_circle' | 'circle'
            Examples: current_idx = 0, num_frames = 5
            The generated frame indices under different padding mode:
            replicate: [0, 0, 0, 1, 2]
            reflection: [2, 1, 0, 1, 2]
            reflection_circle: [4, 3, 0, 1, 2]
            circle: [3, 4, 0, 1, 2]

    Returns:
        list[int]: A list of indices.
    """
    assert num_frames % 2 == 1, 'num_frames should be an odd number.'
    assert padding in ('replicate', 'reflection', 'reflection_circle',
                       'circle'), f'Wrong padding mode: {padding}.'

    max_frame_num = max_frame_num - 1  # start from 0
    num_pad = num_frames // 2

    indices = []
    for i in range(crt_idx - num_pad, crt_idx + num_pad + 1):
        if i < 0:
            if padding == 'replicate':
                pad_idx = 0
            elif padding == 'reflection':
                pad_idx = -i
            elif padding == 'reflection_circle':
                pad_idx = crt_idx + num_pad - i
            else:
                pad_idx = num_frames + i
        elif i > max_frame_num:
            if padding == 'replicate':
                pad_idx = max_frame_num
            elif padding == 'reflection':
                pad_idx = max_frame_num * 2 - i
            elif padding == 'reflection_circle':
                pad_idx = (crt_idx - num_pad) - (i - max_frame_num)
            else:
                pad_idx = i - num_frames
        else:
            pad_idx = i
        indices.append(pad_idx)
    return indices


def paired_paths_from_lmdb(folders, keys):
    """Generate paired paths from lmdb files.

    Contents of lmdb. Taking the `lq.lmdb` for example, the file structure is:

    lq.lmdb
    ├── data.mdb
    ├── lock.mdb
    ├── meta_info.txt

    The data.mdb and lock.mdb are standard lmdb files and you can refer to
    https://lmdb.readthedocs.io/en/release/ for more details.

    The meta_info.txt is a specified txt file to record the meta information
    of our datasets. It will be automatically created when preparing
    datasets by our provided dataset tools.
    Each line in the txt file records
    1)image name (with extension),
    2)image shape,
    3)compression level, separated by a white space.
    Example: `baboon.png (120,125,3) 1`

    We use the image name without extension as the lmdb key.
    Note that we use the same key for the corresponding lq and gt images.

    Args:
        folders (list[str]): A list of folder path. The order of list should
            be [input_folder, gt_folder].
        keys (list[str]): A list of keys identifying folders. The order should
            be in consistent with folders, e.g., ['lq', 'gt'].
            Note that this key is different from lmdb keys.

    Returns:
        list[str]: Returned path list.
    """
    assert len(folders) == 2, (
        'The len of folders should be 2 with [input_folder, gt_folder]. '
        f'But got {len(folders)}')
    assert len(keys) == 2, (
        'The len of keys should be 2 with [input_key, gt_key]. '
        f'But got {len(keys)}')
    input_folder, gt_folder = folders
    input_key, gt_key = keys

    if not (input_folder.endswith('.lmdb') and gt_folder.endswith('.lmdb')):
        raise ValueError(
            f'{input_key} folder and {gt_key} folder should both in lmdb '
            f'formats. But received {input_key}: {input_folder}; '
            f'{gt_key}: {gt_folder}')
    # ensure that the two meta_info files are the same
    with open(osp.join(input_folder, 'meta_info.txt')) as fin:
        input_lmdb_keys = [line.split('.')[0] for line in fin]
    with open(osp.join(gt_folder, 'meta_info.txt')) as fin:
        gt_lmdb_keys = [line.split('.')[0] for line in fin]
    if set(input_lmdb_keys) != set(gt_lmdb_keys):
        raise ValueError(
            f'Keys in {input_key}_folder and {gt_key}_folder are different.')
    else:
        paths = []
        for lmdb_key in sorted(input_lmdb_keys):
            paths.append(
                dict([(f'{input_key}_path', lmdb_key),
                      (f'{gt_key}_path', lmdb_key)]))
        return paths


def paired_paths_from_meta_info_file(folders, keys, meta_info_file,
                                     filename_tmpl):
    """Generate paired paths from an meta information file.

    Each line in the meta information file contains the image names and
    image shape (usually for gt), separated by a white space.

    Example of an meta information file:
    ```
    0001_s001.png (480,480,3)
    0001_s002.png (480,480,3)
    ```

    Args:
        folders (list[str]): A list of folder path. The order of list should
            be [input_folder, gt_folder].
        keys (list[str]): A list of keys identifying folders. The order should
            be in consistent with folders, e.g., ['lq', 'gt'].
        meta_info_file (str): Path to the meta information file.
        filename_tmpl (str): Template for each filename. Note that the
            template excludes the file extension. Usually the filename_tmpl is
            for files in the input folder.

    Returns:
        list[str]: Returned path list.
    """
    assert len(folders) == 2, (
        'The len of folders should be 2 with [input_folder, gt_folder]. '
        f'But got {len(folders)}')
    assert len(keys) == 2, (
        'The len of keys should be 2 with [input_key, gt_key]. '
        f'But got {len(keys)}')
    input_folder, gt_folder = folders
    input_key, gt_key = keys

    with open(meta_info_file, 'r') as fin:
        gt_names = [line.split(' ')[0] for line in fin]

    paths = []
    for gt_name in gt_names:
        basename, ext = osp.splitext(osp.basename(gt_name))
        input_name = f'{filename_tmpl.format(basename)}{ext}'
        input_path = osp.join(input_folder, input_name)
        gt_path = osp.join(gt_folder, gt_name)
        paths.append(
            dict([(f'{input_key}_path', input_path),
                  (f'{gt_key}_path', gt_path)]))
    return paths


def paired_paths_from_folder(folders, keys, filename_tmpl):
    """Generate paired paths from folders.

    Args:
        folders (list[str]): A list of folder path. The order of list should
            be [input_folder, gt_folder].
        keys (list[str]): A list of keys identifying folders. The order should
            be in consistent with folders, e.g., ['lq', 'gt'].
        filename_tmpl (str): Template for each filename. Note that the
            template excludes the file extension. Usually the filename_tmpl is
            for files in the input folder.

    Returns:
        list[str]: Returned path list.
    """
    assert len(folders) == 2, (
        'The len of folders should be 2 with [input_folder, gt_folder]. '
        f'But got {len(folders)}')
    assert len(keys) == 2, (
        'The len of keys should be 2 with [input_key, gt_key]. '
        f'But got {len(keys)}')
    input_folder, gt_folder = folders
    input_key, gt_key = keys

    input_paths = list(scandir(input_folder))
    gt_paths = list(scandir(gt_folder))
    assert len(input_paths) == len(gt_paths), (
        f'{input_key} and {gt_key} datasets have different number of images: '
        f'{len(input_paths)}, {len(gt_paths)}.')
    paths = []
    for idx in range(len(gt_paths)):
        gt_path = gt_paths[idx]
        basename, ext = osp.splitext(osp.basename(gt_path))
        input_path = input_paths[idx]
        basename_input, ext_input = osp.splitext(osp.basename(input_path))
        input_name = f'{filename_tmpl.format(basename)}{ext_input}'
        input_path = osp.join(input_folder, input_name)
        assert input_name in input_paths, (f'{input_name} is not in '
                                           f'{input_key}_paths.')
        gt_path = osp.join(gt_folder, gt_path)
        paths.append(
            dict([(f'{input_key}_path', input_path),
                  (f'{gt_key}_path', gt_path)]))
    return paths

def paired_DP_paths_from_folder(folders, keys, filename_tmpl):
    """Generate paired paths from folders.

    Args:
        folders (list[str]): A list of folder path. The order of list should
            be [input_folder, gt_folder].
        keys (list[str]): A list of keys identifying folders. The order should
            be in consistent with folders, e.g., ['lq', 'gt'].
        filename_tmpl (str): Template for each filename. Note that the
            template excludes the file extension. Usually the filename_tmpl is
            for files in the input folder.

    Returns:
        list[str]: Returned path list.
    """
    assert len(folders) == 3, (
        'The len of folders should be 3 with [inputL_folder, inputR_folder, gt_folder]. '
        f'But got {len(folders)}')
    assert len(keys) == 3, (
        'The len of keys should be 2 with [inputL_key, inputR_key, gt_key]. '
        f'But got {len(keys)}')
    inputL_folder, inputR_folder, gt_folder = folders
    inputL_key, inputR_key, gt_key = keys

    inputL_paths = list(scandir(inputL_folder))
    inputR_paths = list(scandir(inputR_folder))
    gt_paths = list(scandir(gt_folder))
    assert len(inputL_paths) == len(inputR_paths) == len(gt_paths), (
        f'{inputL_key} and {inputR_key} and {gt_key} datasets have different number of images: '
        f'{len(inputL_paths)}, {len(inputR_paths)}, {len(gt_paths)}.')
    paths = []
    for idx in range(len(gt_paths)):
        gt_path = gt_paths[idx]
        basename, ext = osp.splitext(osp.basename(gt_path))
        inputL_path = inputL_paths[idx]
        basename_input, ext_input = osp.splitext(osp.basename(inputL_path))
        inputL_name = f'{filename_tmpl.format(basename)}{ext_input}'
        inputL_path = osp.join(inputL_folder, inputL_name)
        assert inputL_name in inputL_paths, (f'{inputL_name} is not in '
                                           f'{inputL_key}_paths.')
        inputR_path = inputR_paths[idx]
        basename_input, ext_input = osp.splitext(osp.basename(inputR_path))
        inputR_name = f'{filename_tmpl.format(basename)}{ext_input}'
        inputR_path = osp.join(inputR_folder, inputR_name)
        assert inputR_name in inputR_paths, (f'{inputR_name} is not in '
                                           f'{inputR_key}_paths.')
        gt_path = osp.join(gt_folder, gt_path)
        paths.append(
            dict([(f'{inputL_key}_path', inputL_path),
                  (f'{inputR_key}_path', inputR_path),
                  (f'{gt_key}_path', gt_path)]))
    return paths


def paths_from_folder(folder):
    """Generate paths from folder.

    Args:
        folder (str): Folder path.

    Returns:
        list[str]: Returned path list.
    """

    paths = list(scandir(folder))
    paths = [osp.join(folder, path) for path in paths]
    return paths


def paths_from_lmdb(folder):
    """Generate paths from lmdb.

    Args:
        folder (str): Folder path.

    Returns:
        list[str]: Returned path list.
    """
    if not folder.endswith('.lmdb'):
        raise ValueError(f'Folder {folder}folder should in lmdb format.')
    with open(osp.join(folder, 'meta_info.txt')) as fin:
        paths = [line.split('.')[0] for line in fin]
    return paths


def generate_gaussian_kernel(kernel_size=13, sigma=1.6):
    """Generate Gaussian kernel used in `duf_downsample`.

    Args:
        kernel_size (int): Kernel size. Default: 13.
        sigma (float): Sigma of the Gaussian kernel. Default: 1.6.

    Returns:
        np.array: The Gaussian kernel.
    """
    from scipy.ndimage import filters as filters
    kernel = np.zeros((kernel_size, kernel_size))
    # set element at the middle to one, a dirac delta
    kernel[kernel_size // 2, kernel_size // 2] = 1
    # gaussian-smooth the dirac, resulting in a gaussian filter
    return filters.gaussian_filter(kernel, sigma)


def duf_downsample(x, kernel_size=13, scale=4):
    """Downsamping with Gaussian kernel used in the DUF official code.

    Args:
        x (Tensor): Frames to be downsampled, with shape (b, t, c, h, w).
        kernel_size (int): Kernel size. Default: 13.
        scale (int): Downsampling factor. Supported scale: (2, 3, 4).
            Default: 4.

    Returns:
        Tensor: DUF downsampled frames.
    """
    assert scale in (2, 3,
                     4), f'Only support scale (2, 3, 4), but got {scale}.'

    squeeze_flag = False
    if x.ndim == 4:
        squeeze_flag = True
        x = x.unsqueeze(0)
    b, t, c, h, w = x.size()
    x = x.view(-1, 1, h, w)
    pad_w, pad_h = kernel_size // 2 + scale * 2, kernel_size // 2 + scale * 2
    x = F.pad(x, (pad_w, pad_w, pad_h, pad_h), 'reflect')

    gaussian_filter = generate_gaussian_kernel(kernel_size, 0.4 * scale)
    gaussian_filter = torch.from_numpy(gaussian_filter).type_as(x).unsqueeze(
        0).unsqueeze(0)
    x = F.conv2d(x, gaussian_filter, stride=scale)
    x = x[:, :, 2:-2, 2:-2]
    x = x.view(b, t, c, x.size(2), x.size(3))
    if squeeze_flag:
        x = x.squeeze(0)
    return x


================================================
FILE: Deraining/basicsr/data/ffhq_dataset.py
================================================
from os import path as osp
from torch.utils import data as data
from torchvision.transforms.functional import normalize

from data.transforms import augment
from utils import FileClient, imfrombytes, img2tensor


class FFHQDataset(data.Dataset):
    """FFHQ dataset for StyleGAN.

    Args:
        opt (dict): Config for train datasets. It contains the following keys:
            dataroot_gt (str): Data root path for gt.
            io_backend (dict): IO backend type and other kwarg.
            mean (list | tuple): Image mean.
            std (list | tuple): Image std.
            use_hflip (bool): Whether to horizontally flip.

    """

    def __init__(self, opt):
        super(FFHQDataset, self).__init__()
        self.opt = opt
        # file client (io backend)
        self.file_client = None
        self.io_backend_opt = opt['io_backend']

        self.gt_folder = opt['dataroot_gt']
        self.mean = opt['mean']
        self.std = opt['std']

        if self.io_backend_opt['type'] == 'lmdb':
            self.io_backend_opt['db_paths'] = self.gt_folder
            if not self.gt_folder.endswith('.lmdb'):
                raise ValueError("'dataroot_gt' should end with '.lmdb', "
                                 f'but received {self.gt_folder}')
            with open(osp.join(self.gt_folder, 'meta_info.txt')) as fin:
                self.paths = [line.split('.')[0] for line in fin]
        else:
            # FFHQ has 70000 images in total
            self.paths = [
                osp.join(self.gt_folder, f'{v:08d}.png') for v in range(70000)
            ]

    def __getitem__(self, index):
        if self.file_client is None:
            self.file_client = FileClient(
                self.io_backend_opt.pop('type'), **self.io_backend_opt)

        # load gt image
        gt_path = self.paths[index]
        img_bytes = self.file_client.get(gt_path)
        img_gt = imfrombytes(img_bytes, float32=True)

        # random horizontal flip
        img_gt = augment(img_gt, hflip=self.opt['use_hflip'], rotation=False)
        # BGR to RGB, HWC to CHW, numpy to tensor
        img_gt = img2tensor(img_gt, bgr2rgb=True, float32=True)
        # normalize
        normalize(img_gt, self.mean, self.std, inplace=True)
        return {'gt': img_gt, 'gt_path': gt_path}

    def __len__(self):
        return len(self.paths)


================================================
FILE: Deraining/basicsr/data/meta_info/meta_info_DIV2K800sub_GT.txt
================================================
0001_s001.png (480,480,3)
0001_s002.png (480,480,3)
0001_s003.png (480,480,3)
0001_s004.png (480,480,3)
0001_s005.png (480,480,3)
0001_s006.png (480,480,3)
0001_s007.png (480,480,3)
0001_s008.png (480,480,3)
0001_s009.png (480,480,3)
0001_s010.png (480,480,3)
0001_s011.png (480,480,3)
0001_s012.png (480,480,3)
0001_s013.png (480,480,3)
0001_s014.png (480,480,3)
0001_s015.png (480,480,3)
0001_s016.png (480,480,3)
0001_s017.png (480,480,3)
0001_s018.png (480,480,3)
0001_s019.png (480,480,3)
0001_s020.png (480,480,3)
0001_s021.png (480,480,3)
0001_s022.png (480,480,3)
0001_s023.png (480,480,3)
0001_s024.png (480,480,3)
0001_s025.png (480,480,3)
0001_s026.png (480,480,3)
0001_s027.png (480,480,3)
0001_s028.png (480,480,3)
0001_s029.png (480,480,3)
0001_s030.png (480,480,3)
0001_s031.png (480,480,3)
0001_s032.png (480,480,3)
0001_s033.png (480,480,3)
0001_s034.png (480,480,3)
0001_s035.png (480,480,3)
0001_s036.png (480,480,3)
0001_s037.png (480,480,3)
0001_s038.png (480,480,3)
0001_s039.png (480,480,3)
0001_s040.png (480,480,3)
0002_s001.png (480,480,3)
0002_s002.png (480,480,3)
0002_s003.png (480,480,3)
0002_s004.png (480,480,3)
0002_s005.png (480,480,3)
0002_s006.png (480,480,3)
0002_s007.png (480,480,3)
0002_s008.png (480,480,3)
0002_s009.png (480,480,3)
0002_s010.png (480,480,3)
0002_s011.png (480,480,3)
0002_s012.png (480,480,3)
0002_s013.png (480,480,3)
0002_s014.png (480,480,3)
0002_s015.png (480,480,3)
0002_s016.png (480,480,3)
0002_s017.png (480,480,3)
0002_s018.png (480,480,3)
0002_s019.png (480,480,3)
0002_s020.png (480,480,3)
0002_s021.png (480,480,3)
0002_s022.png (480,480,3)
0002_s023.png (480,480,3)
0002_s024.png (480,480,3)
0002_s025.png (480,480,3)
0002_s026.png (480,480,3)
0002_s027.png (480,480,3)
0002_s028.png (480,480,3)
0002_s029.png (480,480,3)
0002_s030.png (480,480,3)
0002_s031.png (480,480,3)
0002_s032.png (480,480,3)
0002_s033.png (480,480,3)
0002_s034.png (480,480,3)
0002_s035.png (480,480,3)
0002_s036.png (480,480,3)
0002_s037.png (480,480,3)
0002_s038.png (480,480,3)
0002_s039.png (480,480,3)
0002_s040.png (480,480,3)
0002_s041.png (480,480,3)
0002_s042.png (480,480,3)
0002_s043.png (480,480,3)
0002_s044.png (480,480,3)
0002_s045.png (480,480,3)
0002_s046.png (480,480,3)
0002_s047.png (480,480,3)
0002_s048.png (480,480,3)
0002_s049.png (480,480,3)
0002_s050.png (480,480,3)
0002_s051.png (480,480,3)
0002_s052.png (480,480,3)
0002_s053.png (480,480,3)
0002_s054.png (480,480,3)
0002_s055.png (480,480,3)
0002_s056.png (480,480,3)
0003_s001.png (480,480,3)
0003_s002.png (480,480,3)
0003_s003.png (480,480,3)
0003_s004.png (480,480,3)
0003_s005.png (480,480,3)
0003_s006.png (480,480,3)
0003_s007.png (480,480,3)
0003_s008.png (480,480,3)
0003_s009.png (480,480,3)
0003_s010.png (480,480,3)
0003_s011.png (480,480,3)
0003_s012.png (480,480,3)
0003_s013.png (480,480,3)
0003_s014.png (480,480,3)
0003_s015.png (480,480,3)
0003_s016.png (480,480,3)
0003_s017.png (480,480,3)
0003_s018.png (480,480,3)
0003_s019.png (480,480,3)
0003_s020.png (480,480,3)
0003_s021.png (480,480,3)
0003_s022.png (480,480,3)
0003_s023.png (480,480,3)
0003_s024.png (480,480,3)
0003_s025.png (480,480,3)
0003_s026.png (480,480,3)
0003_s027.png (480,480,3)
0003_s028.png (480,480,3)
0003_s029.png (480,480,3)
0003_s030.png (480,480,3)
0003_s031.png (480,480,3)
0003_s032.png (480,480,3)
0003_s033.png (480,480,3)
0003_s034.png (480,480,3)
0003_s035.png (480,480,3)
0003_s036.png (480,480,3)
0003_s037.png (480,480,3)
0003_s038.png (480,480,3)
0003_s039.png (480,480,3)
0003_s040.png (480,480,3)
0004_s001.png (480,480,3)
0004_s002.png (480,480,3)
0004_s003.png (480,480,3)
0004_s004.png (480,480,3)
0004_s005.png (480,480,3)
0004_s006.png (480,480,3)
0004_s007.png (480,480,3)
0004_s008.png (480,480,3)
0004_s009.png (480,480,3)
0004_s010.png (480,480,3)
0004_s011.png (480,480,3)
0004_s012.png (480,480,3)
0004_s013.png (480,480,3)
0004_s014.png (480,480,3)
0004_s015.png (480,480,3)
0004_s016.png (480,480,3)
0004_s017.png (480,480,3)
0004_s018.png (480,480,3)
0004_s019.png (480,480,3)
0004_s020.png (480,480,3)
0004_s021.png (480,480,3)
0004_s022.png (480,480,3)
0004_s023.png (480,480,3)
0004_s024.png (480,480,3)
0004_s025.png (480,480,3)
0004_s026.png (480,480,3)
0004_s027.png (480,480,3)
0004_s028.png (480,480,3)
0004_s029.png (480,480,3)
0004_s030.png (480,480,3)
0004_s031.png (480,480,3)
0004_s032.png (480,480,3)
0004_s033.png (480,480,3)
0004_s034.png (480,480,3)
0004_s035.png (480,480,3)
0004_s036.png (480,480,3)
0004_s037.png (480,480,3)
0004_s038.png (480,480,3)
0004_s039.png (480,480,3)
0004_s040.png (480,480,3)
0005_s001.png (480,480,3)
0005_s002.png (480,480,3)
0005_s003.png (480,480,3)
0005_s004.png (480,480,3)
0005_s005.png (480,480,3)
0005_s006.png (480,480,3)
0005_s007.png (480,480,3)
0005_s008.png (480,480,3)
0005_s009.png (480,480,3)
0005_s010.png (480,480,3)
0005_s011.png (480,480,3)
0005_s012.png (480,480,3)
0005_s013.png (480,480,3)
0005_s014.png (480,480,3)
0005_s015.png (480,480,3)
0005_s016.png (480,480,3)
0005_s017.png (480,480,3)
0005_s018.png (480,480,3)
0005_s019.png (480,480,3)
0005_s020.png (480,480,3)
0005_s021.png (480,480,3)
0005_s022.png (480,480,3)
0005_s023.png (480,480,3)
0005_s024.png (480,480,3)
0005_s025.png (480,480,3)
0005_s026.png (480,480,3)
0005_s027.png (480,480,3)
0005_s028.png (480,480,3)
0005_s029.png (480,480,3)
0005_s030.png (480,480,3)
0005_s031.png (480,480,3)
0005_s032.png (480,480,3)
0005_s033.png (480,480,3)
0005_s034.png (480,480,3)
0005_s035.png (480,480,3)
0005_s036.png (480,480,3)
0005_s037.png (480,480,3)
0005_s038.png (480,480,3)
0005_s039.png (480,480,3)
0005_s040.png (480,480,3)
0005_s041.png (480,480,3)
0005_s042.png (480,480,3)
0005_s043.png (480,480,3)
0005_s044.png (480,480,3)
0005_s045.png (480,480,3)
0005_s046.png (480,480,3)
0005_s047.png (480,480,3)
0005_s048.png (480,480,3)
0006_s001.png (480,480,3)
0006_s002.png (480,480,3)
0006_s003.png (480,480,3)
0006_s004.png (480,480,3)
0006_s005.png (480,480,3)
0006_s006.png (480,480,3)
0006_s007.png (480,480,3)
0006_s008.png (480,480,3)
0006_s009.png (480,480,3)
0006_s010.png (480,480,3)
0006_s011.png (480,480,3)
0006_s012.png (480,480,3)
0006_s013.png (480,480,3)
0006_s014.png (480,480,3)
0006_s015.png (480,480,3)
0006_s016.png (480,480,3)
0006_s017.png (480,480,3)
0006_s018.png (480,480,3)
0006_s019.png (480,480,3)
0006_s020.png (480,480,3)
0006_s021.png (480,480,3)
0006_s022.png (480,480,3)
0006_s023.png (480,480,3)
0006_s024.png (480,480,3)
0006_s025.png (480,480,3)
0006_s026.png (480,480,3)
0006_s027.png (480,480,3)
0006_s028.png (480,480,3)
0006_s029.png (480,480,3)
0006_s030.png (480,480,3)
0006_s031.png (480,480,3)
0006_s032.png (480,480,3)
0006_s033.png (480,480,3)
0006_s034.png (480,480,3)
0006_s035.png (480,480,3)
0006_s036.png (480,480,3)
0006_s037.png (480,480,3)
0006_s038.png (480,480,3)
0006_s039.png (480,480,3)
0006_s040.png (480,480,3)
0007_s001.png (480,480,3)
0007_s002.png (480,480,3)
0007_s003.png (480,480,3)
0007_s004.png (480,480,3)
0007_s005.png (480,480,3)
0007_s006.png (480,480,3)
0007_s007.png (480,480,3)
0007_s008.png (480,480,3)
0007_s009.png (480,480,3)
0007_s010.png (480,480,3)
0007_s011.png (480,480,3)
0007_s012.png (480,480,3)
0007_s013.png (480,480,3)
0007_s014.png (480,480,3)
0007_s015.png (480,480,3)
0007_s016.png (480,480,3)
0007_s017.png (480,480,3)
0007_s018.png (480,480,3)
0007_s019.png (480,480,3)
0007_s020.png (480,480,3)
0007_s021.png (480,480,3)
0007_s022.png (480,480,3)
0007_s023.png (480,480,3)
0007_s024.png (480,480,3)
0007_s025.png (480,480,3)
0007_s026.png (480,480,3)
0007_s027.png (480,480,3)
0007_s028.png (480,480,3)
0007_s029.png (480,480,3)
0007_s030.png (480,480,3)
0007_s031.png (480,480,3)
0007_s032.png (480,480,3)
0007_s033.png (480,480,3)
0007_s034.png (480,480,3)
0007_s035.png (480,480,3)
0007_s036.png (480,480,3)
0007_s037.png (480,480,3)
0007_s038.png (480,480,3)
0007_s039.png (480,480,3)
0007_s040.png (480,480,3)
0008_s001.png (480,480,3)
0008_s002.png (480,480,3)
0008_s003.png (480,480,3)
0008_s004.png (480,480,3)
0008_s005.png (480,480,3)
0008_s006.png (480,480,3)
0008_s007.png (480,480,3)
0008_s008.png (480,480,3)
0008_s009.png (480,480,3)
0008_s010.png (480,480,3)
0008_s011.png (480,480,3)
0008_s012.png (480,480,3)
0008_s013.png (480,480,3)
0008_s014.png (480,480,3)
0008_s015.png (480,480,3)
0008_s016.png (480,480,3)
0008_s017.png (480,480,3)
0008_s018.png (480,480,3)
0008_s019.png (480,480,3)
0008_s020.png (480,480,3)
0008_s021.png (480,480,3)
0008_s022.png (480,480,3)
0008_s023.png (480,480,3)
0008_s024.png (480,480,3)
0008_s025.png (480,480,3)
0008_s026.png (480,480,3)
0008_s027.png (480,480,3)
0008_s028.png (480,480,3)
0008_s029.png (480,480,3)
0008_s030.png (480,480,3)
0008_s031.png (480,480,3)
0008_s032.png (480,480,3)
0008_s033.png (480,480,3)
0008_s034.png (480,480,3)
0008_s035.png (480,480,3)
0008_s036.png (480,480,3)
0008_s037.png (480,480,3)
0008_s038.png (480,480,3)
0008_s039.png (480,480,3)
0008_s040.png (480,480,3)
0009_s001.png (480,480,3)
0009_s002.png (480,480,3)
0009_s003.png (480,480,3)
0009_s004.png (480,480,3)
0009_s005.png (480,480,3)
0009_s006.png (480,480,3)
0009_s007.png (480,480,3)
0009_s008.png (480,480,3)
0009_s009.png (480,480,3)
0009_s010.png (480,480,3)
0009_s011.png (480,480,3)
0009_s012.png (480,480,3)
0009_s013.png (480,480,3)
0009_s014.png (480,480,3)
0009_s015.png (480,480,3)
0009_s016.png (480,480,3)
0009_s017.png (480,480,3)
0009_s018.png (480,480,3)
0009_s019.png (480,480,3)
0009_s020.png (480,480,3)
0009_s021.png (480,480,3)
0009_s022.png (480,480,3)
0009_s023.png (480,480,3)
0009_s024.png (480,480,3)
0009_s025.png (480,480,3)
0009_s026.png (480,480,3)
0009_s027.png (480,480,3)
0009_s028.png (480,480,3)
0009_s029.png (480,480,3)
0009_s030.png (480,480,3)
0009_s031.png (480,480,3)
0009_s032.png (480,480,3)
0009_s033.png (480,480,3)
0009_s034.png (480,480,3)
0009_s035.png (480,480,3)
0009_s036.png (480,480,3)
0009_s037.png (480,480,3)
0009_s038.png (480,480,3)
0009_s039.png (480,480,3)
0009_s040.png (480,480,3)
0009_s041.png (480,480,3)
0009_s042.png (480,480,3)
0009_s043.png (480,480,3)
0009_s044.png (480,480,3)
0009_s045.png (480,480,3)
0009_s046.png (480,480,3)
0009_s047.png (480,480,3)
0009_s048.png (480,480,3)
0010_s001.png (480,480,3)
0010_s002.png (480,480,3)
0010_s003.png (480,480,3)
0010_s004.png (480,480,3)
0010_s005.png (480,480,3)
0010_s006.png (480,480,3)
0010_s007.png (480,480,3)
0010_s008.png (480,480,3)
0010_s009.png (480,480,3)
0010_s010.png (480,480,3)
0010_s011.png (480,480,3)
0010_s012.png (480,480,3)
0010_s013.png (480,480,3)
0010_s014.png (480,480,3)
0010_s015.png (480,480,3)
0010_s016.png (480,480,3)
0010_s017.png (480,480,3)
0010_s018.png (480,480,3)
0010_s019.png (480,480,3)
0010_s020.png (480,480,3)
0010_s021.png (480,480,3)
0010_s022.png (480,480,3)
0010_s023.png (480,480,3)
0010_s024.png (480,480,3)
0010_s025.png (480,480,3)
0010_s026.png (480,480,3)
0010_s027.png (480,480,3)
0010_s028.png (480,480,3)
0010_s029.png (480,480,3)
0010_s030.png (480,480,3)
0010_s031.png (480,480,3)
0010_s032.png (480,480,3)
0010_s033.png (480,480,3)
0010_s034.png (480,480,3)
0010_s035.png (480,480,3)
0010_s036.png (480,480,3)
0010_s037.png (480,480,3)
0010_s038.png (480,480,3)
0010_s039.png (480,480,3)
0010_s040.png (480,480,3)
0010_s041.png (480,480,3)
0010_s042.png (480,480,3)
0010_s043.png (480,480,3)
0010_s044.png (480,480,3)
0010_s045.png (480,480,3)
0010_s046.png (480,480,3)
0010_s047.png (480,480,3)
0010_s048.png (480,480,3)
0011_s001.png (480,480,3)
0011_s002.png (480,480,3)
0011_s003.png (480,480,3)
0011_s004.png (480,480,3)
0011_s005.png (480,480,3)
0011_s006.png (480,480,3)
0011_s007.png (480,480,3)
0011_s008.png (480,480,3)
0011_s009.png (480,480,3)
0011_s010.png (480,480,3)
0011_s011.png (480,480,3)
0011_s012.png (480,480,3)
0011_s013.png (480,480,3)
0011_s014.png (480,480,3)
0011_s015.png (480,480,3)
0011_s016.png (480,480,3)
0011_s017.png (480,480,3)
0011_s018.png (480,480,3)
0011_s019.png (480,480,3)
0011_s020.png (480,480,3)
0011_s021.png (480,480,3)
0011_s022.png (480,480,3)
0011_s023.png (480,480,3)
0011_s024.png (480,480,3)
0011_s025.png (480,480,3)
0011_s026.png (480,480,3)
0011_s027.png (480,480,3)
0011_s028.png (480,480,3)
0011_s029.png (480,480,3)
0011_s030.png (480,480,3)
0011_s031.png (480,480,3)
0011_s032.png (480,480,3)
0011_s033.png (480,480,3)
0011_s034.png (480,480,3)
0011_s035.png (480,480,3)
0011_s036.png (480,480,3)
0011_s037.png (480,480,3)
0011_s038.png (480,480,3)
0011_s039.png (480,480,3)
0011_s040.png (480,480,3)
0012_s001.png (480,480,3)
0012_s002.png (480,480,3)
0012_s003.png (480,480,3)
0012_s004.png (480,480,3)
0012_s005.png (480,480,3)
0012_s006.png (480,480,3)
0012_s007.png (480,480,3)
0012_s008.png (480,480,3)
0012_s009.png (480,480,3)
0012_s010.png (480,480,3)
0012_s011.png (480,480,3)
0012_s012.png (480,480,3)
0012_s013.png (480,480,3)
0012_s014.png (480,480,3)
0012_s015.png (480,480,3)
0012_s016.png (480,480,3)
0012_s017.png (480,480,3)
0012_s018.png (480,480,3)
0012_s019.png (480,480,3)
0012_s020.png (480,480,3)
0012_s021.png (480,480,3)
0012_s022.png (480,480,3)
0012_s023.png (480,480,3)
0012_s024.png (480,480,3)
0012_s025.png (480,480,3)
0012_s026.png (480,480,3)
0012_s027.png (480,480,3)
0012_s028.png (480,480,3)
0012_s029.png (480,480,3)
0012_s030.png (480,480,3)
0012_s031.png (480,480,3)
0012_s032.png (480,480,3)
0012_s033.png (480,480,3)
0012_s034.png (480,480,3)
0012_s035.png (480,480,3)
0012_s036.png (480,480,3)
0012_s037.png (480,480,3)
0012_s038.png (480,480,3)
0012_s039.png (480,480,3)
0012_s040.png (480,480,3)
0013_s001.png (480,480,3)
0013_s002.png (480,480,3)
0013_s003.png (480,480,3)
0013_s004.png (480,480,3)
0013_s005.png (480,480,3)
0013_s006.png (480,480,3)
0013_s007.png (480,480,3)
0013_s008.png (480,480,3)
0013_s009.png (480,480,3)
0013_s010.png (480,480,3)
0013_s011.png (480,480,3)
0013_s012.png (480,480,3)
0013_s013.png (480,480,3)
0013_s014.png (480,480,3)
0013_s015.png (480,480,3)
0013_s016.png (480,480,3)
0013_s017.png (480,480,3)
0013_s018.png (480,480,3)
0013_s019.png (480,480,3)
0013_s020.png (480,480,3)
0013_s021.png (480,480,3)
0013_s022.png (480,480,3)
0013_s023.png (480,480,3)
0013_s024.png (480,480,3)
0013_s025.png (480,480,3)
0013_s026.png (480,480,3)
0013_s027.png (480,480,3)
0013_s028.png (480,480,3)
0013_s029.png (480,480,3)
0013_s030.png (480,480,3)
0013_s031.png (480,480,3)
0013_s032.png (480,480,3)
0013_s033.png (480,480,3)
0013_s034.png (480,480,3)
0013_s035.png (480,480,3)
0013_s036.png (480,480,3)
0013_s037.png (480,480,3)
0013_s038.png (480,480,3)
0013_s039.png (480,480,3)
0013_s040.png (480,480,3)
0014_s001.png (480,480,3)
0014_s002.png (480,480,3)
0014_s003.png (480,480,3)
0014_s004.png (480,480,3)
0014_s005.png (480,480,3)
0014_s006.png (480,480,3)
0014_s007.png (480,480,3)
0014_s008.png (480,480,3)
0014_s009.png (480,480,3)
0014_s010.png (480,480,3)
0014_s011.png (480,480,3)
0014_s012.png (480,480,3)
0014_s013.png (480,480,3)
0014_s014.png (480,480,3)
0014_s015.png (480,480,3)
0014_s016.png (480,480,3)
0014_s017.png (480,480,3)
0014_s018.png (480,480,3)
0014_s019.png (480,480,3)
0014_s020.png (480,480,3)
0014_s021.png (480,480,3)
0014_s022.png (480,480,3)
0014_s023.png (480,480,3)
0014_s024.png (480,480,3)
0014_s025.png (480,480,3)
0014_s026.png (480,480,3)
0014_s027.png (480,480,3)
0014_s028.png (480,480,3)
0014_s029.png (480,480,3)
0014_s030.png (480,480,3)
0014_s031.png (480,480,3)
0014_s032.png (480,480,3)
0014_s033.png (480,480,3)
0014_s034.png (480,480,3)
0014_s035.png (480,480,3)
0014_s036.png (480,480,3)
0014_s037.png (480,480,3)
0014_s038.png (480,480,3)
0014_s039.png (480,480,3)
0014_s040.png (480,480,3)
0015_s001.png (480,480,3)
0015_s002.png (480,480,3)
0015_s003.png (480,480,3)
0015_s004.png (480,480,3)
0015_s005.png (480,480,3)
0015_s006.png (480,480,3)
0015_s007.png (480,480,3)
0015_s008.png (480,480,3)
0015_s009.png (480,480,3)
0015_s010.png (480,480,3)
0015_s011.png (480,480,3)
0015_s012.png (480,480,3)
0015_s013.png (480,480,3)
0015_s014.png (480,480,3)
0015_s015.png (480,480,3)
0015_s016.png (480,480,3)
0015_s017.png (480,480,3)
0015_s018.png (480,480,3)
0015_s019.png (480,480,3)
0015_s020.png (480,480,3)
0015_s021.png (480,480,3)
0015_s022.png (480,480,3)
0015_s023.png (480,480,3)
0015_s024.png (480,480,3)
0015_s025.png (480,480,3)
0015_s026.png (480,480,3)
0015_s027.png (480,480,3)
0015_s028.png (480,480,3)
0015_s029.png (480,480,3)
0015_s030.png (480,480,3)
0015_s031.png (480,480,3)
0015_s032.png (480,480,3)
0015_s033.png (480,480,3)
0015_s034.png (480,480,3)
0015_s035.png (480,480,3)
0015_s036.png (480,480,3)
0015_s037.png (480,480,3)
0015_s038.png (480,480,3)
0015_s039.png (480,480,3)
0015_s040.png (480,480,3)
0016_s001.png (480,480,3)
0016_s002.png (480,480,3)
0016_s003.png (480,480,3)
0016_s004.png (480,480,3)
0016_s005.png (480,480,3)
0016_s006.png (480,480,3)
0016_s007.png (480,480,3)
0016_s008.png (480,480,3)
0016_s009.png (480,480,3)
0016_s010.png (480,480,3)
0016_s011.png (480,480,3)
0016_s012.png (480,480,3)
0016_s013.png (480,480,3)
0016_s014.png (480,480,3)
0016_s015.png (480,480,3)
0016_s016.png (480,480,3)
0016_s017.png (480,480,3)
0016_s018.png (480,480,3)
0016_s019.png (480,480,3)
0016_s020.png (480,480,3)
0016_s021.png (480,480,3)
0016_s022.png (480,480,3)
0016_s023.png (480,480,3)
0016_s024.png (480,480,3)
0016_s025.png (480,480,3)
0016_s026.png (480,480,3)
0016_s027.png (480,480,3)
0016_s028.png (480,480,3)
0016_s029.png (480,480,3)
0016_s030.png (480,480,3)
0016_s031.png (480,480,3)
0016_s032.png (480,480,3)
0016_s033.png (480,480,3)
0016_s034.png (480,480,3)
0016_s035.png (480,480,3)
0016_s036.png (480,480,3)
0016_s037.png (480,480,3)
0016_s038.png (480,480,3)
0016_s039.png (480,480,3)
0016_s040.png (480,480,3)
0017_s001.png (480,480,3)
0017_s002.png (480,480,3)
0017_s003.png (480,480,3)
0017_s004.png (480,480,3)
0017_s005.png (480,480,3)
0017_s006.png (480,480,3)
0017_s007.png (480,480,3)
0017_s008.png (480,480,3)
0017_s009.png (480,480,3)
0017_s010.png (480,480,3)
0017_s011.png (480,480,3)
0017_s012.png (480,480,3)
0017_s013.png (480,480,3)
0017_s014.png (480,480,3)
0017_s015.png (480,480,3)
0017_s016.png (480,480,3)
0017_s017.png (480,480,3)
0017_s018.png (480,480,3)
0017_s019.png (480,480,3)
0017_s020.png (480,480,3)
0017_s021.png (480,480,3)
0017_s022.png (480,480,3)
0017_s023.png (480,480,3)
0017_s024.png (480,480,3)
0017_s025.png (480,480,3)
0017_s026.png (480,480,3)
0017_s027.png (480,480,3)
0017_s028.png (480,480,3)
0017_s029.png (480,480,3)
0017_s030.png (480,480,3)
0017_s031.png (480,480,3)
0017_s032.png (480,480,3)
0017_s033.png (480,480,3)
0017_s034.png (480,480,3)
0017_s035.png (480,480,3)
0017_s036.png (480,480,3)
0017_s037.png (480,480,3)
0017_s038.png (480,480,3)
0017_s039.png (480,480,3)
0017_s040.png (480,480,3)
0018_s001.png (480,480,3)
0018_s002.png (480,480,3)
0018_s003.png (480,480,3)
0018_s004.png (480,480,3)
0018_s005.png (480,480,3)
0018_s006.png (480,480,3)
0018_s007.png (480,480,3)
0018_s008.png (480,480,3)
0018_s009.png (480,480,3)
0018_s010.png (480,480,3)
0018_s011.png (480,480,3)
0018_s012.png (480,480,3)
0018_s013.png (480,480,3)
0018_s014.png (480,480,3)
0018_s015.png (480,480,3)
0018_s016.png (480,480,3)
0018_s017.png (480,480,3)
0018_s018.png (480,480,3)
0018_s019.png (480,480,3)
0018_s020.png (480,480,3)
0018_s021.png (480,480,3)
0018_s022.png (480,480,3)
0018_s023.png (480,480,3)
0018_s024.png (480,480,3)
0018_s025.png (480,480,3)
0018_s026.png (480,480,3)
0018_s027.png (480,480,3)
0018_s028.png (480,480,3)
0018_s029.png (480,480,3)
0018_s030.png (480,480,3)
0018_s031.png (480,480,3)
0018_s032.png (480,480,3)
0018_s033.png (480,480,3)
0018_s034.png (480,480,3)
0018_s035.png (480,480,3)
0018_s036.png (480,480,3)
0018_s037.png (480,480,3)
0018_s038.png (480,480,3)
0018_s039.png (480,480,3)
0018_s040.png (480,480,3)
0019_s001.png (480,480,3)
0019_s002.png (480,480,3)
0019_s003.png (480,480,3)
0019_s004.png (480,480,3)
0019_s005.png (480,480,3)
0019_s006.png (480,480,3)
0019_s007.png (480,480,3)
0019_s008.png (480,480,3)
0019_s009.png (480,480,3)
0019_s010.png (480,480,3)
0019_s011.png (480,480,3)
0019_s012.png (480,480,3)
0019_s013.png (480,480,3)
0019_s014.png (480,480,3)
0019_s015.png (480,480,3)
0019_s016.png (480,480,3)
0019_s017.png (480,480,3)
0019_s018.png (480,480,3)
0019_s019.png (480,480,3)
0019_s020.png (480,480,3)
0019_s021.png (480,480,3)
0019_s022.png (480,480,3)
0019_s023.png (480,480,3)
0019_s024.png (480,480,3)
0019_s025.png (480,480,3)
0019_s026.png (480,480,3)
0019_s027.png (480,480,3)
0019_s028.png (480,480,3)
0019_s029.png (480,480,3)
0019_s030.png (480,480,3)
0019_s031.png (480,480,3)
0019_s032.png (480,480,3)
0019_s033.png (480,480,3)
0019_s034.png (480,480,3)
0019_s035.png (480,480,3)
0019_s036.png (480,480,3)
0019_s037.png (480,480,3)
0019_s038.png (480,480,3)
0019_s039.png (480,480,3)
0019_s040.png (480,480,3)
0019_s041.png (480,480,3)
0019_s042.png (480,480,3)
0019_s043.png (480,480,3)
0019_s044.png (480,480,3)
0019_s045.png (480,480,3)
0019_s046.png (480,480,3)
0019_s047.png (480,480,3)
0019_s048.png (480,480,3)
0020_s001.png (480,480,3)
0020_s002.png (480,480,3)
0020_s003.png (480,480,3)
0020_s004.png (480,480,3)
0020_s005.png (480,480,3)
0020_s006.png (480,480,3)
0020_s007.png (480,480,3)
0020_s008.png (480,480,3)
0020_s009.png (480,480,3)
0020_s010.png (480,480,3)
0020_s011.png (480,480,3)
0020_s012.png (480,480,3)
0020_s013.png (480,480,3)
0020_s014.png (480,480,3)
0020_s015.png (480,480,3)
0020_s016.png (480,480,3)
0020_s017.png (480,480,3)
0020_s018.png (480,480,3)
0020_s019.png (480,480,3)
0020_s020.png (480,480,3)
0020_s021.png (480,480,3)
0020_s022.png (480,480,3)
0020_s023.png (480,480,3)
0020_s024.png (480,480,3)
0020_s025.png (480,480,3)
0020_s026.png (480,480,3)
0020_s027.png (480,480,3)
0020_s028.png (480,480,3)
0020_s029.png (480,480,3)
0020_s030.png (480,480,3)
0020_s031.png (480,480,3)
0020_s032.png (480,480,3)
0020_s033.png (480,480,3)
0020_s034.png (480,480,3)
0020_s035.png (480,480,3)
0020_s036.png (480,480,3)
0020_s037.png (480,480,3)
0020_s038.png (480,480,3)
0020_s039.png (480,480,3)
0020_s040.png (480,480,3)
0021_s001.png (480,480,3)
0021_s002.png (480,480,3)
0021_s003.png (480,480,3)
0021_s004.png (480,480,3)
0021_s005.png (480,480,3)
0021_s006.png (480,480,3)
0021_s007.png (480,480,3)
0021_s008.png (480,480,3)
0021_s009.png (480,480,3)
0021_s010.png (480,480,3)
0021_s011.png (480,480,3)
0021_s012.png (480,480,3)
0021_s013.png (480,480,3)
0021_s014.png (480,480,3)
0021_s015.png (480,480,3)
0021_s016.png (480,480,3)
0021_s017.png (480,480,3)
0021_s018.png (480,480,3)
0021_s019.png (480,480,3)
0021_s020.png (480,480,3)
0021_s021.png (480,480,3)
0021_s022.png (480,480,3)
0021_s023.png (480,480,3)
0021_s024.png (480,480,3)
0022_s001.png (480,480,3)
0022_s002.png (480,480,3)
0022_s003.png (480,480,3)
0022_s004.png (480,480,3)
0022_s005.png (480,480,3)
0022_s006.png (480,480,3)
0022_s007.png (480,480,3)
0022_s008.png (480,480,3)
0022_s009.png (480,480,3)
0022_s010.png (480,480,3)
0022_s011.png (480,480,3)
0022_s012.png (480,480,3)
0022_s013.png (480,480,3)
0022_s014.png (480,480,3)
0022_s015.png (480,480,3)
0022_s016.png (480,480,3)
0022_s017.png (480,480,3)
0022_s018.png (480,480,3)
0022_s019.png (480,480,3)
0022_s020.png (480,480,3)
0022_s021.png (480,480,3)
0022_s022.png (480,480,3)
0022_s023.png (480,480,3)
0022_s024.png (480,480,3)
0023_s001.png (480,480,3)
0023_s002.png (480,480,3)
0023_s003.png (480,480,3)
0023_s004.png (480,480,3)
0023_s005.png (480,480,3)
0023_s006.png (480,480,3)
0023_s007.png (480,480,3)
0023_s008.png (480,480,3)
0023_s009.png (480,480,3)
0023_s010.png (480,480,3)
0023_s011.png (480,480,3)
0023_s012.png (480,480,3)
0023_s013.png (480,480,3)
0023_s014.png (480,480,3)
0023_s015.png (480,480,3)
0023_s016.png (480,480,3)
0023_s017.png (480,480,3)
0023_s018.png (480,480,3)
0023_s019.png (480,480,3)
0023_s020.png (480,480,3)
0023_s021.png (480,480,3)
0023_s022.png (480,480,3)
0023_s023.png (480,480,3)
0023_s024.png (480,480,3)
0023_s025.png (480,480,3)
0023_s026.png (480,480,3)
0023_s027.png (480,480,3)
0023_s028.png (480,480,3)
0023_s029.png (480,480,3)
0023_s030.png (480,480,3)
0023_s031.png (480,480,3)
0023_s032.png (480,480,3)
0023_s033.png (480,480,3)
0023_s034.png (480,480,3)
0023_s035.png (480,480,3)
0023_s036.png (480,480,3)
0023_s037.png (480,480,3)
0023_s038.png (480,480,3)
0023_s039.png (480,480,3)
0023_s040.png (480,480,3)
0024_s001.png (480,480,3)
0024_s002.png (480,480,3)
0024_s003.png (480,480,3)
0024_s004.png (480,480,3)
0024_s005.png (480,480,3)
0024_s006.png (480,480,3)
0024_s007.png (480,480,3)
0024_s008.png (480,480,3)
0024_s009.png (480,480,3)
0024_s010.png (480,480,3)
0024_s011.png (480,480,3)
0024_s012.png (480,480,3)
0024_s013.png (480,480,3)
0024_s014.png (480,480,3)
0024_s015.png (480,480,3)
0024_s016.png (480,480,3)
0024_s017.png (480,480,3)
0024_s018.png (480,480,3)
0024_s019.png (480,480,3)
0024_s020.png (480,480,3)
0024_s021.png (480,480,3)
0024_s022.png (480,480,3)
0024_s023.png (480,480,3)
0024_s024.png (480,480,3)
0024_s025.png (480,480,3)
0024_s026.png (480,480,3)
0024_s027.png (480,480,3)
0024_s028.png (480,480,3)
0024_s029.png (480,480,3)
0024_s030.png (480,480,3)
0024_s031.png (480,480,3)
0024_s032.png (480,480,3)
0024_s033.png (480,480,3)
0024_s034.png (480,480,3)
0024_s035.png (480,480,3)
0024_s036.png (480,480,3)
0024_s037.png (480,480,3)
0024_s038.png (480,480,3)
0024_s039.png (480,480,3)
0024_s040.png (480,480,3)
0025_s001.png (480,480,3)
0025_s002.png (480,480,3)
0025_s003.png (480,480,3)
0025_s004.png (480,480,3)
0025_s005.png (480,480,3)
0025_s006.png (480,480,3)
0025_s007.png (480,480,3)
0025_s008.png (480,480,3)
0025_s009.png (480,480,3)
0025_s010.png (480,480,3)
0025_s011.png (480,480,3)
0025_s012.png (480,480,3)
0025_s013.png (480,480,3)
0025_s014.png (480,480,3)
0025_s015.png (480,480,3)
0025_s016.png (480,480,3)
0025_s017.png (480,480,3)
0025_s018.png (480,480,3)
0025_s019.png (480,480,3)
0025_s020.png (480,480,3)
0025_s021.png (480,480,3)
0025_s022.png (480,480,3)
0025_s023.png (480,480,3)
0025_s024.png (480,480,3)
0025_s025.png (480,480,3)
0025_s026.png (480,480,3)
0025_s027.png (480,480,3)
0025_s028.png (480,480,3)
0025_s029.png (480,480,3)
0025_s030.png (480,480,3)
0025_s031.png (480,480,3)
0025_s032.png (480,480,3)
0026_s001.png (480,480,3)
0026_s002.png (480,480,3)
0026_s003.png (480,480,3)
0026_s004.png (480,480,3)
0026_s005.png (480,480,3)
0026_s006.png (480,480,3)
0026_s007.png (480,480,3)
0026_s008.png (480,480,3)
0026_s009.png (480,480,3)
0026_s010.png (480,480,3)
0026_s011.png (480,480,3)
0026_s012.png (480,480,3)
0026_s013.png (480,480,3)
0026_s014.png (480,480,3)
0026_s015.png (480,480,3)
0026_s016.png (480,480,3)
0026_s017.png (480,480,3)
0026_s018.png (480,480,3)
0026_s019.png (480,480,3)
0026_s020.png (480,480,3)
0026_s021.png (480,480,3)
0026_s022.png (480,480,3)
0026_s023.png (480,480,3)
0026_s024.png (480,480,3)
0026_s025.png (480,480,3)
0026_s026.png (480,480,3)
0026_s027.png (480,480,3)
0026_s028.png (480,480,3)
0026_s029.png (480,480,3)
0026_s030.png (480,480,3)
0026_s031.png (480,480,3)
0026_s032.png (480,480,3)
0026_s033.png (480,480,3)
0026_s034.png (480,480,3)
0026_s035.png (480,480,3)
0026_s036.png (480,480,3)
0026_s037.png (480,480,3)
0026_s038.png (480,480,3)
0026_s039.png (480,480,3)
0026_s040.png (480,480,3)
0026_s041.png (480,480,3)
0026_s042.png (480,480,3)
0026_s043.png (480,480,3)
0026_s044.png (480,480,3)
0026_s045.png (480,480,3)
0026_s046.png (480,480,3)
0026_s047.png (480,480,3)
0026_s048.png (480,480,3)
0027_s001.png (480,480,3)
0027_s002.png (480,480,3)
0027_s003.png (480,480,3)
0027_s004.png (480,480,3)
0027_s005.png (480,480,3)
0027_s006.png (480,480,3)
0027_s007.png (480,480,3)
0027_s008.png (480,480,3)
0027_s009.png (480,480,3)
0027_s010.png (480,480,3)
0027_s011.png (480,480,3)
0027_s012.png (480,480,3)
0027_s013.png (480,480,3)
0027_s014.png (480,480,3)
0027_s015.png (480,480,3)
0027_s016.png (480,480,3)
0027_s017.png (480,480,3)
0027_s018.png (480,480,3)
0027_s019.png (480,480,3)
0027_s020.png (480,480,3)
0027_s021.png (480,480,3)
0027_s022.png (480,480,3)
0027_s023.png (480,480,3)
0027_s024.png (480,480,3)
0027_s025.png (480,480,3)
0027_s026.png (480,480,3)
0027_s027.png (480,480,3)
0027_s028.png (480,480,3)
0027_s029.png (480,480,3)
0027_s030.png (480,480,3)
0027_s031.png (480,480,3)
0027_s032.png (480,480,3)
0027_s033.png (480,480,3)
0027_s034.png (480,480,3)
0027_s035.png (480,480,3)
0027_s036.png (480,480,3)
0027_s037.png (480,480,3)
0027_s038.png (480,480,3)
0027_s039.png (480,480,3)
0027_s040.png (480,480,3)
0027_s041.png (480,480,3)
0027_s042.png (480,480,3)
0027_s043.png (480,480,3)
0027_s044.png (480,480,3)
0027_s045.png (480,480,3)
0027_s046.png (480,480,3)
0027_s047.png (480,480,3)
0027_s048.png (480,480,3)
0028_s001.png (480,480,3)
0028_s002.png (480,480,3)
0028_s003.png (480,480,3)
0028_s004.png (480,480,3)
0028_s005.png (480,480,3)
0028_s006.png (480,480,3)
0028_s007.png (480,480,3)
0028_s008.png (480,480,3)
0028_s009.png (480,480,3)
0028_s010.png (480,480,3)
0028_s011.png (480,480,3)
0028_s012.png (480,480,3)
0028_s013.png (480,480,3)
0028_s014.png (480,480,3)
0028_s015.png (480,480,3)
0028_s016.png (480,480,3)
0028_s017.png (480,480,3)
0028_s018.png (480,480,3)
0028_s019.png (480,480,3)
0028_s020.png (480,480,3)
0028_s021.png (480,480,3)
0028_s022.png (480,480,3)
0028_s023.png (480,480,3)
0028_s024.png (480,480,3)
0028_s025.png (480,480,3)
0028_s026.png (480,480,3)
0028_s027.png (480,480,3)
0028_s028.png (480,480,3)
0028_s029.png (480,480,3)
0028_s030.png (480,480,3)
0028_s031.png (480,480,3)
0028_s032.png (480,480,3)
0028_s033.png (480,480,3)
0028_s034.png (480,480,3)
0028_s035.png (480,480,3)
0028_s036.png (480,480,3)
0028_s037.png (480,480,3)
0028_s038.png (480,480,3)
0028_s039.png (480,480,3)
0028_s040.png (480,480,3)
0028_s041.png (480,480,3)
0028_s042.png (480,480,3)
0028_s043.png (480,480,3)
0028_s044.png (480,480,3)
0028_s045.png (480,480,3)
0028_s046.png (480,480,3)
0028_s047.png (480,480,3)
0028_s048.png (480,480,3)
0028_s049.png (480,480,3)
0028_s050.png (480,480,3)
0028_s051.png (480,480,3)
0028_s052.png (480,480,3)
0028_s053.png (480,480,3)
0028_s054.png (480,480,3)
0028_s055.png (480,480,3)
0028_s056.png (480,480,3)
0028_s057.png (480,480,3)
0028_s058.png (480,480,3)
0028_s059.png (480,480,3)
0028_s060.png (480,480,3)
0028_s061.png (480,480,3)
0028_s062.png (480,480,3)
0028_s063.png (480,480,3)
0028_s064.png (480,480,3)
0029_s001.png (480,480,3)
0029_s002.png (480,480,3)
0029_s003.png (480,480,3)
0029_s004.png (480,480,3)
0029_s005.png (480,480,3)
0029_s006.png (480,480,3)
0029_s007.png (480,480,3)
0029_s008.png (480,480,3)
0029_s009.png (480,480,3)
0029_s010.png (480,480,3)
0029_s011.png (480,480,3)
0029_s012.png (480,480,3)
0029_s013.png (480,480,3)
0029_s014.png (480,480,3)
0029_s015.png (480,480,3)
0029_s016.png (480,480,3)
0029_s017.png (480,480,3)
0029_s018.png (480,480,3)
0029_s019.png (480,480,3)
0029_s020.png (480,480,3)
0029_s021.png (480,480,3)
0029_s022.png (480,480,3)
0029_s023.png (480,480,3)
0029_s024.png (480,480,3)
0029_s025.png (480,480,3)
0029_s026.png (480,480,3)
0029_s027.png (480,480,3)
0029_s028.png (480,480,3)
0029_s029.png (480,480,3)
0029_s030.png (480,480,3)
0029_s031.png (480,480,3)
0029_s032.png (480,480,3)
0029_s033.png (480,480,3)
0029_s034.png (480,480,3)
0029_s035.png (480,480,3)
0029_s036.png (480,480,3)
0029_s037.png (480,480,3)
0029_s038.png (480,480,3)
0029_s039.png (480,480,3)
0029_s040.png (480,480,3)
0030_s001.png (480,480,3)
0030_s002.png (480,480,3)
0030_s003.png (480,480,3)
0030_s004.png (480,480,3)
0030_s005.png (480,480,3)
0030_s006.png (480,480,3)
0030_s007.png (480,480,3)
0030_s008.png (480,480,3)
0030_s009.png (480,480,3)
0030_s010.png (480,480,3)
0030_s011.png (480,480,3)
0030_s012.png (480,480,3)
0030_s013.png (480,480,3)
0030_s014.png (480,480,3)
0030_s015.png (480,480,3)
0030_s016.png (480,480,3)
0030_s017.png (480,480,3)
0030_s018.png (480,480,3)
0030_s019.png (480,480,3)
0030_s020.png (480,480,3)
0030_s021.png (480,480,3)
0030_s022.png (480,480,3)
0030_s023.png (480,480,3)
0030_s024.png (480,480,3)
0030_s025.png (480,480,3)
0030_s026.png (480,480,3)
0030_s027.png (480,480,3)
0030_s028.png (480,480,3)
0030_s029.png (480,480,3)
0030_s030.png (480,480,3)
0030_s031.png (480,480,3)
0030_s032.png (480,480,3)
0030_s033.png (480,480,3)
0030_s034.png (480,480,3)
0030_s035.png (480,480,3)
0030_s036.png (480,480,3)
0030_s037.png (480,480,3)
0030_s038.png (480,480,3)
0030_s039.png (480,480,3)
0030_s040.png (480,480,3)
0031_s001.png (480,480,3)
0031_s002.png (480,480,3)
0031_s003.png (480,480,3)
0031_s004.png (480,480,3)
0031_s005.png (480,480,3)
0031_s006.png (480,480,3)
0031_s007.png (480,480,3)
0031_s008.png (480,480,3)
0031_s009.png (480,480,3)
0031_s010.png (480,480,3)
0031_s011.png (480,480,3)
0031_s012.png (480,480,3)
0031_s013.png (480,480,3)
0031_s014.png (480,480,3)
0031_s015.png (480,480,3)
0031_s016.png (480,480,3)
0031_s017.png (480,480,3)
0031_s018.png (480,480,3)
0031_s019.png (480,480,3)
0031_s020.png (480,480,3)
0031_s021.png (480,480,3)
0031_s022.png (480,480,3)
0031_s023.png (480,480,3)
0031_s024.png (480,480,3)
0031_s025.png (480,480,3)
0031_s026.png (480,480,3)
0031_s027.png (480,480,3)
0031_s028.png (480,480,3)
0031_s029.png (480,480,3)
0031_s030.png (480,480,3)
0031_s031.png (480,480,3)
0031_s032.png (480,480,3)
0031_s033.png (480,480,3)
0031_s034.png (480,480,3)
0031_s035.png (480,480,3)
0031_s036.png (480,480,3)
0031_s037.png (480,480,3)
0031_s038.png (480,480,3)
0031_s039.png (480,480,3)
0031_s040.png (480,480,3)
0032_s001.png (480,480,3)
0032_s002.png (480,480,3)
0032_s003.png (480,480,3)
0032_s004.png (480,480,3)
0032_s005.png (480,480,3)
0032_s006.png (480,480,3)
0032_s007.png (480,480,3)
0032_s008.png (480,480,3)
0032_s009.png (480,480,3)
0032_s010.png (480,480,3)
0032_s011.png (480,480,3)
0032_s012.png (480,480,3)
0032_s013.png (480,480,3)
0032_s014.png (480,480,3)
0032_s015.png (480,480,3)
0032_s016.png (480,480,3)
0032_s017.png (480,480,3)
0032_s018.png (480,480,3)
0032_s019.png (480,480,3)
0032_s020.png (480,480,3)
0032_s021.png (480,480,3)
0032_s022.png (480,480,3)
0032_s023.png (480,480,3)
0032_s024.png (480,480,3)
0032_s025.png (480,480,3)
0032_s026.png (480,480,3)
0032_s027.png (480,480,3)
0032_s028.png (480,480,3)
0032_s029.png (480,480,3)
0032_s030.png (480,480,3)
0032_s031.png (480,480,3)
0032_s032.png (480,480,3)
0032_s033.png (480,480,3)
0032_s034.png (480,480,3)
0032_s035.png (480,480,3)
0032_s036.png (480,480,3)
0032_s037.png (480,480,3)
0032_s038.png (480,480,3)
0032_s039.png (480,480,3)
0032_s040.png (480,480,3)
0033_s001.png (480,480,3)
0033_s002.png (480,480,3)
0033_s003.png (480,480,3)
0033_s004.png (480,480,3)
0033_s005.png (480,480,3)
0033_s006.png (480,480,3)
0033_s007.png (480,480,3)
0033_s008.png (480,480,3)
0033_s009.png (480,480,3)
0033_s010.png (480,480,3)
0033_s011.png (480,480,3)
0033_s012.png (480,480,3)
0033_s013.png (480,480,3)
0033_s014.png (480,480,3)
0033_s015.png (480,480,3)
0033_s016.png (480,480,3)
0033_s017.png (480,480,3)
0033_s018.png (480,480,3)
0033_s019.png (480,480,3)
0033_s020.png (480,480,3)
0033_s021.png (480,480,3)
0033_s022.png (480,480,3)
0033_s023.png (480,480,3)
0033_s024.png (480,480,3)
0033_s025.png (480,480,3)
0033_s026.png (480,480,3)
0033_s027.png (480,480,3)
0033_s028.png (480,480,3)
0033_s029.png (480,480,3)
0033_s030.png (480,480,3)
0033_s031.png (480,480,3)
0033_s032.png (480,480,3)
0033_s033.png (480,480,3)
0033_s034.png (480,480,3)
0033_s035.png (480,480,3)
0033_s036.png (480,480,3)
0033_s037.png (480,480,3)
0033_s038.png (480,480,3)
0033_s039.png (480,480,3)
0033_s040.png (480,480,3)
0034_s001.png (480,480,3)
0034_s002.png (480,480,3)
0034_s003.png (480,480,3)
0034_s004.png (480,480,3)
0034_s005.png (480,480,3)
0034_s006.png (480,480,3)
0034_s007.png (480,480,3)
0034_s008.png (480,480,3)
0034_s009.png (480,480,3)
0034_s010.png (480,480,3)
0034_s011.png (480,480,3)
0034_s012.png (480,480,3)
0034_s013.png (480,480,3)
0034_s014.png (480,480,3)
0034_s015.png (480,480,3)
0034_s016.png (480,480,3)
0034_s017.png (480,480,3)
0034_s018.png (480,480,3)
0034_s019.png (480,480,3)
0034_s020.png (480,480,3)
0034_s021.png (480,480,3)
0034_s022.png (480,480,3)
0034_s023.png (480,480,3)
0034_s024.png (480,480,3)
0034_s025.png (480,480,3)
0034_s026.png (480,480,3)
0034_s027.png (480,480,3)
0034_s028.png (480,480,3)
0034_s029.png (480,480,3)
0034_s030.png (480,480,3)
0034_s031.png (480,480,3)
0034_s032.png (480,480,3)
0034_s033.png (480,480,3)
0034_s034.png (480,480,3)
0034_s035.png (480,480,3)
0034_s036.png (480,480,3)
0034_s037.png (480,480,3)
0034_s038.png (480,480,3)
0034_s039.png (480,480,3)
0034_s040.png (480,480,3)
0035_s001.png (480,480,3)
0035_s002.png (480,480,3)
0035_s003.png (480,480,3)
0035_s004.png (480,480,3)
0035_s005.png (480,480,3)
0035_s006.png (480,480,3)
0035_s007.png (480,480,3)
0035_s008.png (480,480,3)
0035_s009.png (480,480,3)
0035_s010.png (480,480,3)
0035_s011.png (480,480,3)
0035_s012.png (480,480,3)
0035_s013.png (480,480,3)
0035_s014.png (480,480,3)
0035_s015.png (480,480,3)
0035_s016.png (480,480,3)
0035_s017.png (480,480,3)
0035_s018.png (480,480,3)
0035_s019.png (480,480,3)
0035_s020.png (480,480,3)
0035_s021.png (480,480,3)
0035_s022.png (480,480,3)
0035_s023.png (480,480,3)
0035_s024.png (480,480,3)
0035_s025.png (480,480,3)
0035_s026.png (480,480,3)
0035_s027.png (480,480,3)
0035_s028.png (480,480,3)
0035_s029.png (480,480,3)
0035_s030.png (480,480,3)
0035_s031.png (480,480,3)
0035_s032.png (480,480,3)
0035_s033.png (480,480,3)
0035_s034.png (480,480,3)
0035_s035.png (480,480,3)
0035_s036.png (480,480,3)
0035_s037.png (480,480,3)
0035_s038.png (480,480,3)
0035_s039.png (480,480,3)
0035_s040.png (480,480,3)
0036_s001.png (480,480,3)
0036_s002.png (480,480,3)
0036_s003.png (480,480,3)
0036_s004.png (480,480,3)
0036_s005.png (480,480,3)
0036_s006.png (480,480,3)
0036_s007.png (480,480,3)
0036_s008.png (480,480,3)
0036_s009.png (480,480,3)
0036_s010.png (480,480,3)
0036_s011.png (480,480,3)
0036_s012.png (480,480,3)
0036_s013.png (480,480,3)
0036_s014.png (480,480,3)
0036_s015.png (480,480,3)
0036_s016.png (480,480,3)
0036_s017.png (480,480,3)
0036_s018.png (480,480,3)
0036_s019.png (480,480,3)
0036_s020.png (480,480,3)
0036_s021.png (480,480,3)
0036_s022.png (480,480,3)
0036_s023.png (480,480,3)
0036_s024.png (480,480,3)
0036_s025.png (480,480,3)
0036_s026.png (480,480,3)
0036_s027.png (480,480,3)
0036_s028.png (480,480,3)
0036_s029.png (480,480,3)
0036_s030.png (480,480,3)
0036_s031.png (480,480,3)
0036_s032.png (480,480,3)
0036_s033.png (480,480,3)
0036_s034.png (480,480,3)
0036_s035.png (480,480,3)
0036_s036.png (480,480,3)
0036_s037.png (480,480,3)
0036_s038.png (480,480,3)
0036_s039.png (480,480,3)
0036_s040.png (480,480,3)
0036_s041.png (480,480,3)
0036_s042.png (480,480,3)
0036_s043.png (480,480,3)
0036_s044.png (480,480,3)
0036_s045.png (480,480,3)
0036_s046.png (480,480,3)
0036_s047.png (480,480,3)
0036_s048.png (480,480,3)
0037_s001.png (480,480,3)
0037_s002.png (480,480,3)
0037_s003.png (480,480,3)
0037_s004.png (480,480,3)
0037_s005.png (480,480,3)
0037_s006.png (480,480,3)
0037_s007.png (480,480,3)
0037_s008.png (480,480,3)
0037_s009.png (480,480,3)
0037_s010.png (480,480,3)
0037_s011.png (480,480,3)
0037_s012.png (480,480,3)
0037_s013.png (480,480,3)
0037_s014.png (480,480,3)
0037_s015.png (480,480,3)
0037_s016.png (480,480,3)
0037_s017.png (480,480,3)
0037_s018.png (480,480,3)
0037_s019.png (480,480,3)
0037_s020.png (480,480,3)
0037_s021.png (480,480,3)
0037_s022.png (480,480,3)
0037_s023.png (480,480,3)
0037_s024.png (480,480,3)
0037_s025.png (480,480,3)
0037_s026.png (480,480,3)
0037_s027.png (480,480,3)
0037_s028.png (480,480,3)
0037_s029.png (480,480,3)
0037_s030.png (480,480,3)
0037_s031.png (480,480,3)
0037_s032.png (480,480,3)
0037_s033.png (480,480,3)
0037_s034.png (480,480,3)
0037_s035.png (480,480,3)
0037_s036.png (480,480,3)
0037_s037.png (480,480,3)
0037_s038.png (480,480,3)
0037_s039.png (480,480,3)
0037_s040.png (480,480,3)
0038_s001.png (480,480,3)
0038_s002.png (480,480,3)
0038_s003.png (480,480,3)
0038_s004.png (480,480,3)
0038_s005.png (480,480,3)
0038_s006.png (480,480,3)
0038_s007.png (480,480,3)
0038_s008.png (480,480,3)
0038_s009.png (480,480,3)
0038_s010.png (480,480,3)
0038_s011.png (480,480,3)
0038_s012.png (480,480,3)
0038_s013.png (480,480,3)
0038_s014.png (480,480,3)
0038_s015.png (480,480,3)
0038_s016.png (480,480,3)
0038_s017.png (480,480,3)
0038_s018.png (480,480,3)
0038_s019.png (480,480,3)
0038_s020.png (480,480,3)
0038_s021.png (480,480,3)
0038_s022.png (480,480,3)
0038_s023.png (480,480,3)
0038_s024.png (480,480,3)
0038_s025.png (480,480,3)
0038_s026.png (480,480,3)
0038_s027.png (480,480,3)
0038_s028.png (480,480,3)
0038_s029.png (480,480,3)
0038_s030.png (480,480,3)
0038_s031.png (480,480,3)
0038_s032.png (480,480,3)
0038_s033.png (480,480,3)
0038_s034.png (480,480,3)
0038_s035.png (480,480,3)
0038_s036.png (480,480,3)
0038_s037.png (480,480,3)
0038_s038.png (480,480,3)
0038_s039.png (480,480,3)
0038_s040.png (480,480,3)
0039_s001.png (480,480,3)
0039_s002.png (480,480,3)
0039_s003.png (480,480,3)
0039_s004.png (480,480,3)
0039_s005.png (480,480,3)
0039_s006.png (480,480,3)
0039_s007.png (480,480,3)
0039_s008.png (480,480,3)
0039_s009.png (480,480,3)
0039_s010.png (480,480,3)
0039_s011.png (480,480,3)
0039_s012.png (480,480,3)
0039_s013.png (480,480,3)
0039_s014.png (480,480,3)
0039_s015.png (480,480,3)
0039_s016.png (480,480,3)
0039_s017.png (480,480,3)
0039_s018.png (480,480,3)
0039_s019.png (480,480,3)
0039_s020.png (480,480,3)
0039_s021.png (480,480,3)
0039_s022.png (480,480,3)
0039_s023.png (480,480,3)
0039_s024.png (480,480,3)
0039_s025.png (480,480,3)
0039_s026.png (480,480,3)
0039_s027.png (480,480,3)
0039_s028.png (480,480,3)
0039_s029.png (480,480,3)
0039_s030.png (480,480,3)
0039_s031.png (480,480,3)
0039_s032.png (480,480,3)
0039_s033.png (480,480,3)
0039_s034.png (480,480,3)
0039_s035.png (480,480,3)
0039_s036.png (480,480,3)
0039_s037.png (480,480,3)
0039_s038.png (480,480,3)
0039_s039.png (480,480,3)
0039_s040.png (480,480,3)
0040_s001.png (480,480,3)
0040_s002.png (480,480,3)
0040_s003.png (480,480,3)
0040_s004.png (480,480,3)
0040_s005.png (480,480,3)
0040_s006.png (480,480,3)
0040_s007.png (480,480,3)
0040_s008.png (480,480,3)
0040_s009.png (480,480,3)
0040_s010.png (480,480,3)
0040_s011.png (480,480,3)
0040_s012.png (480,480,3)
0040_s013.png (480,480,3)
0040_s014.png (480,480,3)
0040_s015.png (480,480,3)
0040_s016.png (480,480,3)
0040_s017.png (480,480,3)
0040_s018.png (480,480,3)
0040_s019.png (480,480,3)
0040_s020.png (480,480,3)
0040_s021.png (480,480,3)
0040_s022.png (480,480,3)
0040_s023.png (480,480,3)
0040_s024.png (480,480,3)
0040_s025.png (480,480,3)
0040_s026.png (480,480,3)
0040_s027.png (480,480,3)
0040_s028.png (480,480,3)
0040_s029.png (480,480,3)
0040_s030.png (480,480,3)
0040_s031.png (480,480,3)
0040_s032.png (480,480,3)
0040_s033.png (480,480,3)
0040_s034.png (480,480,3)
0040_s035.png (480,480,3)
0040_s036.png (480,480,3)
0040_s037.png (480,480,3)
0040_s038.png (480,480,3)
0040_s039.png (480,480,3)
0040_s040.png (480,480,3)
0041_s001.png (480,480,3)
0041_s002.png (480,480,3)
0041_s003.png (480,480,3)
0041_s004.png (480,480,3)
0041_s005.png (480,480,3)
0041_s006.png (480,480,3)
0041_s007.png (480,480,3)
0041_s008.png (480,480,3)
0041_s009.png (480,480,3)
0041_s010.png (480,480,3)
0041_s011.png (480,480,3)
0041_s012.png (480,480,3)
0041_s013.png (480,480,3)
0041_s014.png (480,480,3)
0041_s015.png (480,480,3)
0041_s016.png (480,480,3)
0041_s017.png (480,480,3)
0041_s018.png (480,480,3)
0041_s019.png (480,480,3)
0041_s020.png (480,480,3)
0041_s021.png (480,480,3)
0041_s022.png (480,480,3)
0041_s023.png (480,480,3)
0041_s024.png (480,480,3)
0041_s025.png (480,480,3)
0041_s026.png (480,480,3)
0041_s027.png (480,480,3)
0041_s028.png (480,480,3)
0041_s029.png (480,480,3)
0041_s030.png (480,480,3)
0041_s031.png (480,480,3)
0041_s032.png (480,480,3)
0041_s033.png (480,480,3)
0041_s034.png (480,480,3)
0041_s035.png (480,480,3)
0041_s036.png (480,480,3)
0041_s037.png (480,480,3)
0041_s038.png (480,480,3)
0041_s039.png (480,480,3)
0041_s040.png (480,480,3)
0042_s001.png (480,480,3)
0042_s002.png (480,480,3)
0042_s003.png (480,480,3)
0042_s004.png (480,480,3)
0042_s005.png (480,480,3)
0042_s006.png (480,480,3)
0042_s007.png (480,480,3)
0042_s008.png (480,480,3)
0042_s009.png (480,480,3)
0042_s010.png (480,480,3)
0042_s011.png (480,480,3)
0042_s012.png (480,480,3)
0042_s013.png (480,480,3)
0042_s014.png (480,480,3)
0042_s015.png (480,480,3)
0042_s016.png (480,480,3)
0042_s017.png (480,480,3)
0042_s018.png (480,480,3)
0042_s019.png (480,480,3)
0042_s020.png (480,480,3)
0042_s021.png (480,480,3)
0042_s022.png (480,480,3)
0042_s023.png (480,480,3)
0042_s024.png (480,480,3)
0042_s025.png (480,480,3)
0042_s026.png (480,480,3)
0042_s027.png (480,480,3)
0042_s028.png (480,480,3)
0042_s029.png (480,480,3)
0042_s030.png (480,480,3)
0042_s031.png (480,480,3)
0042_s032.png (480,480,3)
0042_s033.png (480,480,3)
0042_s034.png (480,480,3)
0042_s035.png (480,480,3)
0042_s036.png (480,480,3)
0042_s037.png (480,480,3)
0042_s038.png (480,480,3)
0042_s039.png (480,480,3)
0042_s040.png (480,480,3)
0043_s001.png (480,480,3)
0043_s002.png (480,480,3)
0043_s003.png (480,480,3)
0043_s004.png (480,480,3)
0043_s005.png (480,480,3)
0043_s006.png (480,480,3)
0043_s007.png (480,480,3)
0043_s008.png (480,480,3)
0043_s009.png (480,480,3)
0043_s010.png (480,480,3)
0043_s011.png (480,480,3)
0043_s012.png (480,480,3)
0043_s013.png (480,480,3)
0043_s014.png (480,480,3)
0043_s015.png (480,480,3)
0043_s016.png (480,480,3)
0043_s017.png (480,480,3)
0043_s018.png (480,480,3)
0043_s019.png (480,480,3)
0043_s020.png (480,480,3)
0043_s021.png (480,480,3)
0043_s022.png (480,480,3)
0043_s023.png (480,480,3)
0043_s024.png (480,480,3)
0043_s025.png (480,480,3)
0043_s026.png (480,480,3)
0043_s027.png (480,480,3)
0043_s028.png (480,480,3)
0043_s029.png (480,480,3)
0043_s030.png (480,480,3)
0043_s031.png (480,480,3)
0043_s032.png (480,480,3)
0043_s033.png (480,480,3)
0043_s034.png (480,480,3)
0043_s035.png (480,480,3)
0043_s036.png (480,480,3)
0043_s037.png (480,480,3)
0043_s038.png (480,480,3)
0043_s039.png (480,480,3)
0043_s040.png (480,480,3)
0044_s001.png (480,480,3)
0044_s002.png (480,480,3)
0044_s003.png (480,480,3)
0044_s004.png (480,480,3)
0044_s005.png (480,480,3)
0044_s006.png (480,480,3)
0044_s007.png (480,480,3)
0044_s008.png (480,480,3)
0044_s009.png (480,480,3)
0044_s010.png (480,480,3)
0044_s011.png (480,480,3)
0044_s012.png (480,480,3)
0044_s013.png (480,480,3)
0044_s014.png (480,480,3)
0044_s015.png (480,480,3)
0044_s016.png (480,480,3)
0044_s017.png (480,480,3)
0044_s018.png (480,480,3)
0044_s019.png (480,480,3)
0044_s020.png (480,480,3)
0044_s021.png (480,480,3)
0044_s022.png (480,480,3)
0044_s023.png (480,480,3)
0044_s024.png (480,480,3)
0044_s025.png (480,480,3)
0044_s026.png (480,480,3)
0044_s027.png (480,480,3)
0044_s028.png (480,480,3)
0044_s029.png (480,480,3)
0044_s030.png (480,480,3)
0044_s031.png (480,480,3)
0044_s032.png (480,480,3)
0044_s033.png (480,480,3)
0044_s034.png (480,480,3)
0044_s035.png (480,480,3)
0044_s036.png (480,480,3)
0044_s037.png (480,480,3)
0044_s038.png (480,480,3)
0044_s039.png (480,480,3)
0044_s040.png (480,480,3)
0044_s041.png (480,480,3)
0044_s042.png (480,480,3)
0044_s043.png (480,480,3)
0044_s044.png (480,480,3)
0044_s045.png (480,480,3)
0044_s046.png (480,480,3)
0044_s047.png (480,480,3)
0044_s048.png (480,480,3)
0044_s049.png (480,480,3)
0044_s050.png (480,480,3)
0044_s051.png (480,480,3)
0044_s052.png (480,480,3)
0044_s053.png (480,480,3)
0044_s054.png (480,480,3)
0044_s055.png (480,480,3)
0044_s056.png (480,480,3)
0044_s057.png (480,480,3)
0044_s058.png (480,480,3)
0044_s059.png (480,480,3)
0044_s060.png (480,480,3)
0044_s061.png (480,480,3)
0044_s062.png (480,480,3)
0044_s063.png (480,480,3)
0044_s064.png (480,480,3)
0045_s001.png (480,480,3)
0045_s002.png (480,480,3)
0045_s003.png (480,480,3)
0045_s004.png (480,480,3)
0045_s005.png (480,480,3)
0045_s006.png (480,480,3)
0045_s007.png (480,480,3)
0045_s008.png (480,480,3)
0045_s009.png (480,480,3)
0045_s010.png (480,480,3)
0045_s011.png (480,480,3)
0045_s012.png (480,480,3)
0045_s013.png (480,480,3)
0045_s014.png (480,480,3)
0045_s015.png (480,480,3)
0045_s016.png (480,480,3)
0045_s017.png (480,480,3)
0045_s018.png (480,480,3)
0045_s019.png (480,480,3)
0045_s020.png (480,480,3)
0045_s021.png (480,480,3)
0045_s022.png (480,480,3)
0045_s023.png (480,480,3)
0045_s024.png (480,480,3)
0045_s025.png (480,480,3)
0045_s026.png (480,480,3)
0045_s027.png (480,480,3)
0045_s028.png (480,480,3)
0045_s029.png (480,480,3)
0045_s030.png (480,480,3)
0045_s031.png (480,480,3)
0045_s032.png (480,480,3)
0046_s001.png (480,480,3)
0046_s002.png (480,480,3)
0046_s003.png (480,480,3)
0046_s004.png (480,480,3)
0046_s005.png (480,480,3)
0046_s006.png (480,480,3)
0046_s007.png (480,480,3)
0046_s008.png (480,480,3)
0046_s009.png (480,480,3)
0046_s010.png (480,480,3)
0046_s011.png (480,480,3)
0046_s012.png (480,480,3)
0046_s013.png (480,480,3)
0046_s014.png (480,480,3)
0046_s015.png (480,480,3)
0046_s016.png (480,480,3)
0046_s017.png (480,480,3)
0046_s018.png (480,480,3)
0046_s019.png (480,480,3)
0046_s020.png (480,480,3)
0046_s021.png (480,480,3)
0046_s022.png (480,480,3)
0046_s023.png (480,480,3)
0046_s024.png (480,480,3)
0046_s025.png (480,480,3)
0046_s026.png (480,480,3)
0046_s027.png (480,480,3)
0046_s028.png (480,480,3)
0046_s029.png (480,480,3)
0046_s030.png (480,480,3)
0046_s031.png (480,480,3)
0046_s032.png (480,480,3)
0046_s033.png (480,480,3)
0046_s034.png (480,480,3)
0046_s035.png (480,480,3)
0046_s036.png (480,480,3)
0046_s037.png (480,480,3)
0046_s038.png (480,480,3)
0046_s039.png (480,480,3)
0046_s040.png (480,480,3)
0047_s001.png (480,480,3)
0047_s002.png (480,480,3)
0047_s003.png (480,480,3)
0047_s004.png (480,480,3)
0047_s005.png (480,480,3)
0047_s006.png (480,480,3)
0047_s007.png (480,480,3)
0047_s008.png (480,480,3)
0047_s009.png (480,480,3)
0047_s010.png (480,480,3)
0047_s011.png (480,480,3)
0047_s012.png (480,480,3)
0047_s013.png (480,480,3)
0047_s014.png (480,480,3)
0047_s015.png (480,480,3)
0047_s016.png (480,480,3)
0047_s017.png (480,480,3)
0047_s018.png (480,480,3)
0047_s019.png (480,480,3)
0047_s020.png (480,480,3)
0047_s021.png (480,480,3)
0047_s022.png (480,480,3)
0047_s023.png (480,480,3)
0047_s024.png (480,480,3)
0047_s025.png (480,480,3)
0047_s026.png (480,480,3)
0047_s027.png (480,480,3)
0047_s028.png (480,480,3)
0047_s029.png (480,480,3)
0047_s030.png (480,480,3)
0047_s031.png (480,480,3)
0047_s032.png (480,480,3)
0047_s033.png (480,480,3)
0047_s034.png (480,480,3)
0047_s035.png (480,480,3)
0047_s036.png (480,480,3)
0047_s037.png (480,480,3)
0047_s038.png (480,480,3)
0047_s039.png (480,480,3)
0047_s040.png (480,480,3)
0048_s001.png (480,480,3)
0048_s002.png (480,480,3)
0048_s003.png (480,480,3)
0048_s004.png (480,480,3)
0048_s005.png (480,480,3)
0048_s006.png (480,480,3)
0048_s007.png (480,480,3)
0048_s008.png (480,480,3)
0048_s009.png (480,480,3)
0048_s010.png (480,480,3)
0048_s011.png (480,480,3)
0048_s012.png (480,480,3)
0048_s013.png (480,480,3)
0048_s014.png (480,480,3)
0048_s015.png (480,480,3)
0048_s016.png (480,480,3)
0048_s017.png (480,480,3)
0048_s018.png (480,480,3)
0048_s019.png (480,480,3)
0048_s020.png (480,480,3)
0048_s021.png (480,480,3)
0048_s022.png (480,480,3)
0048_s023.png (480,480,3)
0048_s024.png (480,480,3)
0048_s025.png (480,480,3)
0048_s026.png (480,480,3)
0048_s027.png (480,480,3)
0048_s028.png (480,480,3)
0048_s029.png (480,480,3)
0048_s030.png (480,480,3)
0048_s031.png (480,480,3)
0048_s032.png (480,480,3)
0048_s033.png (480,480,3)
0048_s034.png (480,480,3)
0048_s035.png (480,480,3)
0048_s036.png (480,480,3)
0048_s037.png (480,480,3)
0048_s038.png (480,480,3)
0048_s039.png (480,480,3)
0048_s040.png (480,480,3)
0049_s001.png (480,480,3)
0049_s002.png (480,480,3)
0049_s003.png (480,480,3)
0049_s004.png (480,480,3)
0049_s005.png (480,480,3)
0049_s006.png (480,480,3)
0049_s007.png (480,480,3)
0049_s008.png (480,480,3)
0049_s009.png (480,480,3)
0049_s010.png (480,480,3)
0049_s011.png (480,480,3)
0049_s012.png (480,480,3)
0049_s013.png (480,480,3)
0049_s014.png (480,480,3)
0049_s015.png (480,480,3)
0049_s016.png (480,480,3)
0049_s017.png (480,480,3)
0049_s018.png (480,480,3)
0049_s019.png (480,480,3)
0049_s020.png (480,480,3)
0049_s021.png (480,480,3)
0049_s022.png (480,480,3)
0049_s023.png (480,480,3)
0049_s024.png (480,480,3)
0049_s025.png (480,480,3)
0049_s026.png (480,480,3)
0049_s027.png (480,480,3)
0049_s028.png (480,480,3)
0049_s029.png (480,480,3)
0049_s030.png (480,480,3)
0049_s031.png (480,480,3)
0049_s032.png (480,480,3)
0049_s033.png (480,480,3)
0049_s034.png (480,480,3)
0049_s035.png (480,480,3)
0049_s036.png (480,480,3)
0049_s037.png (480,480,3)
0049_s038.png (480,480,3)
0049_s039.png (480,480,3)
0049_s040.png (480,480,3)
0050_s001.png (480,480,3)
0050_s002.png (480,480,3)
0050_s003.png (480,480,3)
0050_s004.png (480,480,3)
0050_s005.png (480,480,3)
0050_s006.png (480,480,3)
0050_s007.png (480,480,3)
0050_s008.png (480,480,3)
0050_s009.png (480,480,3)
0050_s010.png (480,480,3)
0050_s011.png (480,480,3)
0050_s012.png (480,480,3)
0050_s013.png (480,480,3)
0050_s014.png (480,480,3)
0050_s015.png (480,480,3)
0050_s016.png (480,480,3)
0050_s017.png (480,480,3)
0050_s018.png (480,480,3)
0050_s019.png (480,480,3)
0050_s020.png (480,480,3)
0050_s021.png (480,480,3)
0050_s022.png (480,480,3)
0050_s023.png (480,480,3)
0050_s024.png (480,480,3)
0050_s025.png (480,480,3)
0050_s026.png (480,480,3)
0050_s027.png (480,480,3)
0050_s028.png (480,480,3)
0050_s029.png (480,480,3)
0050_s030.png (480,480,3)
0050_s031.png (480,480,3)
0050_s032.png (480,480,3)
0050_s033.png (480,480,3)
0050_s034.png (480,480,3)
0050_s035.png (480,480,3)
0050_s036.png (480,480,3)
0050_s037.png (480,480,3)
0050_s038.png (480,480,3)
0050_s039.png (480,480,3)
0050_s040.png (480,480,3)
0051_s001.png (480,480,3)
0051_s002.png (480,480,3)
0051_s003.png (480,480,3)
0051_s004.png (480,480,3)
0051_s005.png (480,480,3)
0051_s006.png (480,480,3)
0051_s007.png (480,480,3)
0051_s008.png (480,480,3)
0051_s009.png (480,480,3)
0051_s010.png (480,480,3)
0051_s011.png (480,480,3)
0051_s012.png (480,480,3)
0051_s013.png (480,480,3)
0051_s014.png (480,480,3)
0051_s015.png (480,480,3)
0051_s016.png (480,480,3)
0051_s017.png (480,480,3)
0051_s018.png (480,480,3)
0051_s019.png (480,480,3)
0051_s020.png (480,480,3)
0051_s021.png (480,480,3)
0051_s022.png (480,480,3)
0051_s023.png (480,480,3)
0051_s024.png (480,480,3)
0051_s025.png (480,480,3)
0051_s026.png (480,480,3)
0051_s027.png (480,480,3)
0051_s028.png (480,480,3)
0051_s029.png (480,480,3)
0051_s030.png (480,480,3)
0051_s031.png (480,480,3)
0051_s032.png (480,480,3)
0051_s033.png (480,480,3)
0051_s034.png (480,480,3)
0051_s035.png (480,480,3)
0051_s036.png (480,480,3)
0051_s037.png (480,480,3)
0051_s038.png (480,480,3)
0051_s039.png (480,480,3)
0051_s040.png (480,480,3)
0052_s001.png (480,480,3)
0052_s002.png (480,480,3)
0052_s003.png (480,480,3)
0052_s004.png (480,480,3)
0052_s005.png (480,480,3)
0052_s006.png (480,480,3)
0052_s007.png (480,480,3)
0052_s008.png (480,480,3)
0052_s009.png (480,480,3)
0052_s010.png (480,480,3)
0052_s011.png (480,480,3)
0052_s012.png (480,480,3)
0052_s013.png (480,480,3)
0052_s014.png (480,480,3)
0052_s015.png (480,480,3)
0052_s016.png (480,480,3)
0052_s017.png (480,480,3)
0052_s018.png (480,480,3)
0052_s019.png (480,480,3)
0052_s020.png (480,480,3)
0052_s021.png (480,480,3)
0052_s022.png (480,480,3)
0052_s023.png (480,480,3)
0052_s024.png (480,480,3)
0052_s025.png (480,480,3)
0052_s026.png (480,480,3)
0052_s027.png (480,480,3)
0052_s028.png (480,480,3)
0052_s029.png (480,480,3)
0052_s030.png (480,480,3)
0052_s031.png (480,480,3)
0052_s032.png (480,480,3)
0052_s033.png (480,480,3)
0052_s034.png (480,480,3)
0052_s035.png (480,480,3)
0052_s036.png (480,480,3)
0052_s037.png (480,480,3)
0052_s038.png (480,480,3)
0052_s039.png (480,480,3)
0052_s040.png (480,480,3)
0053_s001.png (480,480,3)
0053_s002.png (480,480,3)
0053_s003.png (480,480,3)
0053_s004.png (480,480,3)
0053_s005.png (480,480,3)
0053_s006.png (480,480,3)
0053_s007.png (480,480,3)
0053_s008.png (480,480,3)
0053_s009.png (480,480,3)
0053_s010.png (480,480,3)
0053_s011.png (480,480,3)
0053_s012.png (480,480,3)
0053_s013.png (480,480,3)
0053_s014.png (480,480,3)
0053_s015.png (480,480,3)
0053_s016.png (480,480,3)
0053_s017.png (480,480,3)
0053_s018.png (480,480,3)
0053_s019.png (480,480,3)
0053_s020.png (480,480,3)
0053_s021.png (480,480,3)
0053_s022.png (480,480,3)
0053_s023.png (480,480,3)
0053_s024.png (480,480,3)
0053_s025.png (480,480,3)
0053_s026.png (480,480,3)
0053_s027.png (480,480,3)
0053_s028.png (480,480,3)
0053_s029.png (480,480,3)
0053_s030.png (480,480,3)
0053_s031.png (480,480,3)
0053_s032.png (480,480,3)
0053_s033.png (480,480,3)
0053_s034.png (480,480,3)
0053_s035.png (480,480,3)
0053_s036.png (480,480,3)
0053_s037.png (480,480,3)
0053_s038.png (480,480,3)
0053_s039.png (480,480,3)
0053_s040.png (480,480,3)
0054_s001.png (480,480,3)
0054_s002.png (480,480,3)
0054_s003.png (480,480,3)
0054_s004.png (480,480,3)
0054_s005.png (480,480,3)
0054_s006.png (480,480,3)
0054_s007.png (480,480,3)
0054_s008.png (480,480,3)
0054_s009.png (480,480,3)
0054_s010.png (480,480,3)
0054_s011.png (480,480,3)
0054_s012.png (480,480,3)
0054_s013.png (480,480,3)
0054_s014.png (480,480,3)
0054_s015.png (480,480,3)
0054_s016.png (480,480,3)
0054_s017.png (480,480,3)
0054_s018.png (480,480,3)
0054_s019.png (480,480,3)
0054_s020.png (480,480,3)
0054_s021.png (480,480,3)
0054_s022.png (480,480,3)
0054_s023.png (480,480,3)
0054_s024.png (480,480,3)
0054_s025.png (480,480,3)
0054_s026.png (480,480,3)
0054_s027.png (480,480,3)
0054_s028.png (480,480,3)
0054_s029.png (480,480,3)
0054_s030.png (480,480,3)
0054_s031.png (480,480,3)
0054_s032.png (480,480,3)
0054_s033.png (480,480,3)
0054_s034.png (480,480,3)
0054_s035.png (480,480,3)
0054_s036.png (480,480,3)
0054_s037.png (480,480,3)
0054_s038.png (480,480,3)
0054_s039.png (480,480,3)
0054_s040.png (480,480,3)
0055_s001.png (480,480,3)
0055_s002.png (480,480,3)
0055_s003.png (480,480,3)
0055_s004.png (480,480,3)
0055_s005.png (480,480,3)
0055_s006.png (480,480,3)
0055_s007.png (480,480,3)
0055_s008.png (480,480,3)
0055_s009.png (480,480,3)
0055_s010.png (480,480,3)
0055_s011.png (480,480,3)
0055_s012.png (480,480,3)
0055_s013.png (480,480,3)
0055_s014.png (480,480,3)
0055_s015.png (480,480,3)
0055_s016.png (480,480,3)
0055_s017.png (480,480,3)
0055_s018.png (480,480,3)
0055_s019.png (480,480,3)
0055_s020.png (480,480,3)
0055_s021.png (480,480,3)
0055_s022.png (480,480,3)
0055_s023.png (480,480,3)
0055_s024.png (480,480,3)
0055_s025.png (480,480,3)
0055_s026.png (480,480,3)
0055_s027.png (480,480,3)
0055_s028.png (480,480,3)
0055_s029.png (480,480,3)
0055_s030.png (480,480,3)
0055_s031.png (480,480,3)
0055_s032.png (480,480,3)
0056_s001.png (480,480,3)
0056_s002.png (480,480,3)
0056_s003.png (480,480,3)
0056_s004.png (480,480,3)
0056_s005.png (480,480,3)
0056_s006.png (480,480,3)
0056_s007.png (480,480,3)
0056_s008.png (480,480,3)
0056_s009.png (480,480,3)
0056_s010.png (480,480,3)
0056_s011.png (480,480,3)
0056_s012.png (480,480,3)
0056_s013.png (480,480,3)
0056_s014.png (480,480,3)
0056_s015.png (480,480,3)
0056_s016.png (480,480,3)
0056_s017.png (480,480,3)
0056_s018.png (480,480,3)
0056_s019.png (480,480,3)
0056_s020.png (480,480,3)
0056_s021.png (480,480,3)
0056_s022.png (480,480,3)
0056_s023.png (480,480,3)
0056_s024.png (480,480,3)
0056_s025.png (480,480,3)
0056_s026.png (480,480,3)
0056_s027.png (480,480,3)
0056_s028.png (480,480,3)
0056_s029.png (480,480,3)
0056_s030.png (480,480,3)
0056_s031.png (480,480,3)
0056_s032.png (480,480,3)
0056_s033.png (480,480,3)
0056_s034.png (480,480,3)
0056_s035.png (480,480,3)
0056_s036.png (480,480,3)
0056_s037.png (480,480,3)
0056_s038.png (480,480,3)
0056_s039.png (480,480,3)
0056_s040.png (480,480,3)
0057_s001.png (480,480,3)
0057_s002.png (480,480,3)
0057_s003.png (480,480,3)
0057_s004.png (480,480,3)
0057_s005.png (480,480,3)
0057_s006.png (480,480,3)
0057_s007.png (480,480,3)
0057_s008.png (480,480,3)
0057_s009.png (480,480,3)
0057_s010.png (480,480,3)
0057_s011.png (480,480,3)
0057_s012.png (480,480,3)
0057_s013.png (480,480,3)
0057_s014.png (480,480,3)
0057_s015.png (480,480,3)
0057_s016.png (480,480,3)
0057_s017.png (480,480,3)
0057_s018.png (480,480,3)
0057_s019.png (480,480,3)
0057_s020.png (480,480,3)
0057_s021.png (480,480,3)
0057_s022.png (480,480,3)
0057_s023.png (480,480,3)
0057_s024.png (480,480,3)
0057_s025.png (480,480,3)
0057_s026.png (480,480,3)
0057_s027.png (480,480,3)
0057_s028.png (480,480,3)
0057_s029.png (480,480,3)
0057_s030.png (480,480,3)
0057_s031.png (480,480,3)
0057_s032.png (480,480,3)
0057_s033.png (480,480,3)
0057_s034.png (480,480,3)
0057_s035.png (480,480,3)
0057_s036.png (480,480,3)
0057_s037.png (480,480,3)
0057_s038.png (480,480,3)
0057_s039.png (480,480,3)
0057_s040.png (480,480,3)
0058_s001.png (480,480,3)
0058_s002.png (480,480,3)
0058_s003.png (480,480,3)
0058_s004.png (480,480,3)
0058_s005.png (480,480,3)
0058_s006.png (480,480,3)
0058_s007.png (480,480,3)
0058_s008.png (480,480,3)
0058_s009.png (480,480,3)
0058_s010.png (480,480,3)
0058_s011.png (480,480,3)
0058_s012.png (480,480,3)
0058_s013.png (480,480,3)
0058_s014.png (480,480,3)
0058_s015.png (480,480,3)
0058_s016.png (480,480,3)
0058_s017.png (480,480,3)
0058_s018.png (480,480,3)
0058_s019.png (480,480,3)
0058_s020.png (480,480,3)
0058_s021.png (480,480,3)
0058_s022.png (480,480,3)
0058_s023.png (480,480,3)
0058_s024.png (480,480,3)
0058_s025.png (480,480,3)
0058_s026.png (480,480,3)
0058_s027.png (480,480,3)
0058_s028.png (480,480,3)
0058_s029.png (480,480,3)
0058_s030.png (480,480,3)
0058_s031.png (480,480,3)
0058_s032.png (480,480,3)
0058_s033.png (480,480,3)
0058_s034.png (480,480,3)
0058_s035.png (480,480,3)
0058_s036.png (480,480,3)
0058_s037.png (480,480,3)
0058_s038.png (480,480,3)
0058_s039.png (480,480,3)
0058_s040.png (480,480,3)
0059_s001.png (480,480,3)
0059_s002.png (480,480,3)
0059_s003.png (480,480,3)
0059_s004.png (480,480,3)
0059_s005.png (480,480,3)
0059_s006.png (480,480,3)
0059_s007.png (480,480,3)
0059_s008.png (480,480,3)
0059_s009.png (480,480,3)
0059_s010.png (480,480,3)
0059_s011.png (480,480,3)
0059_s012.png (480,480,3)
0059_s013.png (480,480,3)
0059_s014.png (480,480,3)
0059_s015.png (480,480,3)
0059_s016.png (480,480,3)
0059_s017.png (480,480,3)
0059_s018.png (480,480,3)
0059_s019.png (480,480,3)
0059_s020.png (480,480,3)
0059_s021.png (480,480,3)
0059_s022.png (480,480,3)
0059_s023.png (480,480,3)
0059_s024.png (480,480,3)
0059_s025.png (480,480,3)
0059_s026.png (480,480,3)
0059_s027.png (480,480,3)
0059_s028.png (480,480,3)
0059_s029.png (480,480,3)
0059_s030.png (480,480,3)
0059_s031.png (480,480,3)
0059_s032.png (480,480,3)
0059_s033.png (480,480,3)
0059_s034.png (480,480,3)
0059_s035.png (480,480,3)
0059_s036.png (480,480,3)
0059_s037.png (480,480,3)
0059_s038.png (480,480,3)
0059_s039.png (480,480,3)
0059_s040.png (480,480,3)
0059_s041.png (480,480,3)
0059_s042.png (480,480,3)
0059_s043.png (480,480,3)
0059_s044.png (480,480,3)
0059_s045.png (480,480,3)
0059_s046.png (480,480,3)
0059_s047.png (480,480,3)
0059_s048.png (480,480,3)
0060_s001.png (480,480,3)
0060_s002.png (480,480,3)
0060_s003.png (480,480,3)
0060_s004.png (480,480,3)
0060_s005.png (480,480,3)
0060_s006.png (480,480,3)
0060_s007.png (480,480,3)
0060_s008.png (480,480,3)
0060_s009.png (480,480,3)
0060_s010.png (480,480,3)
0060_s011.png (480,480,3)
0060_s012.png (480,480,3)
0060_s013.png (480,480,3)
0060_s014.png (480,480,3)
0060_s015.png (480,480,3)
0060_s016.png (480,480,3)
0060_s017.png (480,480,3)
0060_s018.png (480,480,3)
0060_s019.png (480,480,3)
0060_s020.png (480,480,3)
0060_s021.png (480,480,3)
0060_s022.png (480,480,3)
0060_s023.png (480,480,3)
0060_s024.png (480,480,3)
0060_s025.png (480,480,3)
0060_s026.png (480,480,3)
0060_s027.png (480,480,3)
0060_s028.png (480,480,3)
0060_s029.png (480,480,3)
0060_s030.png (480,480,3)
0060_s031.png (480,480,3)
0060_s032.png (480,480,3)
0060_s033.png (480,480,3)
0060_s034.png (480,480,3)
0060_s035.png (480,480,3)
0060_s036.png (480,480,3)
0060_s037.png (480,480,3)
0060_s038.png (480,480,3)
0060_s039.png (480,480,3)
0060_s040.png (480,480,3)
0061_s001.png (480,480,3)
0061_s002.png (480,480,3)
0061_s003.png (480,480,3)
0061_s004.png (480,480,3)
0061_s005.png (480,480,3)
0061_s006.png (480,480,3)
0061_s007.png (480,480,3)
0061_s008.png (480,480,3)
0061_s009.png (480,480,3)
0061_s010.png (480,480,3)
0061_s011.png (480,480,3)
0061_s012.png (480,480,3)
0061_s013.png (480,480,3)
0061_s014.png (480,480,3)
0061_s015.png (480,480,3)
0061_s016.png (480,480,3)
0061_s017.png (480,480,3)
0061_s018.png (480,480,3)
0061_s019.png (480,480,3)
0061_s020.png (480,480,3)
0061_s021.png (480,480,3)
0061_s022.png (480,480,3)
0061_s023.png (480,480,3)
0061_s024.png (480,480,3)
0061_s025.png (480,480,3)
0061_s026.png (480,480,3)
0061_s027.png (480,480,3)
0061_s028.png (480,480,3)
0061_s029.png (480,480,3)
0061_s030.png (480,480,3)
0061_s031.png (480,480,3)
0061_s032.png (480,480,3)
0061_s033.png (480,480,3)
0061_s034.png (480,480,3)
0061_s035.png (480,480,3)
0061_s036.png (480,480,3)
0061_s037.png (480,480,3)
0061_s038.png (480,480,3)
0061_s039.png (480,480,3)
0061_s040.png (480,480,3)
0062_s001.png (480,480,3)
0062_s002.png (480,480,3)
0062_s003.png (480,480,3)
0062_s004.png (480,480,3)
0062_s005.png (480,480,3)
0062_s006.png (480,480,3)
0062_s007.png (480,480,3)
0062_s008.png (480,480,3)
0062_s009.png (480,480,3)
0062_s010.png (480,480,3)
0062_s011.png (480,480,3)
0062_s012.png (480,480,3)
0062_s013.png (480,480,3)
0062_s014.png (480,480,3)
0062_s015.png (480,480,3)
0062_s016.png (480,480,3)
0062_s017.png (480,480,3)
0062_s018.png (480,480,3)
0062_s019.png (480,480,3)
0062_s020.png (480,480,3)
0062_s021.png (480,480,3)
0062_s022.png (480,480,3)
0062_s023.png (480,480,3)
0062_s024.png (480,480,3)
0062_s025.png (480,480,3)
0062_s026.png (480,480,3)
0062_s027.png (480,480,3)
0062_s028.png (480,480,3)
0062_s029.png (480,480,3)
0062_s030.png (480,480,3)
0062_s031.png (480,480,3)
0062_s032.png (480,480,3)
0062_s033.png (480,480,3)
0062_s034.png (480,480,3)
0062_s035.png (480,480,3)
0062_s036.png (480,480,3)
0062_s037.png (480,480,3)
0062_s038.png (480,480,3)
0062_s039.png (480,480,3)
0062_s040.png (480,480,3)
0063_s001.png (480,480,3)
0063_s002.png (480,480,3)
0063_s003.png (480,480,3)
0063_s004.png (480,480,3)
0063_s005.png (480,480,3)
0063_s006.png (480,480,3)
0063_s007.png (480,480,3)
0063_s008.png (480,480,3)
0063_s009.png (480,480,3)
0063_s010.png (480,480,3)
0063_s011.png (480,480,3)
0063_s012.png (480,480,3)
0063_s013.png (480,480,3)
0063_s014.png (480,480,3)
0063_s015.png (480,480,3)
0063_s016.png (480,480,3)
0063_s017.png (480,480,3)
0063_s018.png (480,480,3)
0063_s019.png (480,480,3)
0063_s020.png (480,480,3)
0063_s021.png (480,480,3)
0063_s022.png (480,480,3)
0063_s023.png (480,480,3)
0063_s024.png (480,480,3)
0063_s025.png (480,480,3)
0063_s026.png (480,480,3)
0063_s027.png (480,480,3)
0063_s028.png (480,480,3)
0063_s029.png (480,480,3)
0063_s030.png (480,480,3)
0063_s031.png (480,480,3)
0063_s032.png (480,480,3)
0063_s033.png (480,480,3)
0063_s034.png (480,480,3)
0063_s035.png (480,480,3)
0063_s036.png (480,480,3)
0063_s037.png (480,480,3)
0063_s038.png (480,480,3)
0063_s039.png (480,480,3)
0063_s040.png (480,480,3)
0063_s041.png (480,480,3)
0063_s042.png (480,480,3)
0063_s043.png (480,480,3)
0063_s044.png (480,480,3)
0063_s045.png (480,480,3)
0063_s046.png (480,480,3)
0063_s047.png (480,480,3)
0063_s048.png (480,480,3)
0064_s001.png (480,480,3)
0064_s002.png (480,480,3)
0064_s003.png (480,480,3)
0064_s004.png (480,480,3)
0064_s005.png (480,480,3)
0064_s006.png (480,480,3)
0064_s007.png (480,480,3)
0064_s008.png (480,480,3)
0064_s009.png (480,480,3)
0064_s010.png (480,480,3)
0064_s011.png (480,480,3)
0064_s012.png (480,480,3)
0064_s013.png (480,480,3)
0064_s014.png (480,480,3)
0064_s015.png (480,480,3)
0064_s016.png (480,480,3)
0064_s017.png (480,480,3)
0064_s018.png (480,480,3)
0064_s019.png (480,480,3)
0064_s020.png (480,480,3)
0064_s021.png (480,480,3)
0064_s022.png (480,480,3)
0064_s023.png (480,480,3)
0064_s024.png (480,480,3)
0064_s025.png (480,480,3)
0064_s026.png (480,480,3)
0064_s027.png (480,480,3)
0064_s028.png (480,480,3)
0064_s029.png (480,480,3)
0064_s030.png (480,480,3)
0064_s031.png (480,480,3)
0064_s032.png (480,480,3)
0064_s033.png (480,480,3)
0064_s034.png (480,480,3)
0064_s035.png (480,480,3)
0064_s036.png (480,480,3)
0064_s037.png (480,480,3)
0064_s038.png (480,480,3)
0064_s039.png (480,480,3)
0064_s040.png (480,480,3)
0065_s001.png (480,480,3)
0065_s002.png (480,480,3)
0065_s003.png (480,480,3)
0065_s004.png (480,480,3)
0065_s005.png (480,480,3)
0065_s006.png (480,480,3)
0065_s007.png (480,480,3)
0065_s008.png (480,480,3)
0065_s009.png (480,480,3)
0065_s010.png (480,480,3)
0065_s011.png (480,480,3)
0065_s012.png (480,480,3)
0065_s013.png (480,480,3)
0065_s014.png (480,480,3)
0065_s015.png (480,480,3)
0065_s016.png (480,480,3)
0065_s017.png (480,480,3)
0065_s018.png (480,480,3)
0065_s019.png (480,480,3)
0065_s020.png (480,480,3)
0065_s021.png (480,480,3)
0065_s022.png (480,480,3)
0065_s023.png (480,480,3)
0065_s024.png (480,480,3)
0065_s025.png (480,480,3)
0065_s026.png (480,480,3)
0065_s027.png (480,480,3)
0065_s028.png (480,480,3)
0065_s029.png (480,480,3)
0065_s030.png (480,480,3)
0065_s031.png (480,480,3)
0065_s032.png (480,480,3)
0066_s001.png (480,480,3)
0066_s002.png (480,480,3)
0066_s003.png (480,480,3)
0066_s004.png (480,480,3)
0066_s005.png (480,480,3)
0066_s006.png (480,480,3)
0066_s007.png (480,480,3)
0066_s008.png (480,480,3)
0066_s009.png (480,480,3)
0066_s010.png (480,480,3)
0066_s011.png (480,480,3)
0066_s012.png (480,480,3)
0066_s013.png (480,480,3)
0066_s014.png (480,480,3)
0066_s015.png (480,480,3)
0066_s016.png (480,480,3)
0066_s017.png (480,480,3)
0066_s018.png (480,480,3)
0066_s019.png (480,480,3)
0066_s020.png (480,480,3)
0066_s021.png (480,480,3)
0066_s022.png (480,480,3)
0066_s023.png (480,480,3)
0066_s024.png (480,480,3)
0066_s025.png (480,480,3)
0066_s026.png (480,480,3)
0066_s027.png (480,480,3)
0066_s028.png (480,480,3)
0066_s029.png (480,480,3)
0066_s030.png (480,480,3)
0066_s031.png (480,480,3)
0066_s032.png (480,480,3)
0066_s033.png (480,480,3)
0066_s034.png (480,480,3)
0066_s035.png (480,480,3)
0066_s036.png (480,480,3)
0066_s037.png (480,480,3)
0066_s038.png (480,480,3)
0066_s039.png (480,480,3)
0066_s040.png (480,480,3)
0067_s001.png (480,480,3)
0067_s002.png (480,480,3)
0067_s003.png (480,480,3)
0067_s004.png (480,480,3)
0067_s005.png (480,480,3)
0067_s006.png (480,480,3)
0067_s007.png (480,480,3)
0067_s008.png (480,480,3)
0067_s009.png (480,480,3)
0067_s010.png (480,480,3)
0067_s011.png (480,480,3)
0067_s012.png (480,480,3)
0067_s013.png (480,480,3)
0067_s014.png (480,480,3)
0067_s015.png (480,480,3)
0067_s016.png (480,480,3)
0067_s017.png (480,480,3)
0067_s018.png (480,480,3)
0067_s019.png (480,480,3)
0067_s020.png (480,480,3)
0067_s021.png (480,480,3)
0067_s022.png (480,480,3)
0067_s023.png (480,480,3)
0067_s024.png (480,480,3)
0067_s025.png (480,480,3)
0067_s026.png (480,480,3)
0067_s027.png (480,480,3)
0067_s028.png (480,480,3)
0067_s029.png (480,480,3)
0067_s030.png (480,480,3)
0067_s031.png (480,480,3)
0067_s032.png (480,480,3)
0067_s033.png (480,480,3)
0067_s034.png (480,480,3)
0067_s035.png (480,480,3)
0067_s036.png (480,480,3)
0067_s037.png (480,480,3)
0067_s038.png (480,480,3)
0067_s039.png (480,480,3)
0067_s040.png (480,480,3)
0068_s001.png (480,480,3)
0068_s002.png (480,480,3)
0068_s003.png (480,480,3)
0068_s004.png (480,480,3)
0068_s005.png (480,480,3)
0068_s006.png (480,480,3)
0068_s007.png (480,480,3)
0068_s008.png (480,480,3)
0068_s009.png (480,480,3)
0068_s010.png (480,480,3)
0068_s011.png (480,480,3)
0068_s012.png (480,480,3)
0068_s013.png (480,480,3)
0068_s014.png (480,480,3)
0068_s015.png (480,480,3)
0068_s016.png (480,480,3)
0068_s017.png (480,480,3)
0068_s018.png (480,480,3)
0068_s019.png (480,480,3)
0068_s020.png (480,480,3)
0068_s021.png (480,480,3)
0068_s022.png (480,480,3)
0068_s023.png (480,480,3)
0068_s024.png (480,480,3)
0068_s025.png (480,480,3)
0068_s026.png (480,480,3)
0068_s027.png (480,480,3)
0068_s028.png (480,480,3)
0068_s029.png (480,480,3)
0068_s030.png (480,480,3)
0068_s031.png (480,480,3)
0068_s032.png (480,480,3)
0068_s033.png (480,480,3)
0068_s034.png (480,480,3)
0068_s035.png (480,480,3)
0068_s036.png (480,480,3)
0068_s037.png (480,480,3)
0068_s038.png (480,480,3)
0068_s039.png (480,480,3)
0068_s040.png (480,480,3)
0069_s001.png (480,480,3)
0069_s002.png (480,480,3)
0069_s003.png (480,480,3)
0069_s004.png (480,480,3)
0069_s005.png (480,480,3)
0069_s006.png (480,480,3)
0069_s007.png (480,480,3)
0069_s008.png (480,480,3)
0069_s009.png (480,480,3)
0069_s010.png (480,480,3)
0069_s011.png (480,480,3)
0069_s012.png (480,480,3)
0069_s013.png (480,480,3)
0069_s014.png (480,480,3)
0069_s015.png (480,480,3)
0069_s016.png (480,480,3)
0069_s017.png (480,480,3)
0069_s018.png (480,480,3)
0069_s019.png (480,480,3)
0069_s020.png (480,480,3)
0069_s021.png (480,480,3)
0069_s022.png (480,480,3)
0069_s023.png (480,480,3)
0069_s024.png (480,480,3)
0069_s025.png (480,480,3)
0069_s026.png (480,480,3)
0069_s027.png (480,480,3)
0069_s028.png (480,480,3)
0069_s029.png (480,480,3)
0069_s030.png (480,480,3)
0069_s031.png (480,480,3)
0069_s032.png (480,480,3)
0069_s033.png (480,480,3)
0069_s034.png (480,480,3)
0069_s035.png (480,480,3)
0069_s036.png (480,480,3)
0069_s037.png (480,480,3)
0069_s038.png (480,480,3)
0069_s039.png (480,480,3)
0069_s040.png (480,480,3)
0070_s001.png (480,480,3)
0070_s002.png (480,480,3)
0070_s003.png (480,480,3)
0070_s004.png (480,480,3)
0070_s005.png (480,480,3)
0070_s006.png (480,480,3)
0070_s007.png (480,480,3)
0070_s008.png (480,480,3)
0070_s009.png (480,480,3)
0070_s010.png (480,480,3)
0070_s011.png (480,480,3)
0070_s012.png (480,480,3)
0070_s013.png (480,480,3)
0070_s014.png (480,480,3)
0070_s015.png (480,480,3)
0070_s016.png (480,480,3)
0070_s017.png (480,480,3)
0070_s018.png (480,480,3)
0070_s019.png (480,480,3)
0070_s020.png (480,480,3)
0070_s021.png (480,480,3)
0070_s022.png (480,480,3)
0070_s023.png (480,480,3)
0070_s024.png (480,480,3)
0070_s025.png (480,480,3)
0070_s026.png (480,480,3)
0070_s027.png (480,480,3)
0070_s028.png (480,480,3)
0070_s029.png (480,480,3)
0070_s030.png (480,480,3)
0070_s031.png (480,480,3)
0070_s032.png (480,480,3)
0070_s033.png (480,480,3)
0070_s034.png (480,480,3)
0070_s035.png (480,480,3)
0070_s036.png (480,480,3)
0070_s037.png (480,480,3)
0070_s038.png (480,480,3)
0070_s039.png (480,480,3)
0070_s040.png (480,480,3)
0071_s001.png (480,480,3)
0071_s002.png (480,480,3)
0071_s003.png (480,480,3)
0071_s004.png (480,480,3)
0071_s005.png (480,480,3)
0071_s006.png (480,480,3)
0071_s007.png (480,480,3)
0071_s008.png (480,480,3)
0071_s009.png (480,480,3)
0071_s010.png (480,480,3)
0071_s011.png (480,480,3)
0071_s012.png (480,480,3)
0071_s013.png (480,480,3)
0071_s014.png (480,480,3)
0071_s015.png (480,480,3)
0071_s016.png (480,480,3)
0071_s017.png (480,480,3)
0071_s018.png (480,480,3)
0071_s019.png (480,480,3)
0071_s020.png (480,480,3)
0071_s021.png (480,480,3)
0071_s022.png (480,480,3)
0071_s023.png (480,480,3)
0071_s024.png (480,480,3)
0071_s025.png (480,480,3)
0071_s026.png (480,480,3)
0071_s027.png (480,480,3)
0071_s028.png (480,480,3)
0071_s029.png (480,480,3)
0071_s030.png (480,480,3)
0071_s031.png (480,480,3)
0071_s032.png (480,480,3)
0071_s033.png (480,480,3)
0071_s034.png (480,480,3)
0071_s035.png (480,480,3)
0071_s036.png (480,480,3)
0071_s037.png (480,480,3)
0071_s038.png (480,480,3)
0071_s039.png (480,480,3)
0071_s040.png (480,480,3)
0072_s001.png (480,480,3)
0072_s002.png (480,480,3)
0072_s003.png (480,480,3)
0072_s004.png (480,480,3)
0072_s005.png (480,480,3)
0072_s006.png (480,480,3)
0072_s007.png (480,480,3)
0072_s008.png (480,480,3)
0072_s009.png (480,480,3)
0072_s010.png (480,480,3)
0072_s011.png (480,480,3)
0072_s012.png (480,480,3)
0072_s013.png (480,480,3)
0072_s014.png (480,480,3)
0072_s015.png (480,480,3)
0072_s016.png (480,480,3)
0072_s017.png (480,480,3)
0072_s018.png (480,480,3)
0072_s019.png (480,480,3)
0072_s020.png (480,480,3)
0072_s021.png (480,480,3)
0072_s022.png (480,480,3)
0072_s023.png (480,480,3)
0072_s024.png (480,480,3)
0072_s025.png (480,480,3)
0072_s026.png (480,480,3)
0072_s027.png (480,480,3)
0072_s028.png (480,480,3)
0072_s029.png (480,480,3)
0072_s030.png (480,480,3)
0072_s031.png (480,480,3)
0072_s032.png (480,480,3)
0072_s033.png (480,480,3)
0072_s034.png (480,480,3)
0072_s035.png (480,480,3)
0072_s036.png (480,480,3)
0072_s037.png (480,480,3)
0072_s038.png (480,480,3)
0072_s039.png (480,480,3)
0072_s040.png (480,480,3)
0073_s001.png (480,480,3)
0073_s002.png (480,480,3)
0073_s003.png (480,480,3)
0073_s004.png (480,480,3)
0073_s005.png (480,480,3)
0073_s006.png (480,480,3)
0073_s007.png (480,480,3)
0073_s008.png (480,480,3)
0073_s009.png (480,480,3)
0073_s010.png (480,480,3)
0073_s011.png (480,480,3)
0073_s012.png (480,480,3)
0073_s013.png (480,480,3)
0073_s014.png (480,480,3)
0073_s015.png (480,480,3)
0073_s016.png (480,480,3)
0073_s017.png (480,480,3)
0073_s018.png (480,480,3)
0073_s019.png (480,480,3)
0073_s020.png (480,480,3)
0073_s021.png (480,480,3)
0073_s022.png (480,480,3)
0073_s023.png (480,480,3)
0073_s024.png (480,480,3)
0073_s025.png (480,480,3)
0073_s026.png (480,480,3)
0073_s027.png (480,480,3)
0073_s028.png (480,480,3)
0073_s029.png (480,480,3)
0073_s030.png (480,480,3)
0073_s031.png (480,480,3)
0073_s032.png (480,480,3)
0074_s001.png (480,480,3)
0074_s002.png (480,480,3)
0074_s003.png (480,480,3)
0074_s004.png (480,480,3)
0074_s005.png (480,480,3)
0074_s006.png (480,480,3)
0074_s007.png (480,480,3)
0074_s008.png (480,480,3)
0074_s009.png (480,480,3)
0074_s010.png (480,480,3)
0074_s011.png (480,480,3)
0074_s012.png (480,480,3)
0074_s013.png (480,480,3)
0074_s014.png (480,480,3)
0074_s015.png (480,480,3)
0074_s016.png (480,480,3)
0074_s017.png (480,480,3)
0074_s018.png (480,480,3)
0074_s019.png (480,480,3)
0074_s020.png (480,480,3)
0074_s021.png (480,480,3)
0074_s022.png (480,480,3)
0074_s023.png (480,480,3)
0074_s024.png (480,480,3)
0074_s025.png (480,480,3)
0074_s026.png (480,480,3)
0074_s027.png (480,480,3)
0074_s028.png (480,480,3)
0074_s029.png (480,480,3)
0074_s030.png (480,480,3)
0074_s031.png (480,480,3)
0074_s032.png (480,480,3)
0074_s033.png (480,480,3)
0074_s034.png (480,480,3)
0074_s035.png (480,480,3)
0074_s036.png (480,480,3)
0074_s037.png (480,480,3)
0074_s038.png (480,480,3)
0074_s039.png (480,480,3)
0074_s040.png (480,480,3)
0075_s001.png (480,480,3)
0075_s002.png (480,480,3)
0075_s003.png (480,480,3)
0075_s004.png (480,480,3)
0075_s005.png (480,480,3)
0075_s006.png (480,480,3)
0075_s007.png (480,480,3)
0075_s008.png (480,480,3)
0075_s009.png (480,480,3)
0075_s010.png (480,480,3)
0075_s011.png (480,480,3)
0075_s012.png (480,480,3)
0075_s013.png (480,480,3)
0075_s014.png (480,480,3)
0075_s015.png (480,480,3)
0075_s016.png (480,480,3)
0075_s017.png (480,480,3)
0075_s018.png (480,480,3)
0075_s019.png (480,480,3)
0075_s020.png (480,480,3)
0075_s021.png (480,480,3)
0075_s022.png (480,480,3)
0075_s023.png (480,480,3)
0075_s024.png (480,480,3)
0075_s025.png (480,480,3)
0075_s026.png (480,480,3)
0075_s027.png (480,480,3)
0075_s028.png (480,480,3)
0075_s029.png (480,480,3)
0075_s030.png (480,480,3)
0075_s031.png (480,480,3)
0075_s032.png (480,480,3)
0075_s033.png (480,480,3)
0075_s034.png (480,480,3)
0075_s035.png (480,480,3)
0075_s036.png (480,480,3)
0075_s037.png (480,480,3)
0075_s038.png (480,480,3)
0075_s039.png (480,480,3)
0075_s040.png (480,480,3)
0076_s001.png (480,480,3)
0076_s002.png (480,480,3)
0076_s003.png (480,480,3)
0076_s004.png (480,480,3)
0076_s005.png (480,480,3)
0076_s006.png (480,480,3)
0076_s007.png (480,480,3)
0076_s008.png (480,480,3)
0076_s009.png (480,480,3)
0076_s010.png (480,480,3)
0076_s011.png (480,480,3)
0076_s012.png (480,480,3)
0076_s013.png (480,480,3)
0076_s014.png (480,480,3)
0076_s015.png (480,480,3)
0076_s016.png (480,480,3)
0076_s017.png (480,480,3)
0076_s018.png (480,480,3)
0076_s019.png (480,480,3)
0076_s020.png (480,480,3)
0076_s021.png (480,480,3)
0076_s022.png (480,480,3)
0076_s023.png (480,480,3)
0076_s024.png (480,480,3)
0076_s025.png (480,480,3)
0076_s026.png (480,480,3)
0076_s027.png (480,480,3)
0076_s028.png (480,480,3)
0076_s029.png (480,480,3)
0076_s030.png (480,480,3)
0076_s031.png (480,480,3)
0076_s032.png (480,480,3)
0076_s033.png (480,480,3)
0076_s034.png (480,480,3)
0076_s035.png (480,480,3)
0076_s036.png (480,480,3)
0076_s037.png (480,480,3)
0076_s038.png (480,480,3)
0076_s039.png (480,480,3)
0076_s040.png (480,480,3)
0076_s041.png (480,480,3)
0076_s042.png (480,480,3)
0076_s043.png (480,480,3)
0076_s044.png (480,480,3)
0076_s045.png (480,480,3)
0076_s046.png (480,480,3)
0076_s047.png (480,480,3)
0076_s048.png (480,480,3)
0077_s001.png (480,480,3)
0077_s002.png (480,480,3)
0077_s003.png (480,480,3)
0077_s004.png (480,480,3)
0077_s005.png (480,480,3)
0077_s006.png (480,480,3)
0077_s007.png (480,480,3)
0077_s008.png (480,480,3)
0077_s009.png (480,480,3)
0077_s010.png (480,480,3)
0077_s011.png (480,480,3)
0077_s012.png (480,480,3)
0077_s013.png (480,480,3)
0077_s014.png (480,480,3)
0077_s015.png (480,480,3)
0077_s016.png (480,480,3)
0077_s017.png (480,480,3)
0077_s018.png (480,480,3)
0077_s019.png (480,480,3)
0077_s020.png (480,480,3)
0077_s021.png (480,480,3)
0077_s022.png (480,480,3)
0077_s023.png (480,480,3)
0077_s024.png (480,480,3)
0077_s025.png (480,480,3)
0077_s026.png (480,480,3)
0077_s027.png (480,480,3)
0077_s028.png (480,480,3)
0077_s029.png (480,480,3)
0077_s030.png (480,480,3)
0077_s031.png (480,480,3)
0077_s032.png (480,480,3)
0077_s033.png (480,480,3)
0077_s034.png (480,480,3)
0077_s035.png (480,480,3)
0077_s036.png (480,480,3)
0077_s037.png (480,480,3)
0077_s038.png (480,480,3)
0077_s039.png (480,480,3)
0077_s040.png (480,480,3)
0078_s001.png (480,480,3)
0078_s002.png (480,480,3)
0078_s003.png (480,480,3)
0078_s004.png (480,480,3)
0078_s005.png (480,480,3)
0078_s006.png (480,480,3)
0078_s007.png (480,480,3)
0078_s008.png (480,480,3)
0078_s009.png (480,480,3)
0078_s010.png (480,480,3)
0078_s011.png (480,480,3)
0078_s012.png (480,480,3)
0078_s013.png (480,480,3)
0078_s014.png (480,480,3)
0078_s015.png (480,480,3)
0078_s016.png (480,480,3)
0078_s017.png (480,480,3)
0078_s018.png (480,480,3)
0078_s019.png (480,480,3)
0078_s020.png (480,480,3)
0078_s021.png (480,480,3)
0078_s022.png (480,480,3)
0078_s023.png (480,480,3)
0078_s024.png (480,480,3)
0078_s025.png (480,480,3)
0078_s026.png (480,480,3)
0078_s027.png (480,480,3)
0078_s028.png (480,480,3)
0078_s029.png (480,480,3)
0078_s030.png (480,480,3)
0078_s031.png (480,480,3)
0078_s032.png (480,480,3)
0078_s033.png (480,480,3)
0078_s034.png (480,480,3)
0078_s035.png (480,480,3)
0078_s036.png (480,480,3)
0078_s037.png (480,480,3)
0078_s038.png (480,480,3)
0078_s039.png (480,480,3)
0078_s040.png (480,480,3)
0079_s001.png (480,480,3)
0079_s002.png (480,480,3)
0079_s003.png (480,480,3)
0079_s004.png (480,480,3)
0079_s005.png (480,480,3)
0079_s006.png (480,480,3)
0079_s007.png (480,480,3)
0079_s008.png (480,480,3)
0079_s009.png (480,480,3)
0079_s010.png (480,480,3)
0079_s011.png (480,480,3)
0079_s012.png (480,480,3)
0079_s013.png (480,480,3)
0079_s014.png (480,480,3)
0079_s015.png (480,480,3)
0079_s016.png (480,480,3)
0079_s017.png (480,480,3)
0079_s018.png (480,480,3)
0079_s019.png (480,480,3)
0079_s020.png (480,480,3)
0079_s021.png (480,480,3)
0079_s022.png (480,480,3)
0079_s023.png (480,480,3)
0079_s024.png (480,480,3)
0079_s025.png (480,480,3)
0079_s026.png (480,480,3)
0079_s027.png (480,480,3)
0079_s028.png (480,480,3)
0079_s029.png (480,480,3)
0079_s030.png (480,480,3)
0079_s031.png (480,480,3)
0079_s032.png (480,480,3)
0079_s033.png (480,480,3)
0079_s034.png (480,480,3)
0079_s035.png (480,480,3)
0079_s036.png (480,480,3)
0079_s037.png (480,480,3)
0079_s038.png (480,480,3)
0079_s039.png (480,480,3)
0079_s040.png (480,480,3)
0080_s001.png (480,480,3)
0080_s002.png (480,480,3)
0080_s003.png (480,480,3)
0080_s004.png (480,480,3)
0080_s005.png (480,480,3)
0080_s006.png (480,480,3)
0080_s007.png (480,480,3)
0080_s008.png (480,480,3)
0080_s009.png (480,480,3)
0080_s010.png (480,480,3)
0080_s011.png (480,480,3)
0080_s012.png (480,480,3)
0080_s013.png (480,480,3)
0080_s014.png (480,480,3)
0080_s015.png (480,480,3)
0080_s016.png (480,480,3)
0080_s017.png (480,480,3)
0080_s018.png (480,480,3)
0080_s019.png (480,480,3)
0080_s020.png (480,480,3)
0080_s021.png (480,480,3)
0080_s022.png (480,480,3)
0080_s023.png (480,480,3)
0080_s024.png (480,480,3)
0080_s025.png (480,480,3)
0080_s026.png (480,480,3)
0080_s027.png (480,480,3)
0080_s028.png (480,480,3)
0080_s029.png (480,480,3)
0080_s030.png (480,480,3)
0080_s031.png (480,480,3)
0080_s032.png (480,480,3)
0080_s033.png (480,480,3)
0080_s034.png (480,480,3)
0080_s035.png (480,480,3)
0080_s036.png (480,480,3)
0080_s037.png (480,480,3)
0080_s038.png (480,480,3)
0080_s039.png (480,480,3)
0080_s040.png (480,480,3)
0081_s001.png (480,480,3)
0081_s002.png (480,480,3)
0081_s003.png (480,480,3)
0081_s004.png (480,480,3)
0081_s005.png (480,480,3)
0081_s006.png (480,480,3)
0081_s007.png (480,480,3)
0081_s008.png (480,480,3)
0081_s009.png (480,480,3)
0081_s010.png (480,480,3)
0081_s011.png (480,480,3)
0081_s012.png (480,480,3)
0081_s013.png (480,480,3)
0081_s014.png (480,480,3)
0081_s015.png (480,480,3)
0081_s016.png (480,480,3)
0081_s017.png (480,480,3)
0081_s018.png (480,480,3)
0081_s019.png (480,480,3)
0081_s020.png (480,480,3)
0081_s021.png (480,480,3)
0081_s022.png (480,480,3)
0081_s023.png (480,480,3)
0081_s024.png (480,480,3)
0081_s025.png (480,480,3)
0081_s026.png (480,480,3)
0081_s027.png (480,480,3)
0081_s028.png (480,480,3)
0081_s029.png (480,480,3)
0081_s030.png (480,480,3)
0081_s031.png (480,480,3)
0081_s032.png (480,480,3)
0081_s033.png (480,480,3)
0081_s034.png (480,480,3)
0081_s035.png (480,480,3)
0081_s036.png (480,480,3)
0081_s037.png (480,480,3)
0081_s038.png (480,480,3)
0081_s039.png (480,480,3)
0081_s040.png (480,480,3)
0082_s001.png (480,480,3)
0082_s002.png (480,480,3)
0082_s003.png (480,480,3)
0082_s004.png (480,480,3)
0082_s005.png (480,480,3)
0082_s006.png (480,480,3)
0082_s007.png (480,480,3)
0082_s008.png (480,480,3)
0082_s009.png (480,480,3)
0082_s010.png (480,480,3)
0082_s011.png (480,480,3)
0082_s012.png (480,480,3)
0082_s013.png (480,480,3)
0082_s014.png (480,480,3)
0082_s015.png (480,480,3)
0082_s016.png (480,480,3)
0082_s017.png (480,480,3)
0082_s018.png (480,480,3)
0082_s019.png (480,480,3)
0082_s020.png (480,480,3)
0082_s021.png (480,480,3)
0082_s022.png (480,480,3)
0082_s023.png (480,480,3)
0082_s024.png (480,480,3)
0082_s025.png (480,480,3)
0082_s026.png (480,480,3)
0082_s027.png (480,480,3)
0082_s028.png (480,480,3)
0082_s029.png (480,480,3)
0082_s030.png (480,480,3)
0082_s031.png (480,480,3)
0082_s032.png (480,480,3)
0082_s033.png (480,480,3)
0082_s034.png (480,480,3)
0082_s035.png (480,480,3)
0082_s036.png (480,480,3)
0082_s037.png (480,480,3)
0082_s038.png (480,480,3)
0082_s039.png (480,480,3)
0082_s040.png (480,480,3)
0083_s001.png (480,480,3)
0083_s002.png (480,480,3)
0083_s003.png (480,480,3)
0083_s004.png (480,480,3)
0083_s005.png (480,480,3)
0083_s006.png (480,480,3)
0083_s007.png (480,480,3)
0083_s008.png (480,480,3)
0083_s009.png (480,480,3)
0083_s010.png (480,480,3)
0083_s011.png (480,480,3)
0083_s012.png (480,480,3)
0083_s013.png (480,480,3)
0083_s014.png (480,480,3)
0083_s015.png (480,480,3)
0083_s016.png (480,480,3)
0083_s017.png (480,480,3)
0083_s018.png (480,480,3)
0083_s019.png (480,480,3)
0083_s020.png (480,480,3)
0083_s021.png (480,480,3)
0083_s022.png (480,480,3)
0083_s023.png (480,480,3)
0083_s024.png (480,480,3)
0083_s025.png (480,480,3)
0083_s026.png (480,480,3)
0083_s027.png (480,480,3)
0083_s028.png (480,480,3)
0083_s029.png (480,480,3)
0083_s030.png (480,480,3)
0083_s031.png (480,480,3)
0083_s032.png (480,480,3)
0084_s001.png (480,480,3)
0084_s002.png (480,480,3)
0084_s003.png (480,480,3)
0084_s004.png (480,480,3)
0084_s005.png (480,480,3)
0084_s006.png (480,480,3)
0084_s007.png (480,480,3)
0084_s008.png (480,480,3)
0084_s009.png (480,480,3)
0084_s010.png (480,480,3)
0084_s011.png (480,480,3)
0084_s012.png (480,480,3)
0084_s013.png (480,480,3)
0084_s014.png (480,480,3)
0084_s015.png (480,480,3)
0084_s016.png (480,480,3)
0084_s017.png (480,480,3)
0084_s018.png (480,480,3)
0084_s019.png (480,480,3)
0084_s020.png (480,480,3)
0084_s021.png (480,480,3)
0084_s022.png (480,480,3)
0084_s023.png (480,480,3)
0084_s024.png (480,480,3)
0084_s025.png (480,480,3)
0084_s026.png (480,480,3)
0084_s027.png (480,480,3)
0084_s028.png (480,480,3)
0084_s029.png (480,480,3)
0084_s030.png (480,480,3)
0084_s031.png (480,480,3)
0084_s032.png (480,480,3)
0084_s033.png (480,480,3)
0084_s034.png (480,480,3)
0084_s035.png (480,480,3)
0084_s036.png (480,480,3)
0084_s037.png (480,480,3)
0084_s038.png (480,480,3)
0084_s039.png (480,480,3)
0084_s040.png (480,480,3)
0085_s001.png (480,480,3)
0085_s002.png (480,480,3)
0085_s003.png (480,480,3)
0085_s004.png (480,480,3)
0085_s005.png (480,480,3)
0085_s006.png (480,480,3)
0085_s007.png (480,480,3)
0085_s008.png (480,480,3)
0085_s009.png (480,480,3)
0085_s010.png (480,480,3)
0085_s011.png (480,480,3)
0085_s012.png (480,480,3)
0085_s013.png (480,480,3)
0085_s014.png (480,480,3)
0085_s015.png (480,480,3)
0085_s016.png (480,480,3)
0085_s017.png (480,480,3)
0085_s018.png (480,480,3)
0085_s019.png (480,480,3)
0085_s020.png (480,480,3)
0085_s021.png (480,480,3)
0085_s022.png (480,480,3)
0085_s023.png (480,480,3)
0085_s024.png (480,480,3)
0085_s025.png (480,480,3)
0085_s026.png (480,480,3)
0085_s027.png (480,480,3)
0085_s028.png (480,480,3)
0085_s029.png (480,480,3)
0085_s030.png (480,480,3)
0085_s031.png (480,480,3)
0085_s032.png (480,480,3)
0085_s033.png (480,480,3)
0085_s034.png (480,480,3)
0085_s035.png (480,480,3)
0085_s036.png (480,480,3)
0085_s037.png (480,480,3)
0085_s038.png (480,480,3)
0085_s039.png (480,480,3)
0085_s040.png (480,480,3)
0086_s001.png (480,480,3)
0086_s002.png (480,480,3)
0086_s003.png (480,480,3)
0086_s004.png (480,480,3)
0086_s005.png (480,480,3)
0086_s006.png (480,480,3)
0086_s007.png (480,480,3)
0086_s008.png (480,480,3)
0086_s009.png (480,480,3)
0086_s010.png (480,480,3)
0086_s011.png (480,480,3)
0086_s012.png (480,480,3)
0086_s013.png (480,480,3)
0086_s014.png (480,480,3)
0086_s015.png (480,480,3)
0086_s016.png (480,480,3)
0086_s017.png (480,480,3)
0086_s018.png (480,480,3)
0086_s019.png (480,480,3)
0086_s020.png (480,480,3)
0086_s021.png (480,480,3)
0086_s022.png (480,480,3)
0086_s023.png (480,480,3)
0086_s024.png (480,480,3)
0086_s025.png (480,480,3)
0086_s026.png (480,480,3)
0086_s027.png (480,480,3)
0086_s028.png (480,480,3)
0086_s029.png (480,480,3)
0086_s030.png (480,480,3)
0086_s031.png (480,480,3)
0086_s032.png (480,480,3)
0086_s033.png (480,480,3)
0086_s034.png (480,480,3)
0086_s035.png (480,480,3)
0086_s036.png (480,480,3)
0086_s037.png (480,480,3)
0086_s038.png (480,480,3)
0086_s039.png (480,480,3)
0086_s040.png (480,480,3)
0087_s001.png (480,480,3)
0087_s002.png (480,480,3)
0087_s003.png (480,480,3)
0087_s004.png (480,480,3)
0087_s005.png (480,480,3)
0087_s006.png (480,480,3)
0087_s007.png (480,480,3)
0087_s008.png (480,480,3)
0087_s009.png (480,480,3)
0087_s010.png (480,480,3)
0087_s011.png (480,480,3)
0087_s012.png (480,480,3)
0087_s013.png (480,480,3)
0087_s014.png (480,480,3)
0087_s015.png (480,480,3)
0087_s016.png (480,480,3)
0087_s017.png (480,480,3)
0087_s018.png (480,480,3)
0087_s019.png (480,480,3)
0087_s020.png (480,480,3)
0087_s021.png (480,480,3)
0087_s022.png (480,480,3)
0087_s023.png (480,480,3)
0087_s024.png (480,480,3)
0087_s025.png (480,480,3)
0087_s026.png (480,480,3)
0087_s027.png (480,480,3)
0087_s028.png (480,480,3)
0087_s029.png (480,480,3)
0087_s030.png (480,480,3)
0087_s031.png (480,480,3)
0087_s032.png (480,480,3)
0087_s033.png (480,480,3)
0087_s034.png (480,480,3)
0087_s035.png (480,480,3)
0087_s036.png (480,480,3)
0087_s037.png (480,480,3)
0087_s038.png (480,480,3)
0087_s039.png (480,480,3)
0087_s040.png (480,480,3)
0088_s001.png (480,480,3)
0088_s002.png (480,480,3)
0088_s003.png (480,480,3)
0088_s004.png (480,480,3)
0088_s005.png (480,480,3)
0088_s006.png (480,480,3)
0088_s007.png (480,480,3)
0088_s008.png (480,480,3)
0088_s009.png (480,480,3)
0088_s010.png (480,480,3)
0088_s011.png (480,480,3)
0088_s012.png (480,480,3)
0088_s013.png (480,480,3)
0088_s014.png (480,480,3)
0088_s015.png (480,480,3)
0088_s016.png (480,480,3)
0088_s017.png (480,480,3)
0088_s018.png (480,480,3)
0088_s019.png (480,480,3)
0088_s020.png (480,480,3)
0088_s021.png (480,480,3)
0088_s022.png (480,480,3)
0088_s023.png (480,480,3)
0088_s024.png (480,480,3)
0088_s025.png (480,480,3)
0088_s026.png (480,480,3)
0088_s027.png (480,480,3)
0088_s028.png (480,480,3)
0088_s029.png (480,480,3)
0088_s030.png (480,480,3)
0088_s031.png (480,480,3)
0088_s032.png (480,480,3)
0088_s033.png (480,480,3)
0088_s034.png (480,480,3)
0088_s035.png (480,480,3)
0088_s036.png (480,480,3)
0088_s037.png (480,480,3)
0088_s038.png (480,480,3)
0088_s039.png (480,480,3)
0088_s040.png (480,480,3)
0089_s001.png (480,480,3)
0089_s002.png (480,480,3)
0089_s003.png (480,480,3)
0089_s004.png (480,480,3)
0089_s005.png (480,480,3)
0089_s006.png (480,480,3)
0089_s007.png (480,480,3)
0089_s008.png (480,480,3)
0089_s009.png (480,480,3)
0089_s010.png (480,480,3)
0089_s011.png (480,480,3)
0089_s012.png (480,480,3)
0089_s013.png (480,480,3)
0089_s014.png (480,480,3)
0089_s015.png (480,480,3)
0089_s016.png (480,480,3)
0089_s017.png (480,480,3)
0089_s018.png (480,480,3)
0089_s019.png (480,480,3)
0089_s020.png (480,480,3)
0089_s021.png (480,480,3)
0089_s022.png (480,480,3)
0089_s023.png (480,480,3)
0089_s024.png (480,480,3)
0089_s025.png (480,480,3)
0089_s026.png (480,480,3)
0089_s027.png (480,480,3)
0089_s028.png (480,480,3)
0089_s029.png (480,480,3)
0089_s030.png (480,480,3)
0089_s031.png (480,480,3)
0089_s032.png (480,480,3)
0089_s033.png (480,480,3)
0089_s034.png (480,480,3)
0089_s035.png (480,480,3)
0089_s036.png (480,480,3)
0089_s037.png (480,480,3)
0089_s038.png (480,480,3)
0089_s039.png (480,480,3)
0089_s040.png (480,480,3)
0089_s041.png (480,480,3)
0089_s042.png (480,480,3)
0089_s043.png (480,480,3)
0089_s044.png (480,480,3)
0089_s045.png (480,480,3)
0089_s046.png (480,480,3)
0089_s047.png (480,480,3)
0089_s048.png (480,480,3)
0090_s001.png (480,480,3)
0090_s002.png (480,480,3)
0090_s003.png (480,480,3)
0090_s004.png (480,480,3)
0090_s005.png (480,480,3)
0090_s006.png (480,480,3)
0090_s007.png (480,480,3)
0090_s008.png (480,480,3)
0090_s009.png (480,480,3)
0090_s010.png (480,480,3)
0090_s011.png (480,480,3)
0090_s012.png (480,480,3)
0090_s013.png (480,480,3)
0090_s014.png (480,480,3)
0090_s015.png (480,480,3)
0090_s016.png (480,480,3)
0090_s017.png (480,480,3)
0090_s018.png (480,480,3)
0090_s019.png (480,480,3)
0090_s020.png (480,480,3)
0090_s021.png (480,480,3)
0090_s022.png (480,480,3)
0090_s023.png (480,480,3)
0090_s024.png (480,480,3)
0090_s025.png (480,480,3)
0090_s026.png (480,480,3)
0090_s027.png (480,480,3)
0090_s028.png (480,480,3)
0090_s029.png (480,480,3)
0090_s030.png (480,480,3)
0090_s031.png (480,480,3)
0090_s032.png (480,480,3)
0090_s033.png (480,480,3)
0090_s034.png (480,480,3)
0090_s035.png (480,480,3)
0090_s036.png (480,480,3)
0090_s037.png (480,480,3)
0090_s038.png (480,480,3)
0090_s039.png (480,480,3)
0090_s040.png (480,480,3)
0091_s001.png (480,480,3)
0091_s002.png (480,480,3)
0091_s003.png (480,480,3)
0091_s004.png (480,480,3)
0091_s005.png (480,480,3)
0091_s006.png (480,480,3)
0091_s007.png (480,480,3)
0091_s008.png (480,480,3)
0091_s009.png (480,480,3)
0091_s010.png (480,480,3)
0091_s011.png (480,480,3)
0091_s012.png (480,480,3)
0091_s013.png (480,480,3)
0091_s014.png (480,480,3)
0091_s015.png (480,480,3)
0091_s016.png (480,480,3)
0091_s017.png (480,480,3)
0091_s018.png (480,480,3)
0091_s019.png (480,480,3)
0091_s020.png (480,480,3)
0091_s021.png (480,480,3)
0091_s022.png (480,480,3)
0091_s023.png (480,480,3)
0091_s024.png (480,480,3)
0091_s025.png (480,480,3)
0091_s026.png (480,480,3)
0091_s027.png (480,480,3)
0091_s028.png (480,480,3)
0091_s029.png (480,480,3)
0091_s030.png (480,480,3)
0091_s031.png (480,480,3)
0091_s032.png (480,480,3)
0091_s033.png (480,480,3)
0091_s034.png (480,480,3)
0091_s035.png (480,480,3)
0091_s036.png (480,480,3)
0091_s037.png (480,480,3)
0091_s038.png (480,480,3)
0091_s039.png (480,480,3)
0091_s040.png (480,480,3)
0091_s041.png (480,480,3)
0091_s042.png (480,480,3)
0091_s043.png (480,480,3)
0091_s044.png (480,480,3)
0091_s045.png (480,480,3)
0091_s046.png (480,480,3)
0091_s047.png (480,480,3)
0091_s048.png (480,480,3)
0092_s001.png (480,480,3)
0092_s002.png (480,480,3)
0092_s003.png (480,480,3)
0092_s004.png (480,480,3)
0092_s005.png (480,480,3)
0092_s006.png (480,480,3)
0092_s007.png (480,480,3)
0092_s008.png (480,480,3)
0092_s009.png (480,480,3)
0092_s010.png (480,480,3)
0092_s011.png (480,480,3)
0092_s012.png (480,480,3)
0092_s013.png (480,480,3)
0092_s014.png (480,480,3)
0092_s015.png (480,480,3)
0092_s016.png (480,480,3)
0092_s017.png (480,480,3)
0092_s018.png (480,480,3)
0092_s019.png (480,480,3)
0092_s020.png (480,480,3)
0092_s021.png (480,480,3)
0092_s022.png (480,480,3)
0092_s023.png (480,480,3)
0092_s024.png (480,480,3)
0092_s025.png (480,480,3)
0092_s026.png (480,480,3)
0092_s027.png (480,480,3)
0092_s028.png (480,480,3)
0092_s029.png (480,480,3)
0092_s030.png (480,480,3)
0092_s031.png (480,480,3)
0092_s032.png (480,480,3)
0093_s001.png (480,480,3)
0093_s002.png (480,480,3)
0093_s003.png (480,480,3)
0093_s004.png (480,480,3)
0093_s005.png (480,480,3)
0093_s006.png (480,480,3)
0093_s007.png (480,480,3)
0093_s008.png (480,480,3)
0093_s009.png (480,480,3)
0093_s010.png (480,480,3)
0093_s011.png (480,480,3)
0093_s012.png (480,480,3)
0093_s013.png (480,480,3)
0093_s014.png (480,480,3)
0093_s015.png (480,480,3)
0093_s016.png (480,480,3)
0093_s017.png (480,480,3)
0093_s018.png (480,480,3)
0093_s019.png (480,480,3)
0093_s020.png (480,480,3)
0093_s021.png (480,480,3)
0093_s022.png (480,480,3)
0093_s023.png (480,480,3)
0093_s024.png (480,480,3)
0093_s025.png (480,480,3)
0093_s026.png (480,480,3)
0093_s027.png (480,480,3)
0093_s028.png (480,480,3)
0093_s029.png (480,480,3)
0093_s030.png (480,480,3)
0093_s031.png (480,480,3)
0093_s032.png (480,480,3)
0093_s033.png (480,480,3)
0093_s034.png (480,480,3)
0093_s035.png (480,480,3)
0093_s036.png (480,480,3)
0093_s037.png (480,480,3)
0093_s038.png (480,480,3)
0093_s039.png (480,480,3)
0093_s040.png (480,480,3)
0094_s001.png (480,480,3)
0094_s002.png (480,480,3)
0094_s003.png (480,480,3)
0094_s004.png (480,480,3)
0094_s005.png (480,480,3)
0094_s006.png (480,480,3)
0094_s007.png (480,480,3)
0094_s008.png (480,480,3)
0094_s009.png (480,480,3)
0094_s010.png (480,480,3)
0094_s011.png (480,480,3)
0094_s012.png (480,480,3)
0094_s013.png (480,480,3)
0094_s014.png (480,480,3)
0094_s015.png (480,480,3)
0094_s016.png (480,480,3)
0094_s017.png (480,480,3)
0094_s018.png (480,480,3)
0094_s019.png (480,480,3)
0094_s020.png (480,480,3)
0094_s021.png (480,480,3)
0094_s022.png (480,480,3)
0094_s023.png (480,480,3)
0094_s024.png (480,480,3)
0094_s025.png (480,480,3)
0094_s026.png (480,480,3)
0094_s027.png (480,480,3)
0094_s028.png (480,480,3)
0094_s029.png (480,480,3)
0094_s030.png (480,480,3)
0094_s031.png (480,480,3)
0094_s032.png (480,480,3)
0094_s033.png (480,480,3)
0094_s034.png (480,480,3)
0094_s035.png (480,480,3)
0094_s036.png (480,480,3)
0094_s037.png (480,480,3)
0094_s038.png (480,480,3)
0094_s039.png (480,480,3)
0094_s040.png (480,480,3)
0095_s001.png (480,480,3)
0095_s002.png (480,480,3)
0095_s003.png (480,480,3)
0095_s004.png (480,480,3)
0095_s005.png (480,480,3)
0095_s006.png (480,480,3)
0095_s007.png (480,480,3)
0095_s008.png (480,480,3)
0095_s009.png (480,480,3)
0095_s010.png (480,480,3)
0095_s011.png (480,480,3)
0095_s012.png (480,480,3)
0095_s013.png (480,480,3)
0095_s014.png (480,480,3)
0095_s015.png (480,480,3)
0095_s016.png (480,480,3)
0095_s017.png (480,480,3)
0095_s018.png (480,480,3)
0095_s019.png (480,480,3)
0095_s020.png (480,480,3)
0095_s021.png (480,480,3)
0095_s022.png (480,480,3)
0095_s023.png (480,480,3)
0095_s024.png (480,480,3)
0095_s025.png (480,480,3)
0095_s026.png (480,480,3)
0095_s027.png (480,480,3)
0095_s028.png (480,480,3)
0095_s029.png (480,480,3)
0095_s030.png (480,480,3)
0095_s031.png (480,480,3)
0095_s032.png (480,480,3)
0095_s033.png (480,480,3)
0095_s034.png (480,480,3)
0095_s035.png (480,480,3)
0095_s036.png (480,480,3)
0095_s037.png (480,480,3)
0095_s038.png (480,480,3)
0095_s039.png (480,480,3)
0095_s040.png (480,480,3)
0096_s001.png (480,480,3)
0096_s002.png (480,480,3)
0096_s003.png (480,480,3)
0096_s004.png (480,480,3)
0096_s005.png (480,480,3)
0096_s006.png (480,480,3)
0096_s007.png (480,480,3)
0096_s008.png (480,480,3)
0096_s009.png (480,480,3)
0096_s010.png (480,480,3)
0096_s011.png (480,480,3)
0096_s012.png (480,480,3)
0096_s013.png (480,480,3)
0096_s014.png (480,480,3)
0096_s015.png (480,480,3)
0096_s016.png (480,480,3)
0096_s017.png (480,480,3)
0096_s018.png (480,480,3)
0096_s019.png (480,480,3)
0096_s020.png (480,480,3)
0096_s021.png (480,480,3)
0096_s022.png (480,480,3)
0096_s023.png (480,480,3)
0096_s024.png (480,480,3)
0096_s025.png (480,480,3)
0096_s026.png (480,480,3)
0096_s027.png (480,480,3)
0096_s028.png (480,480,3)
0096_s029.png (480,480,3)
0096_s030.png (480,480,3)
0096_s031.png (480,480,3)
0096_s032.png (480,480,3)
0096_s033.png (480,480,3)
0096_s034.png (480,480,3)
0096_s035.png (480,480,3)
0096_s036.png (480,480,3)
0096_s037.png (480,480,3)
0096_s038.png (480,480,3)
0096_s039.png (480,480,3)
0096_s040.png (480,480,3)
0097_s001.png (480,480,3)
0097_s002.png (480,480,3)
0097_s003.png (480,480,3)
0097_s004.png (480,480,3)
0097_s005.png (480,480,3)
0097_s006.png (480,480,3)
0097_s007.png (480,480,3)
0097_s008.png (480,480,3)
0097_s009.png (480,480,3)
0097_s010.png (480,480,3)
0097_s011.png (480,480,3)
0097_s012.png (480,480,3)
0097_s013.png (480,480,3)
0097_s014.png (480,480,3)
0097_s015.png (480,480,3)
0097_s016.png (480,480,3)
0097_s017.png (480,480,3)
0097_s018.png (480,480,3)
0097_s019.png (480,480,3)
0097_s020.png (480,480,3)
0097_s021.png (480,480,3)
0097_s022.png (480,480,3)
0097_s023.png (480,480,3)
0097_s024.png (480,480,3)
0097_s025.png (480,480,3)
0097_s026.png (480,480,3)
0097_s027.png (480,480,3)
0097_s028.png (480,480,3)
0097_s029.png (480,480,3)
0097_s030.png (480,480,3)
0097_s031.png (480,480,3)
0097_s032.png (480,480,3)
0098_s001.png (480,480,3)
0098_s002.png (480,480,3)
0098_s003.png (480,480,3)
0098_s004.png (480,480,3)
0098_s005.png (480,480,3)
0098_s006.png (480,480,3)
0098_s007.png (480,480,3)
0098_s008.png (480,480,3)
0098_s009.png (480,480,3)
0098_s010.png (480,480,3)
0098_s011.png (480,480,3)
0098_s012.png (480,480,3)
0098_s013.png (480,480,3)
0098_s014.png (480,480,3)
0098_s015.png (480,480,3)
0098_s016.png (480,480,3)
0098_s017.png (480,480,3)
0098_s018.png (480,480,3)
0098_s019.png (480,480,3)
0098_s020.png (480,480,3)
0098_s021.png (480,480,3)
0098_s022.png (480,480,3)
0098_s023.png (480,480,3)
0098_s024.png (480,480,3)
0098_s025.png (480,480,3)
0098_s026.png (480,480,3)
0098_s027.png (480,480,3)
0098_s028.png (480,480,3)
0098_s029.png (480,480,3)
0098_s030.png (480,480,3)
0098_s031.png (480,480,3)
0098_s032.png (480,480,3)
0098_s033.png (480,480,3)
0098_s034.png (480,480,3)
0098_s035.png (480,480,3)
0098_s036.png (480,480,3)
0098_s037.png (480,480,3)
0098_s038.png (480,480,3)
0098_s039.png (480,480,3)
0098_s040.png (480,480,3)
0098_s041.png (480,480,3)
0098_s042.png (480,480,3)
0098_s043.png (480,480,3)
0098_s044.png (480,480,3)
0098_s045.png (480,480,3)
0098_s046.png (480,480,3)
0098_s047.png (480,480,3)
0098_s048.png (480,480,3)
0099_s001.png (480,480,3)
0099_s002.png (480,480,3)
0099_s003.png (480,480,3)
0099_s004.png (480,480,3)
0099_s005.png (480,480,3)
0099_s006.png (480,480,3)
0099_s007.png (480,480,3)
0099_s008.png (480,480,3)
0099_s009.png (480,480,3)
0099_s010.png (480,480,3)
0099_s011.png (480,480,3)
0099_s012.png (480,480,3)
0099_s013.png (480,480,3)
0099_s014.png (480,480,3)
0099_s015.png (480,480,3)
0099_s016.png (480,480,3)
0099_s017.png (480,480,3)
0099_s018.png (480,480,3)
0099_s019.png (480,480,3)
0099_s020.png (480,480,3)
0099_s021.png (480,480,3)
0099_s022.png (480,480,3)
0099_s023.png (480,480,3)
0099_s024.png (480,480,3)
0099_s025.png (480,480,3)
0099_s026.png (480,480,3)
0099_s027.png (480,480,3)
0099_s028.png (480,480,3)
0099_s029.png (480,480,3)
0099_s030.png (480,480,3)
0099_s031.png (480,480,3)
0099_s032.png (480,480,3)
0099_s033.png (480,480,3)
0099_s034.png (480,480,3)
0099_s035.png (480,480,3)
0099_s036.png (480,480,3)
0099_s037.png (480,480,3)
0099_s038.png (480,480,3)
0099_s039.png (480,480,3)
0099_s040.png (480,480,3)
0099_s041.png (480,480,3)
0099_s042.png (480,480,3)
0099_s043.png (480,480,3)
0099_s044.png (480,480,3)
0099_s045.png (480,480,3)
0099_s046.png (480,480,3)
0099_s047.png (480,480,3)
0099_s048.png (480,480,3)
0100_s001.png (480,480,3)
0100_s002.png (480,480,3)
0100_s003.png (480,480,3)
0100_s004.png (480,480,3)
0100_s005.png (480,480,3)
0100_s006.png (480,480,3)
0100_s007.png (480,480,3)
0100_s008.png (480,480,3)
0100_s009.png (480,480,3)
0100_s010.png (480,480,3)
0100_s011.png (480,480,3)
0100_s012.png (480,480,3)
0100_s013.png (480,480,3)
0100_s014.png (480,480,3)
0100_s015.png (480,480,3)
0100_s016.png (480,480,3)
0100_s017.png (480,480,3)
0100_s018.png (480,480,3)
0100_s019.png (480,480,3)
0100_s020.png (480,480,3)
0100_s021.png (480,480,3)
0100_s022.png (480,480,3)
0100_s023.png (480,480,3)
0100_s024.png (480,480,3)
0100_s025.png (480,480,3)
0100_s026.png (480,480,3)
0100_s027.png (480,480,3)
0100_s028.png (480,480,3)
0100_s029.png (480,480,3)
0100_s030.png (480,480,3)
0100_s031.png (480,480,3)
0100_s032.png (480,480,3)
0100_s033.png (480,480,3)
0100_s034.png (480,480,3)
0100_s035.png (480,480,3)
0100_s036.png (480,480,3)
0100_s037.png (480,480,3)
0100_s038.png (480,480,3)
0100_s039.png (480,480,3)
0100_s040.png (480,480,3)
0101_s001.png (480,480,3)
0101_s002.png (480,480,3)
0101_s003.png (480,480,3)
0101_s004.png (480,480,3)
0101_s005.png (480,480,3)
0101_s006.png (480,480,3)
0101_s007.png (480,480,3)
0101_s008.png (480,480,3)
0101_s009.png (480,480,3)
0101_s010.png (480,480,3)
0101_s011.png (480,480,3)
0101_s012.png (480,480,3)
0101_s013.png (480,480,3)
0101_s014.png (480,480,3)
0101_s015.png (480,480,3)
0101_s016.png (480,480,3)
0101_s017.png (480,480,3)
0101_s018.png (480,480,3)
0101_s019.png (480,480,3)
0101_s020.png (480,480,3)
0101_s021.png (480,480,3)
0101_s022.png (480,480,3)
0101_s023.png (480,480,3)
0101_s024.png (480,480,3)
0101_s025.png (480,480,3)
0101_s026.png (480,480,3)
0101_s027.png (480,480,3)
0101_s028.png (480,480,3)
0101_s029.png (480,480,3)
0101_s030.png (480,480,3)
0101_s031.png (480,480,3)
0101_s032.png (480,480,3)
0101_s033.png (480,480,3)
0101_s034.png (480,480,3)
0101_s035.png (480,480,3)
0101_s036.png (480,480,3)
0101_s037.png (480,480,3)
0101_s038.png (480,480,3)
0101_s039.png (480,480,3)
0101_s040.png (480,480,3)
0101_s041.png (480,480,3)
0101_s042.png (480,480,3)
0101_s043.png (480,480,3)
0101_s044.png (480,480,3)
0101_s045.png (480,480,3)
0101_s046.png (480,480,3)
0101_s047.png (480,480,3)
0101_s048.png (480,480,3)
0102_s001.png (480,480,3)
0102_s002.png (480,480,3)
0102_s003.png (480,480,3)
0102_s004.png (480,480,3)
0102_s005.png (480,480,3)
0102_s006.png (480,480,3)
0102_s007.png (480,480,3)
0102_s008.png (480,480,3)
0102_s009.png (480,480,3)
0102_s010.png (480,480,3)
0102_s011.png (480,480,3)
0102_s012.png (480,480,3)
0102_s013.png (480,480,3)
0102_s014.png (480,480,3)
0102_s015.png (480,480,3)
0102_s016.png (480,480,3)
0102_s017.png (480,480,3)
0102_s018.png (480,480,3)
0102_s019.png (480,480,3)
0102_s020.png (480,480,3)
0102_s021.png (480,480,3)
0102_s022.png (480,480,3)
0102_s023.png (480,480,3)
0102_s024.png (480,480,3)
0102_s025.png (480,480,3)
0102_s026.png (480,480,3)
0102_s027.png (480,480,3)
0102_s028.png (480,480,3)
0102_s029.png (480,480,3)
0102_s030.png (480,480,3)
0102_s031.png (480,480,3)
0102_s032.png (480,480,3)
0102_s033.png (480,480,3)
0102_s034.png (480,480,3)
0102_s035.png (480,480,3)
0102_s036.png (480,480,3)
0102_s037.png (480,480,3)
0102_s038.png (480,480,3)
0102_s039.png (480,480,3)
0102_s040.png (480,480,3)
0103_s001.png (480,480,3)
0103_s002.png (480,480,3)
0103_s003.png (480,480,3)
0103_s004.png (480,480,3)
0103_s005.png (480,480,3)
0103_s006.png (480,480,3)
0103_s007.png (480,480,3)
0103_s008.png (480,480,3)
0103_s009.png (480,480,3)
0103_s010.png (480,480,3)
0103_s011.png (480,480,3)
0103_s012.png (480,480,3)
0103_s013.png (480,480,3)
0103_s014.png (480,480,3)
0103_s015.png (480,480,3)
0103_s016.png (480,480,3)
0103_s017.png (480,480,3)
0103_s018.png (480,480,3)
0103_s019.png (480,480,3)
0103_s020.png (480,480,3)
0103_s021.png (480,480,3)
0103_s022.png (480,480,3)
0103_s023.png (480,480,3)
0103_s024.png (480,480,3)
0103_s025.png (480,480,3)
0103_s026.png (480,480,3)
0103_s027.png (480,480,3)
0103_s028.png (480,480,3)
0103_s029.png (480,480,3)
0103_s030.png (480,480,3)
0103_s031.png (480,480,3)
0103_s032.png (480,480,3)
0104_s001.png (480,480,3)
0104_s002.png (480,480,3)
0104_s003.png (480,480,3)
0104_s004.png (480,480,3)
0104_s005.png (480,480,3)
0104_s006.png (480,480,3)
0104_s007.png (480,480,3)
0104_s008.png (480,480,3)
0104_s009.png (480,480,3)
0104_s010.png (480,480,3)
0104_s011.png (480,480,3)
0104_s012.png (480,480,3)
0104_s013.png (480,480,3)
0104_s014.png (480,480,3)
0104_s015.png (480,480,3)
0104_s016.png (480,480,3)
0104_s017.png (480,480,3)
0104_s018.png (480,480,3)
0104_s019.png (480,480,3)
0104_s020.png (480,480,3)
0104_s021.png (480,480,3)
0104_s022.png (480,480,3)
0104_s023.png (480,480,3)
0104_s024.png (480,480,3)
0104_s025.png (480,480,3)
0104_s026.png (480,480,3)
0104_s027.png (480,480,3)
0104_s028.png (480,480,3)
0104_s029.png (480,480,3)
0104_s030.png (480,480,3)
0104_s031.png (480,480,3)
0104_s032.png (480,480,3)
0104_s033.png (480,480,3)
0104_s034.png (480,480,3)
0104_s035.png (480,480,3)
0104_s036.png (480,480,3)
0104_s037.png (480,480,3)
0104_s038.png (480,480,3)
0104_s039.png (480,480,3)
0104_s040.png (480,480,3)
0105_s001.png (480,480,3)
0105_s002.png (480,480,3)
0105_s003.png (480,480,3)
0105_s004.png (480,480,3)
0105_s005.png (480,480,3)
0105_s006.png (480,480,3)
0105_s007.png (480,480,3)
0105_s008.png (480,480,3)
0105_s009.png (480,480,3)
0105_s010.png (480,480,3)
0105_s011.png (480,480,3)
0105_s012.png (480,480,3)
0105_s013.png (480,480,3)
0105_s014.png (480,480,3)
0105_s015.png (480,480,3)
0105_s016.png (480,480,3)
0105_s017.png (480,480,3)
0105_s018.png (480,480,3)
0105_s019.png (480,480,3)
0105_s020.png (480,480,3)
0105_s021.png (480,480,3)
0105_s022.png (480,480,3)
0105_s023.png (480,480,3)
0105_s024.png (480,480,3)
0105_s025.png (480,480,3)
0105_s026.png (480,480,3)
0105_s027.png (480,480,3)
0105_s028.png (480,480,3)
0105_s029.png (480,480,3)
0105_s030.png (480,480,3)
0105_s031.png (480,480,3)
0105_s032.png (480,480,3)
0105_s033.png (480,480,3)
0105_s034.png (480,480,3)
0105_s035.png (480,480,3)
0105_s036.png (480,480,3)
0105_s037.png (480,480,3)
0105_s038.png (480,480,3)
0105_s039.png (480,480,3)
0105_s040.png (480,480,3)
0106_s001.png (480,480,3)
0106_s002.png (480,480,3)
0106_s003.png (480,480,3)
0106_s004.png (480,480,3)
0106_s005.png (480,480,3)
0106_s006.png (480,480,3)
0106_s007.png (480,480,3)
0106_s008.png (480,480,3)
0106_s009.png (480,480,3)
0106_s010.png (480,480,3)
0106_s011.png (480,480,3)
0106_s012.png (480,480,3)
0106_s013.png (480,480,3)
0106_s014.png (480,480,3)
0106_s015.png (480,480,3)
0106_s016.png (480,480,3)
0106_s017.png (480,480,3)
0106_s018.png (480,480,3)
0106_s019.png (480,480,3)
0106_s020.png (480,480,3)
0106_s021.png (480,480,3)
0106_s022.png (480,480,3)
0106_s023.png (480,480,3)
0106_s024.png (480,480,3)
0106_s025.png (480,480,3)
0106_s026.png (480,480,3)
0106_s027.png (480,480,3)
0106_s028.png (480,480,3)
0106_s029.png (480,480,3)
0106_s030.png (480,480,3)
0106_s031.png (480,480,3)
0106_s032.png (480,480,3)
0107_s001.png (480,480,3)
0107_s002.png (480,480,3)
0107_s003.png (480,480,3)
0107_s004.png (480,480,3)
0107_s005.png (480,480,3)
0107_s006.png (480,480,3)
0107_s007.png (480,480,3)
0107_s008.png (480,480,3)
0107_s009.png (480,480,3)
0107_s010.png (480,480,3)
0107_s011.png (480,480,3)
0107_s012.png (480,480,3)
0107_s013.png (480,480,3)
0107_s014.png (480,480,3)
0107_s015.png (480,480,3)
0107_s016.png (480,480,3)
0107_s017.png (480,480,3)
0107_s018.png (480,480,3)
0107_s019.png (480,480,3)
0107_s020.png (480,480,3)
0107_s021.png (480,480,3)
0107_s022.png (480,480,3)
0107_s023.png (480,480,3)
0107_s024.png (480,480,3)
0107_s025.png (480,480,3)
0107_s026.png (480,480,3)
0107_s027.png (480,480,3)
0107_s028.png (480,480,3)
0107_s029.png (480,480,3)
0107_s030.png (480,480,3)
0107_s031.png (480,480,3)
0107_s032.png (480,480,3)
0107_s033.png (480,480,3)
0107_s034.png (480,480,3)
0107_s035.png (480,480,3)
0107_s036.png (480,480,3)
0107_s037.png (480,480,3)
0107_s038.png (480,480,3)
0107_s039.png (480,480,3)
0107_s040.png (480,480,3)
0108_s001.png (480,480,3)
0108_s002.png (480,480,3)
0108_s003.png (480,480,3)
0108_s004.png (480,480,3)
0108_s005.png (480,480,3)
0108_s006.png (480,480,3)
0108_s007.png (480,480,3)
0108_s008.png (480,480,3)
0108_s009.png (480,480,3)
0108_s010.png (480,480,3)
0108_s011.png (480,480,3)
0108_s012.png (480,480,3)
0108_s013.png (480,480,3)
0108_s014.png (480,480,3)
0108_s015.png (480,480,3)
0108_s016.png (480,480,3)
0108_s017.png (480,480,3)
0108_s018.png (480,480,3)
0108_s019.png (480,480,3)
0108_s020.png (480,480,3)
0108_s021.png (480,480,3)
0108_s022.png (480,480,3)
0108_s023.png (480,480,3)
0108_s024.png (480,480,3)
0108_s025.png (480,480,3)
0108_s026.png (480,480,3)
0108_s027.png (480,480,3)
0108_s028.png (480,480,3)
0108_s029.png (480,480,3)
0108_s030.png (480,480,3)
0108_s031.png (480,480,3)
0108_s032.png (480,480,3)
0108_s033.png (480,480,3)
0108_s034.png (480,480,3)
0108_s035.png (480,480,3)
0108_s036.png (480,480,3)
0108_s037.png (480,480,3)
0108_s038.png (480,480,3)
0108_s039.png (480,480,3)
0108_s040.png (480,480,3)
0108_s041.png (480,480,3)
0108_s042.png (480,480,3)
0108_s043.png (480,480,3)
0108_s044.png (480,480,3)
0108_s045.png (480,480,3)
0108_s046.png (480,480,3)
0108_s047.png (480,480,3)
0108_s048.png (480,480,3)
0109_s001.png (480,480,3)
0109_s002.png (480,480,3)
0109_s003.png (480,480,3)
0109_s004.png (480,480,3)
0109_s005.png (480,480,3)
0109_s006.png (480,480,3)
0109_s007.png (480,480,3)
0109_s008.png (480,480,3)
0109_s009.png (480,480,3)
0109_s010.png (480,480,3)
0109_s011.png (480,480,3)
0109_s012.png (480,480,3)
0109_s013.png (480,480,3)
0109_s014.png (480,480,3)
0109_s015.png (480,480,3)
0109_s016.png (480,480,3)
0109_s017.png (480,480,3)
0109_s018.png (480,480,3)
0109_s019.png (480,480,3)
0109_s020.png (480,480,3)
0109_s021.png (480,480,3)
0109_s022.png (480,480,3)
0109_s023.png (480,480,3)
0109_s024.png (480,480,3)
0109_s025.png (480,480,3)
0109_s026.png (480,480,3)
0109_s027.png (480,480,3)
0109_s028.png (480,480,3)
0109_s029.png (480,480,3)
0109_s030.png (480,480,3)
0109_s031.png (480,480,3)
0109_s032.png (480,480,3)
0109_s033.png (480,480,3)
0109_s034.png (480,480,3)
0109_s035.png (480,480,3)
0109_s036.png (480,480,3)
0109_s037.png (480,480,3)
0109_s038.png (480,480,3)
0109_s039.png (480,480,3)
0109_s040.png (480,480,3)
0110_s001.png (480,480,3)
0110_s002.png (480,480,3)
0110_s003.png (480,480,3)
0110_s004.png (480,480,3)
0110_s005.png (480,480,3)
0110_s006.png (480,480,3)
0110_s007.png (480,480,3)
0110_s008.png (480,480,3)
0110_s009.png (480,480,3)
0110_s010.png (480,480,3)
0110_s011.png (480,480,3)
0110_s012.png (480,480,3)
0110_s013.png (480,480,3)
0110_s014.png (480,480,3)
0110_s015.png (480,480,3)
0110_s016.png (480,480,3)
0110_s017.png (480,480,3)
0110_s018.png (480,480,3)
0110_s019.png (480,480,3)
0110_s020.png (480,480,3)
0110_s021.png (480,480,3)
0110_s022.png (480,480,3)
0110_s023.png (480,480,3)
0110_s024.png (480,480,3)
0110_s025.png (480,480,3)
0110_s026.png (480,480,3)
0110_s027.png (480,480,3)
0110_s028.png (480,480,3)
0110_s029.png (480,480,3)
0110_s030.png (480,480,3)
0110_s031.png (480,480,3)
0110_s032.png (480,480,3)
0110_s033.png (480,480,3)
0110_s034.png (480,480,3)
0110_s035.png (480,480,3)
0110_s036.png (480,480,3)
0110_s037.png (480,480,3)
0110_s038.png (480,480,3)
0110_s039.png (480,480,3)
0110_s040.png (480,480,3)
0111_s001.png (480,480,3)
0111_s002.png (480,480,3)
0111_s003.png (480,480,3)
0111_s004.png (480,480,3)
0111_s005.png (480,480,3)
0111_s006.png (480,480,3)
0111_s007.png (480,480,3)
0111_s008.png (480,480,3)
0111_s009.png (480,480,3)
0111_s010.png (480,480,3)
0111_s011.png (480,480,3)
0111_s012.png (480,480,3)
0111_s013.png (480,480,3)
0111_s014.png (480,480,3)
0111_s015.png (480,480,3)
0111_s016.png (480,480,3)
0111_s017.png (480,480,3)
0111_s018.png (480,480,3)
0111_s019.png (480,480,3)
0111_s020.png (480,480,3)
0111_s021.png (480,480,3)
0111_s022.png (480,480,3)
0111_s023.png (480,480,3)
0111_s024.png (480,480,3)
0111_s025.png (480,480,3)
0111_s026.png (480,480,3)
0111_s027.png (480,480,3)
0111_s028.png (480,480,3)
0111_s029.png (480,480,3)
0111_s030.png (480,480,3)
0111_s031.png (480,480,3)
0111_s032.png (480,480,3)
0111_s033.png (480,480,3)
0111_s034.png (480,480,3)
0111_s035.png (480,480,3)
0111_s036.png (480,480,3)
0111_s037.png (480,480,3)
0111_s038.png (480,480,3)
0111_s039.png (480,480,3)
0111_s040.png (480,480,3)
0112_s001.png (480,480,3)
0112_s002.png (480,480,3)
0112_s003.png (480,480,3)
0112_s004.png (480,480,3)
0112_s005.png (480,480,3)
0112_s006.png (480,480,3)
0112_s007.png (480,480,3)
0112_s008.png (480,480,3)
0112_s009.png (480,480,3)
0112_s010.png (480,480,3)
0112_s011.png (480,480,3)
0112_s012.png (480,480,3)
0112_s013.png (480,480,3)
0112_s014.png (480,480,3)
0112_s015.png (480,480,3)
0112_s016.png (480,480,3)
0112_s017.png (480,480,3)
0112_s018.png (480,480,3)
0112_s019.png (480,480,3)
0112_s020.png (480,480,3)
0112_s021.png (480,480,3)
0112_s022.png (480,480,3)
0112_s023.png (480,480,3)
0112_s024.png (480,480,3)
0112_s025.png (480,480,3)
0112_s026.png (480,480,3)
0112_s027.png (480,480,3)
0112_s028.png (480,480,3)
0112_s029.png (480,480,3)
0112_s030.png (480,480,3)
0112_s031.png (480,480,3)
0112_s032.png (480,480,3)
0112_s033.png (480,480,3)
0112_s034.png (480,480,3)
0112_s035.png (480,480,3)
0112_s036.png (480,480,3)
0112_s037.png (480,480,3)
0112_s038.png (480,480,3)
0112_s039.png (480,480,3)
0112_s040.png (480,480,3)
0113_s001.png (480,480,3)
0113_s002.png (480,480,3)
0113_s003.png (480,480,3)
0113_s004.png (480,480,3)
0113_s005.png (480,480,3)
0113_s006.png (480,480,3)
0113_s007.png (480,480,3)
0113_s008.png (480,480,3)
0113_s009.png (480,480,3)
0113_s010.png (480,480,3)
0113_s011.png (480,480,3)
0113_s012.png (480,480,3)
0113_s013.png (480,480,3)
0113_s014.png (480,480,3)
0113_s015.png (480,480,3)
0113_s016.png (480,480,3)
0113_s017.png (480,480,3)
0113_s018.png (480,480,3)
0113_s019.png (480,480,3)
0113_s020.png (480,480,3)
0113_s021.png (480,480,3)
0113_s022.png (480,480,3)
0113_s023.png (480,480,3)
0113_s024.png (480,480,3)
0113_s025.png (480,480,3)
0113_s026.png (480,480,3)
0113_s027.png (480,480,3)
0113_s028.png (480,480,3)
0113_s029.png (480,480,3)
0113_s030.png (480,480,3)
0113_s031.png (480,480,3)
0113_s032.png (480,480,3)
0113_s033.png (480,480,3)
0113_s034.png (480,480,3)
0113_s035.png (480,480,3)
0113_s036.png (480,480,3)
0113_s037.png (480,480,3)
0113_s038.png (480,480,3)
0113_s039.png (480,480,3)
0113_s040.png (480,480,3)
0114_s001.png (480,480,3)
0114_s002.png (480,480,3)
0114_s003.png (480,480,3)
0114_s004.png (480,480,3)
0114_s005.png (480,480,3)
0114_s006.png (480,480,3)
0114_s007.png (480,480,3)
0114_s008.png (480,480,3)
0114_s009.png (480,480,3)
0114_s010.png (480,480,3)
0114_s011.png (480,480,3)
0114_s012.png (480,480,3)
0114_s013.png (480,480,3)
0114_s014.png (480,480,3)
0114_s015.png (480,480,3)
0114_s016.png (480,480,3)
0114_s017.png (480,480,3)
0114_s018.png (480,480,3)
0114_s019.png (480,480,3)
0114_s020.png (480,480,3)
0114_s021.png (480,480,3)
0114_s022.png (480,480,3)
0114_s023.png (480,480,3)
0114_s024.png (480,480,3)
0114_s025.png (480,480,3)
0114_s026.png (480,480,3)
0114_s027.png (480,480,3)
0114_s028.png (480,480,3)
0114_s029.png (480,480,3)
0114_s030.png (480,480,3)
0114_s031.png (480,480,3)
0114_s032.png (480,480,3)
0114_s033.png (480,480,3)
0114_s034.png (480,480,3)
0114_s035.png (480,480,3)
0114_s036.png (480,480,3)
0114_s037.png (480,480,3)
0114_s038.png (480,480,3)
0114_s039.png (480,480,3)
0114_s040.png (480,480,3)
0115_s001.png (480,480,3)
0115_s002.png (480,480,3)
0115_s003.png (480,480,3)
0115_s004.png (480,480,3)
0115_s005.png (480,480,3)
0115_s006.png (480,480,3)
0115_s007.png (480,480,3)
0115_s008.png (480,480,3)
0115_s009.png (480,480,3)
0115_s010.png (480,480,3)
0115_s011.png (480,480,3)
0115_s012.png (480,480,3)
0115_s013.png (480,480,3)
0115_s014.png (480,480,3)
0115_s015.png (480,480,3)
0115_s016.png (480,480,3)
0115_s017.png (480,480,3)
0115_s018.png (480,480,3)
0115_s019.png (480,480,3)
0115_s020.png (480,480,3)
0115_s021.png (480,480,3)
0115_s022.png (480,480,3)
0115_s023.png (480,480,3)
0115_s024.png (480,480,3)
0115_s025.png (480,480,3)
0115_s026.png (480,480,3)
0115_s027.png (480,480,3)
0115_s028.png (480,480,3)
0115_s029.png (480,480,3)
0115_s030.png (480,480,3)
0115_s031.png (480,480,3)
0115_s032.png (480,480,3)
0115_s033.png (480,480,3)
0115_s034.png (480,480,3)
0115_s035.png (480,480,3)
0115_s036.png (480,480,3)
0115_s037.png (480,480,3)
0115_s038.png (480,480,3)
0115_s039.png (480,480,3)
0115_s040.png (480,480,3)
0115_s041.png (480,480,3)
0115_s042.png (480,480,3)
0115_s043.png (480,480,3)
0115_s044.png (480,480,3)
0115_s045.png (480,480,3)
0115_s046.png (480,480,3)
0115_s047.png (480,480,3)
0115_s048.png (480,480,3)
0116_s001.png (480,480,3)
0116_s002.png (480,480,3)
0116_s003.png (480,480,3)
0116_s004.png (480,480,3)
0116_s005.png (480,480,3)
0116_s006.png (480,480,3)
0116_s007.png (480,480,3)
0116_s008.png (480,480,3)
0116_s009.png (480,480,3)
0116_s010.png (480,480,3)
0116_s011.png (480,480,3)
0116_s012.png (480,480,3)
0116_s013.png (480,480,3)
0116_s014.png (480,480,3)
0116_s015.png (480,480,3)
0116_s016.png (480,480,3)
0116_s017.png (480,480,3)
0116_s018.png (480,480,3)
0116_s019.png (480,480,3)
0116_s020.png (480,480,3)
0116_s021.png (480,480,3)
0116_s022.png (480,480,3)
0116_s023.png (480,480,3)
0116_s024.png (480,480,3)
0116_s025.png (480,480,3)
0116_s026.png (480,480,3)
0116_s027.png (480,480,3)
0116_s028.png (480,480,3)
0116_s029.png (480,480,3)
0116_s030.png (480,480,3)
0116_s031.png (480,480,3)
0116_s032.png (480,480,3)
0116_s033.png (480,480,3)
0116_s034.png (480,480,3)
0116_s035.png (480,480,3)
0116_s036.png (480,480,3)
0116_s037.png (480,480,3)
0116_s038.png (480,480,3)
0116_s039.png (480,480,3)
0116_s040.png (480,480,3)
0117_s001.png (480,480,3)
0117_s002.png (480,480,3)
0117_s003.png (480,480,3)
0117_s004.png (480,480,3)
0117_s005.png (480,480,3)
0117_s006.png (480,480,3)
0117_s007.png (480,480,3)
0117_s008.png (480,480,3)
0117_s009.png (480,480,3)
0117_s010.png (480,480,3)
0117_s011.png (480,480,3)
0117_s012.png (480,480,3)
0117_s013.png (480,480,3)
0117_s014.png (480,480,3)
0117_s015.png (480,480,3)
0117_s016.png (480,480,3)
0117_s017.png (480,480,3)
0117_s018.png (480,480,3)
0117_s019.png (480,480,3)
0117_s020.png (480,480,3)
0117_s021.png (480,480,3)
0117_s022.png (480,480,3)
0117_s023.png (480,480,3)
0117_s024.png (480,480,3)
0117_s025.png (480,480,3)
0117_s026.png (480,480,3)
0117_s027.png (480,480,3)
0117_s028.png (480,480,3)
0117_s029.png (480,480,3)
0117_s030.png (480,480,3)
0117_s031.png (480,480,3)
0117_s032.png (480,480,3)
0117_s033.png (480,480,3)
0117_s034.png (480,480,3)
0117_s035.png (480,480,3)
0117_s036.png (480,480,3)
0117_s037.png (480,480,3)
0117_s038.png (480,480,3)
0117_s039.png (480,480,3)
0117_s040.png (480,480,3)
0118_s001.png (480,480,3)
0118_s002.png (480,480,3)
0118_s003.png (480,480,3)
0118_s004.png (480,480,3)
0118_s005.png (480,480,3)
0118_s006.png (480,480,3)
0118_s007.png (480,480,3)
0118_s008.png (480,480,3)
0118_s009.png (480,480,3)
0118_s010.png (480,480,3)
0118_s011.png (480,480,3)
0118_s012.png (480,480,3)
0118_s013.png (480,480,3)
0118_s014.png (480,480,3)
0118_s015.png (480,480,3)
0118_s016.png (480,480,3)
0118_s017.png (480,480,3)
0118_s018.png (480,480,3)
0118_s019.png (480,480,3)
0118_s020.png (480,480,3)
0118_s021.png (480,480,3)
0118_s022.png (480,480,3)
0118_s023.png (480,480,3)
0118_s024.png (480,480,3)
0118_s025.png (480,480,3)
0118_s026.png (480,480,3)
0118_s027.png (480,480,3)
0118_s028.png (480,480,3)
0118_s029.png (480,480,3)
0118_s030.png (480,480,3)
0118_s031.png (480,480,3)
0118_s032.png (480,480,3)
0118_s033.png (480,480,3)
0118_s034.png (480,480,3)
0118_s035.png (480,480,3)
0118_s036.png (480,480,3)
0118_s037.png (480,480,3)
0118_s038.png (480,480,3)
0118_s039.png (480,480,3)
0118_s040.png (480,480,3)
0118_s041.png (480,480,3)
0118_s042.png (480,480,3)
0118_s043.png (480,480,3)
0118_s044.png (480,480,3)
0118_s045.png (480,480,3)
0118_s046.png (480,480,3)
0118_s047.png (480,480,3)
0118_s048.png (480,480,3)
0119_s001.png (480,480,3)
0119_s002.png (480,480,3)
0119_s003.png (480,480,3)
0119_s004.png (480,480,3)
0119_s005.png (480,480,3)
0119_s006.png (480,480,3)
0119_s007.png (480,480,3)
0119_s008.png (480,480,3)
0119_s009.png (480,480,3)
0119_s010.png (480,480,3)
0119_s011.png (480,480,3)
0119_s012.png (480,480,3)
0119_s013.png (480,480,3)
0119_s014.png (480,480,3)
0119_s015.png (480,480,3)
0119_s016.png (480,480,3)
0119_s017.png (480,480,3)
0119_s018.png (480,480,3)
0119_s019.png (480,480,3)
0119_s020.png (480,480,3)
0119_s021.png (480,480,3)
0119_s022.png (480,480,3)
0119_s023.png (480,480,3)
0119_s024.png (480,480,3)
0119_s025.png (480,480,3)
0119_s026.png (480,480,3)
0119_s027.png (480,480,3)
0119_s028.png (480,480,3)
0119_s029.png (480,480,3)
0119_s030.png (480,480,3)
0119_s031.png (480,480,3)
0119_s032.png (480,480,3)
0119_s033.png (480,480,3)
0119_s034.png (480,480,3)
0119_s035.png (480,480,3)
0119_s036.png (480,480,3)
0119_s037.png (480,480,3)
0119_s038.png (480,480,3)
0119_s039.png (480,480,3)
0119_s040.png (480,480,3)
0120_s001.png (480,480,3)
0120_s002.png (480,480,3)
0120_s003.png (480,480,3)
0120_s004.png (480,480,3)
0120_s005.png (480,480,3)
0120_s006.png (480,480,3)
0120_s007.png (480,480,3)
0120_s008.png (480,480,3)
0120_s009.png (480,480,3)
0120_s010.png (480,480,3)
0120_s011.png (480,480,3)
0120_s012.png (480,480,3)
0120_s013.png (480,480,3)
0120_s014.png (480,480,3)
0120_s015.png (480,480,3)
0120_s016.png (480,480,3)
0120_s017.png (480,480,3)
0120_s018.png (480,480,3)
0120_s019.png (480,480,3)
0120_s020.png (480,480,3)
0120_s021.png (480,480,3)
0120_s022.png (480,480,3)
0120_s023.png (480,480,3)
0120_s024.png (480,480,3)
0120_s025.png (480,480,3)
0120_s026.png (480,480,3)
0120_s027.png (480,480,3)
0120_s028.png (480,480,3)
0120_s029.png (480,480,3)
0120_s030.png (480,480,3)
0120_s031.png (480,480,3)
0120_s032.png (480,480,3)
0120_s033.png (480,480,3)
0120_s034.png (480,480,3)
0120_s035.png (480,480,3)
0120_s036.png (480,480,3)
0120_s037.png (480,480,3)
0120_s038.png (480,480,3)
0120_s039.png (480,480,3)
0120_s040.png (480,480,3)
0121_s001.png (480,480,3)
0121_s002.png (480,480,3)
0121_s003.png (480,480,3)
0121_s004.png (480,480,3)
0121_s005.png (480,480,3)
0121_s006.png (480,480,3)
0121_s007.png (480,480,3)
0121_s008.png (480,480,3)
0121_s009.png (480,480,3)
0121_s010.png (480,480,3)
0121_s011.png (480,480,3)
0121_s012.png (480,480,3)
0121_s013.png (480,480,3)
0121_s014.png (480,480,3)
0121_s015.png (480,480,3)
0121_s016.png (480,480,3)
0121_s017.png (480,480,3)
0121_s018.png (480,480,3)
0121_s019.png (480,480,3)
0121_s020.png (480,480,3)
0121_s021.png (480,480,3)
0121_s022.png (480,480,3)
0121_s023.png (480,480,3)
0121_s024.png (480,480,3)
0121_s025.png (480,480,3)
0121_s026.png (480,480,3)
0121_s027.png (480,480,3)
0121_s028.png (480,480,3)
0121_s029.png (480,480,3)
0121_s030.png (480,480,3)
0121_s031.png (480,480,3)
0121_s032.png (480,480,3)
0121_s033.png (480,480,3)
0121_s034.png (480,480,3)
0121_s035.png (480,480,3)
0121_s036.png (480,480,3)
0121_s037.png (480,480,3)
0121_s038.png (480,480,3)
0121_s039.png (480,480,3)
0121_s040.png (480,480,3)
0122_s001.png (480,480,3)
0122_s002.png (480,480,3)
0122_s003.png (480,480,3)
0122_s004.png (480,480,3)
0122_s005.png (480,480,3)
0122_s006.png (480,480,3)
0122_s007.png (480,480,3)
0122_s008.png (480,480,3)
0122_s009.png (480,480,3)
0122_s010.png (480,480,3)
0122_s011.png (480,480,3)
0122_s012.png (480,480,3)
0122_s013.png (480,480,3)
0122_s014.png (480,480,3)
0122_s015.png (480,480,3)
0122_s016.png (480,480,3)
0122_s017.png (480,480,3)
0122_s018.png (480,480,3)
0122_s019.png (480,480,3)
0122_s020.png (480,480,3)
0122_s021.png (480,480,3)
0122_s022.png (480,480,3)
0122_s023.png (480,480,3)
0122_s024.png (480,480,3)
0123_s001.png (480,480,3)
0123_s002.png (480,480,3)
0123_s003.png (480,480,3)
0123_s004.png (480,480,3)
0123_s005.png (480,480,3)
0123_s006.png (480,480,3)
0123_s007.png (480,480,3)
0123_s008.png (480,480,3)
0123_s009.png (480,480,3)
0123_s010.png (480,480,3)
0123_s011.png (480,480,3)
0123_s012.png (480,480,3)
0123_s013.png (480,480,3)
0123_s014.png (480,480,3)
0123_s015.png (480,480,3)
0123_s016.png (480,480,3)
0123_s017.png (480,480,3)
0123_s018.png (480,480,3)
0123_s019.png (480,480,3)
0123_s020.png (480,480,3)
0123_s021.png (480,480,3)
0123_s022.png (480,480,3)
0123_s023.png (480,480,3)
0123_s024.png (480,480,3)
0123_s025.png (480,480,3)
0123_s026.png (480,480,3)
0123_s027.png (480,480,3)
0123_s028.png (480,480,3)
0123_s029.png (480,480,3)
0123_s030.png (480,480,3)
0123_s031.png (480,480,3)
0123_s032.png (480,480,3)
0123_s033.png (480,480,3)
0123_s034.png (480,480,3)
0123_s035.png (480,480,3)
0123_s036.png (480,480,3)
0123_s037.png (480,480,3)
0123_s038.png (480,480,3)
0123_s039.png (480,480,3)
0123_s040.png (480,480,3)
0123_s041.png (480,480,3)
0123_s042.png (480,480,3)
0123_s043.png (480,480,3)
0123_s044.png (480,480,3)
0123_s045.png (480,480,3)
0123_s046.png (480,480,3)
0123_s047.png (480,480,3)
0123_s048.png (480,480,3)
0124_s001.png (480,480,3)
0124_s002.png (480,480,3)
0124_s003.png (480,480,3)
0124_s004.png (480,480,3)
0124_s005.png (480,480,3)
0124_s006.png (480,480,3)
0124_s007.png (480,480,3)
0124_s008.png (480,480,3)
0124_s009.png (480,480,3)
0124_s010.png (480,480,3)
0124_s011.png (480,480,3)
0124_s012.png (480,480,3)
0124_s013.png (480,480,3)
0124_s014.png (480,480,3)
0124_s015.png (480,480,3)
0124_s016.png (480,480,3)
0124_s017.png (480,480,3)
0124_s018.png (480,480,3)
0124_s019.png (480,480,3)
0124_s020.png (480,480,3)
0124_s021.png (480,480,3)
0124_s022.png (480,480,3)
0124_s023.png (480,480,3)
0124_s024.png (480,480,3)
0124_s025.png (480,480,3)
0124_s026.png (480,480,3)
0124_s027.png (480,480,3)
0124_s028.png (480,480,3)
0124_s029.png (480,480,3)
0124_s030.png (480,480,3)
0124_s031.png (480,480,3)
0124_s032.png (480,480,3)
0124_s033.png (480,480,3)
0124_s034.png (480,480,3)
0124_s035.png (480,480,3)
0124_s036.png (480,480,3)
0124_s037.png (480,480,3)
0124_s038.png (480,480,3)
0124_s039.png (480,480,3)
0124_s040.png (480,480,3)
0125_s001.png (480,480,3)
0125_s002.png (480,480,3)
0125_s003.png (480,480,3)
0125_s004.png (480,480,3)
0125_s005.png (480,480,3)
0125_s006.png (480,480,3)
0125_s007.png (480,480,3)
0125_s008.png (480,480,3)
0125_s009.png (480,480,3)
0125_s010.png (480,480,3)
0125_s011.png (480,480,3)
0125_s012.png (480,480,3)
0125_s013.png (480,480,3)
0125_s014.png (480,480,3)
0125_s015.png (480,480,3)
0125_s016.png (480,480,3)
0125_s017.png (480,480,3)
0125_s018.png (480,480,3)
0125_s019.png (480,480,3)
0125_s020.png (480,480,3)
0125_s021.png (480,480,3)
0125_s022.png (480,480,3)
0125_s023.png (480,480,3)
0125_s024.png (480,480,3)
0125_s025.png (480,480,3)
0125_s026.png (480,480,3)
0125_s027.png (480,480,3)
0125_s028.png (480,480,3)
0125_s029.png (480,480,3)
0125_s030.png (480,480,3)
0125_s031.png (480,480,3)
0125_s032.png (480,480,3)
0125_s033.png (480,480,3)
0125_s034.png (480,480,3)
0125_s035.png (480,480,3)
0125_s036.png (480,480,3)
0125_s037.png (480,480,3)
0125_s038.png (480,480,3)
0125_s039.png (480,480,3)
0125_s040.png (480,480,3)
0126_s001.png (480,480,3)
0126_s002.png (480,480,3)
0126_s003.png (480,480,3)
0126_s004.png (480,480,3)
0126_s005.png (480,480,3)
0126_s006.png (480,480,3)
0126_s007.png (480,480,3)
0126_s008.png (480,480,3)
0126_s009.png (480,480,3)
0126_s010.png (480,480,3)
0126_s011.png (480,480,3)
0126_s012.png (480,480,3)
0126_s013.png (480,480,3)
0126_s014.png (480,480,3)
0126_s015.png (480,480,3)
0126_s016.png (480,480,3)
0126_s017.png (480,480,3)
0126_s018.png (480,480,3)
0126_s019.png (480,480,3)
0126_s020.png (480,480,3)
0126_s021.png (480,480,3)
0126_s022.png (480,480,3)
0126_s023.png (480,480,3)
0126_s024.png (480,480,3)
0126_s025.png (480,480,3)
0126_s026.png (480,480,3)
0126_s027.png (480,480,3)
0126_s028.png (480,480,3)
0126_s029.png (480,480,3)
0126_s030.png (480,480,3)
0126_s031.png (480,480,3)
0126_s032.png (480,480,3)
0126_s033.png (480,480,3)
0126_s034.png (480,480,3)
0126_s035.png (480,480,3)
0126_s036.png (480,480,3)
0126_s037.png (480,480,3)
0126_s038.png (480,480,3)
0126_s039.png (480,480,3)
0126_s040.png (480,480,3)
0126_s041.png (480,480,3)
0126_s042.png (480,480,3)
0126_s043.png (480,480,3)
0126_s044.png (480,480,3)
0126_s045.png (480,480,3)
0126_s046.png (480,480,3)
0126_s047.png (480,480,3)
0126_s048.png (480,480,3)
0127_s001.png (480,480,3)
0127_s002.png (480,480,3)
0127_s003.png (480,480,3)
0127_s004.png (480,480,3)
0127_s005.png (480,480,3)
0127_s006.png (480,480,3)
0127_s007.png (480,480,3)
0127_s008.png (480,480,3)
0127_s009.png (480,480,3)
0127_s010.png (480,480,3)
0127_s011.png (480,480,3)
0127_s012.png (480,480,3)
0127_s013.png (480,480,3)
0127_s014.png (480,480,3)
0127_s015.png (480,480,3)
0127_s016.png (480,480,3)
0127_s017.png (480,480,3)
0127_s018.png (480,480,3)
0127_s019.png (480,480,3)
0127_s020.png (480,480,3)
0127_s021.png (480,480,3)
0127_s022.png (480,480,3)
0127_s023.png (480,480,3)
0127_s024.png (480,480,3)
0127_s025.png (480,480,3)
0127_s026.png (480,480,3)
0127_s027.png (480,480,3)
0127_s028.png (480,480,3)
0127_s029.png (480,480,3)
0127_s030.png (480,480,3)
0127_s031.png (480,480,3)
0127_s032.png (480,480,3)
0127_s033.png (480,480,3)
0127_s034.png (480,480,3)
0127_s035.png (480,480,3)
0127_s036.png (480,480,3)
0127_s037.png (480,480,3)
0127_s038.png (480,480,3)
0127_s039.png (480,480,3)
0127_s040.png (480,480,3)
0128_s001.png (480,480,3)
0128_s002.png (480,480,3)
0128_s003.png (480,480,3)
0128_s004.png (480,480,3)
0128_s005.png (480,480,3)
0128_s006.png (480,480,3)
0128_s007.png (480,480,3)
0128_s008.png (480,480,3)
0128_s009.png (480,480,3)
0128_s010.png (480,480,3)
0128_s011.png (480,480,3)
0128_s012.png (480,480,3)
0128_s013.png (480,480,3)
0128_s014.png (480,480,3)
0128_s015.png (480,480,3)
0128_s016.png (480,480,3)
0128_s017.png (480,480,3)
0128_s018.png (480,480,3)
0128_s019.png (480,480,3)
0128_s020.png (480,480,3)
0128_s021.png (480,480,3)
0128_s022.png (480,480,3)
0128_s023.png (480,480,3)
0128_s024.png (480,480,3)
0128_s025.png (480,480,3)
0128_s026.png (480,480,3)
0128_s027.png (480,480,3)
0128_s028.png (480,480,3)
0128_s029.png (480,480,3)
0128_s030.png (480,480,3)
0128_s031.png (480,480,3)
0128_s032.png (480,480,3)
0128_s033.png (480,480,3)
0128_s034.png (480,480,3)
0128_s035.png (480,480,3)
0128_s036.png (480,480,3)
0128_s037.png (480,480,3)
0128_s038.png (480,480,3)
0128_s039.png (480,480,3)
0128_s040.png (480,480,3)
0129_s001.png (480,480,3)
0129_s002.png (480,480,3)
0129_s003.png (480,480,3)
0129_s004.png (480,480,3)
0129_s005.png (480,480,3)
0129_s006.png (480,480,3)
0129_s007.png (480,480,3)
0129_s008.png (480,480,3)
0129_s009.png (480,480,3)
0129_s010.png (480,480,3)
0129_s011.png (480,480,3)
0129_s012.png (480,480,3)
0129_s013.png (480,480,3)
0129_s014.png (480,480,3)
0129_s015.png (480,480,3)
0129_s016.png (480,480,3)
0129_s017.png (480,480,3)
0129_s018.png (480,480,3)
0129_s019.png (480,480,3)
0129_s020.png (480,480,3)
0129_s021.png (480,480,3)
0129_s022.png (480,480,3)
0129_s023.png (480,480,3)
0129_s024.png (480,480,3)
0129_s025.png (480,480,3)
0129_s026.png (480,480,3)
0129_s027.png (480,480,3)
0129_s028.png (480,480,3)
0129_s029.png (480,480,3)
0129_s030.png (480,480,3)
0129_s031.png (480,480,3)
0129_s032.png (480,480,3)
0129_s033.png (480,480,3)
0129_s034.png (480,480,3)
0129_s035.png (480,480,3)
0129_s036.png (480,480,3)
0129_s037.png (480,480,3)
0129_s038.png (480,480,3)
0129_s039.png (480,480,3)
0129_s040.png (480,480,3)
0130_s001.png (480,480,3)
0130_s002.png (480,480,3)
0130_s003.png (480,480,3)
0130_s004.png (480,480,3)
0130_s005.png (480,480,3)
0130_s006.png (480,480,3)
0130_s007.png (480,480,3)
0130_s008.png (480,480,3)
0130_s009.png (480,480,3)
0130_s010.png (480,480,3)
0130_s011.png (480,480,3)
0130_s012.png (480,480,3)
0130_s013.png (480,480,3)
0130_s014.png (480,480,3)
0130_s015.png (480,480,3)
0130_s016.png (480,480,3)
0130_s017.png (480,480,3)
0130_s018.png (480,480,3)
0130_s019.png (480,480,3)
0130_s020.png (480,480,3)
0130_s021.png (480,480,3)
0130_s022.png (480,480,3)
0130_s023.png (480,480,3)
0130_s024.png (480,480,3)
0130_s025.png (480,480,3)
0130_s026.png (480,480,3)
0130_s027.png (480,480,3)
0130_s028.png (480,480,3)
0130_s029.png (480,480,3)
0130_s030.png (480,480,3)
0130_s031.png (480,480,3)
0130_s032.png (480,480,3)
0130_s033.png (480,480,3)
0130_s034.png (480,480,3)
0130_s035.png (480,480,3)
0130_s036.png (480,480,3)
0130_s037.png (480,480,3)
0130_s038.png (480,480,3)
0130_s039.png (480,480,3)
0130_s040.png (480,480,3)
0131_s001.png (480,480,3)
0131_s002.png (480,480,3)
0131_s003.png (480,480,3)
0131_s004.png (480,480,3)
0131_s005.png (480,480,3)
0131_s006.png (480,480,3)
0131_s007.png (480,480,3)
0131_s008.png (480,480,3)
0131_s009.png (480,480,3)
0131_s010.png (480,480,3)
0131_s011.png (480,480,3)
0131_s012.png (480,480,3)
0131_s013.png (480,480,3)
0131_s014.png (480,480,3)
0131_s015.png (480,480,3)
0131_s016.png (480,480,3)
0131_s017.png (480,480,3)
0131_s018.png (480,480,3)
0131_s019.png (480,480,3)
0131_s020.png (480,480,3)
0131_s021.png (480,480,3)
0131_s022.png (480,480,3)
0131_s023.png (480,480,3)
0131_s024.png (480,480,3)
0131_s025.png (480,480,3)
0131_s026.png (480,480,3)
0131_s027.png (480,480,3)
0131_s028.png (480,480,3)
0131_s029.png (480,480,3)
0131_s030.png (480,480,3)
0131_s031.png (480,480,3)
0131_s032.png (480,480,3)
0131_s033.png (480,480,3)
0131_s034.png (480,480,3)
0131_s035.png (480,480,3)
0131_s036.png (480,480,3)
0131_s037.png (480,480,3)
0131_s038.png (480,480,3)
0131_s039.png (480,480,3)
0131_s040.png (480,48
Download .txt
gitextract_1m56b8y9/

├── .gitignore
├── Deraining/
│   ├── Deraining/
│   │   ├── Datasets/
│   │   │   └── README.md
│   │   ├── Metric/
│   │   │   └── PSNR.py
│   │   ├── Options/
│   │   │   ├── Deraining_mamber28.yml
│   │   │   ├── Deraining_mamber32.yml
│   │   │   ├── Deraining_mamber33.yml
│   │   │   └── Deraining_mamber34.yml
│   │   ├── README.md
│   │   ├── download_data.py
│   │   ├── evaluate_PSNR_SSIM.m
│   │   ├── test.py
│   │   └── utils.py
│   ├── Deraining_test.sh
│   ├── Deraining_train.sh
│   ├── INSTALL.md
│   ├── LICENSE.md
│   ├── VERSION
│   ├── basicsr/
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── data_sampler.py
│   │   │   ├── data_util.py
│   │   │   ├── ffhq_dataset.py
│   │   │   ├── meta_info/
│   │   │   │   ├── meta_info_DIV2K800sub_GT.txt
│   │   │   │   ├── meta_info_REDS4_test_GT.txt
│   │   │   │   ├── meta_info_REDS_GT.txt
│   │   │   │   ├── meta_info_REDSofficial4_test_GT.txt
│   │   │   │   ├── meta_info_REDSval_official_test_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_fast_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_medium_GT.txt
│   │   │   │   ├── meta_info_Vimeo90K_test_slow_GT.txt
│   │   │   │   └── meta_info_Vimeo90K_train_GT.txt
│   │   │   ├── paired_image_dataset.py
│   │   │   ├── prefetch_dataloader.py
│   │   │   ├── reds_dataset.py
│   │   │   ├── single_image_dataset.py
│   │   │   ├── transforms.py
│   │   │   ├── video_test_dataset.py
│   │   │   └── vimeo90k_dataset.py
│   │   ├── metrics/
│   │   │   ├── __init__.py
│   │   │   ├── fid.py
│   │   │   ├── metric_util.py
│   │   │   ├── niqe.py
│   │   │   ├── niqe_pris_params.npz
│   │   │   └── psnr_ssim.py
│   │   ├── models/
│   │   │   ├── __init__.py
│   │   │   ├── archs/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── arch_util.py
│   │   │   │   ├── common.py
│   │   │   │   ├── mamber32_arch.py
│   │   │   │   ├── mamber33_arch.py
│   │   │   │   └── restormer_arch.py
│   │   │   ├── base_model.py
│   │   │   ├── image_restoration_model.py
│   │   │   ├── losses/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── loss_util.py
│   │   │   │   └── losses.py
│   │   │   └── lr_scheduler.py
│   │   ├── test.py
│   │   ├── test_deraining.py
│   │   ├── train.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── bundle_submissions.py
│   │   │   ├── create_lmdb.py
│   │   │   ├── dist_util.py
│   │   │   ├── download_util.py
│   │   │   ├── face_util.py
│   │   │   ├── file_client.py
│   │   │   ├── flow_util.py
│   │   │   ├── img_util.py
│   │   │   ├── lmdb_util.py
│   │   │   ├── logger.py
│   │   │   ├── matlab_functions.py
│   │   │   ├── misc.py
│   │   │   └── options.py
│   │   ├── utils2.py
│   │   └── version.py
│   ├── pip.sh
│   ├── setup.cfg
│   ├── setup.py
│   └── train.sh
├── Mamba/
│   ├── .gitignore
│   └── kernels/
│       └── selective_scan/
│           ├── README.md
│           ├── csrc/
│           │   └── selective_scan/
│           │       ├── cub_extra.cuh
│           │       ├── cus/
│           │       │   ├── selective_scan.cpp
│           │       │   ├── selective_scan_bwd_kernel.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   └── selective_scan_fwd_kernel.cuh
│           │       ├── cusndstate/
│           │       │   ├── selective_scan_bwd_kernel_ndstate.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   ├── selective_scan_fwd_kernel_ndstate.cuh
│           │       │   ├── selective_scan_ndstate.cpp
│           │       │   └── selective_scan_ndstate.h
│           │       ├── cusnrow/
│           │       │   ├── selective_scan_bwd_kernel_nrow.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_bwd2.cu
│           │       │   ├── selective_scan_core_bwd3.cu
│           │       │   ├── selective_scan_core_bwd4.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   ├── selective_scan_core_fwd2.cu
│           │       │   ├── selective_scan_core_fwd3.cu
│           │       │   ├── selective_scan_core_fwd4.cu
│           │       │   ├── selective_scan_fwd_kernel_nrow.cuh
│           │       │   └── selective_scan_nrow.cpp
│           │       ├── cusoflex/
│           │       │   ├── selective_scan_bwd_kernel_oflex.cuh
│           │       │   ├── selective_scan_core_bwd.cu
│           │       │   ├── selective_scan_core_fwd.cu
│           │       │   ├── selective_scan_fwd_kernel_oflex.cuh
│           │       │   └── selective_scan_oflex.cpp
│           │       ├── reverse_scan.cuh
│           │       ├── selective_scan.h
│           │       ├── selective_scan_common.h
│           │       ├── static_switch.h
│           │       └── uninitialized_copy.cuh
│           ├── setup.py
│           └── test_selective_scan.py
├── README.md
├── RealSR/
│   ├── .gitignore
│   ├── Metric/
│   │   ├── DISTS/
│   │   │   ├── DISTS_pytorch/
│   │   │   │   ├── DISTS_pt.py
│   │   │   │   └── weights.pt
│   │   │   ├── DISTS_tensorflow/
│   │   │   │   └── DISTS_tf.py
│   │   │   ├── LICENSE
│   │   │   └── requirements.txt
│   │   ├── LPIPS.py
│   │   ├── PSNR.py
│   │   ├── dists.py
│   │   └── pip.sh
│   ├── VERSION
│   ├── VmambaIR/
│   │   ├── __init__.py
│   │   ├── archs/
│   │   │   ├── MambaRealSR11_arch.py
│   │   │   ├── __init__.py
│   │   │   ├── attention.py
│   │   │   ├── common.py
│   │   │   ├── discriminator_arch.py
│   │   │   └── srvgg_arch.py
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── data_util.py
│   │   │   ├── deblur_paired_dataset.py
│   │   │   ├── diffir_dataset.py
│   │   │   ├── diffir_paired_dataset.py
│   │   │   ├── gaussiandenoising_paired_dataset.py
│   │   │   ├── realesrgan400_dataset.py
│   │   │   ├── realesrgan_dataset.py
│   │   │   ├── realesrgan_memery_dataset.py
│   │   │   ├── realesrgan_paired_dataset.py
│   │   │   └── transforms.py
│   │   ├── losses/
│   │   │   ├── __init__.py
│   │   │   └── my_loss.py
│   │   ├── models/
│   │   │   ├── MambaRealSRGAN_model.py
│   │   │   ├── MambaRealSRGANtest_model.py
│   │   │   ├── MambaRealSR_model.py
│   │   │   ├── __init__.py
│   │   │   └── lr_scheduler.py
│   │   ├── test.py
│   │   ├── train.py
│   │   ├── train_pipeline.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── bundle_submissions.py
│   │   │   ├── create_lmdb.py
│   │   │   ├── dist_util.py
│   │   │   ├── download_util.py
│   │   │   ├── face_util.py
│   │   │   ├── file_client.py
│   │   │   ├── flow_util.py
│   │   │   ├── img_util.py
│   │   │   ├── lmdb_util.py
│   │   │   ├── logger.py
│   │   │   ├── matlab_functions.py
│   │   │   ├── misc.py
│   │   │   └── options.py
│   │   ├── utils.py
│   │   └── weights/
│   │       └── README.md
│   ├── inference.py
│   ├── ldm/
│   │   ├── classifier.py
│   │   ├── lr_scheduler.py
│   │   ├── util.py
│   │   └── util2.py
│   ├── metric.sh
│   ├── options/
│   │   ├── mambaSR11GAN_x4.yml
│   │   ├── mambaSR11_x4.yml
│   │   ├── mambaSR11m_x4.yml
│   │   └── test_mambaSR11GAN_x4.yml
│   ├── pip.sh
│   ├── requirements.txt
│   ├── scripts/
│   │   ├── Metric/
│   │   │   ├── DISTS/
│   │   │   │   ├── DISTS_pytorch/
│   │   │   │   │   ├── DISTS_pt.py
│   │   │   │   │   └── weights.pt
│   │   │   │   ├── DISTS_tensorflow/
│   │   │   │   │   └── DISTS_tf.py
│   │   │   │   ├── LICENSE
│   │   │   │   └── requirements.txt
│   │   │   ├── LPIPS.py
│   │   │   ├── PSNR.py
│   │   │   ├── dists.py
│   │   │   └── pip.sh
│   │   ├── extract_subimages.py
│   │   ├── extract_subimages_DF2K.py
│   │   ├── generate_meta_info.py
│   │   ├── generate_meta_info_DF2K.py
│   │   ├── generate_meta_info_DF2K_memo.py
│   │   ├── generate_meta_info_OST.py
│   │   ├── generate_meta_info_pairdata.py
│   │   ├── generate_multiscale_DF2K.py
│   │   ├── options/
│   │   │   ├── mambaSR11GAN_x4.yml
│   │   │   ├── mambaSR11_x4.yml
│   │   │   ├── mambaSR11m_x4.yml
│   │   │   └── test_mambaSR11GAN_x4.yml
│   │   └── pytorch2onnx.py
│   ├── setup.cfg
│   ├── setup.py
│   ├── test.sh
│   ├── tests/
│   │   ├── data/
│   │   │   ├── gt.lmdb/
│   │   │   │   ├── data.mdb
│   │   │   │   ├── lock.mdb
│   │   │   │   └── meta_info.txt
│   │   │   ├── lq.lmdb/
│   │   │   │   ├── data.mdb
│   │   │   │   ├── lock.mdb
│   │   │   │   └── meta_info.txt
│   │   │   ├── meta_info_gt.txt
│   │   │   ├── meta_info_pair.txt
│   │   │   ├── test_realesrgan_dataset.yml
│   │   │   ├── test_realesrgan_model.yml
│   │   │   ├── test_realesrgan_paired_dataset.yml
│   │   │   └── test_realesrnet_model.yml
│   │   ├── test_dataset.py
│   │   ├── test_discriminator_arch.py
│   │   ├── test_model.py
│   │   └── test_utils.py
│   ├── train_S1.sh
│   └── train_S2.sh
├── SRGAN/
│   ├── .gitignore
│   ├── Metric/
│   │   ├── DISTS/
│   │   │   ├── DISTS_pytorch/
│   │   │   │   ├── DISTS_pt.py
│   │   │   │   └── weights.pt
│   │   │   ├── DISTS_tensorflow/
│   │   │   │   └── DISTS_tf.py
│   │   │   ├── LICENSE
│   │   │   └── requirements.txt
│   │   ├── LPIPS.py
│   │   ├── PSNR.py
│   │   ├── dists.py
│   │   └── pip.sh
│   ├── VERSION
│   ├── VmambaIR/
│   │   ├── __init__.py
│   │   ├── archs/
│   │   │   ├── MambaSISR6_arch.py
│   │   │   ├── __init__.py
│   │   │   ├── attention.py
│   │   │   ├── common.py
│   │   │   ├── discriminator_arch.py
│   │   │   └── srvgg_arch.py
│   │   ├── data/
│   │   │   ├── __init__.py
│   │   │   ├── data_util.py
│   │   │   ├── deblur_paired_dataset.py
│   │   │   ├── diffir_dataset.py
│   │   │   ├── diffir_paired_dataset.py
│   │   │   ├── gaussiandenoising_paired_dataset.py
│   │   │   └── transforms.py
│   │   ├── losses/
│   │   │   ├── __init__.py
│   │   │   └── my_loss.py
│   │   ├── models/
│   │   │   ├── MambaSISR2_model.py
│   │   │   ├── MambaSISRGAN_model.py
│   │   │   ├── MambaSISR_model.py
│   │   │   ├── __init__.py
│   │   │   └── lr_scheduler.py
│   │   ├── test.py
│   │   ├── train.py
│   │   ├── train_pipeline.py
│   │   ├── utils/
│   │   │   ├── __init__.py
│   │   │   ├── bundle_submissions.py
│   │   │   ├── create_lmdb.py
│   │   │   ├── dist_util.py
│   │   │   ├── download_util.py
│   │   │   ├── face_util.py
│   │   │   ├── file_client.py
│   │   │   ├── flow_util.py
│   │   │   ├── img_util.py
│   │   │   ├── lmdb_util.py
│   │   │   ├── logger.py
│   │   │   ├── matlab_functions.py
│   │   │   ├── misc.py
│   │   │   └── options.py
│   │   ├── utils.py
│   │   └── weights/
│   │       └── README.md
│   ├── ldm/
│   │   ├── classifier.py
│   │   ├── lr_scheduler.py
│   │   ├── util.py
│   │   └── util2.py
│   ├── metric.sh
│   ├── options/
│   │   ├── MambaSISR15GAN_x4.yml
│   │   ├── MambaSISR15_x4.yml
│   │   └── test_mamba15_x4.yml
│   ├── pip.sh
│   ├── requirements.txt
│   ├── scripts/
│   │   ├── extract_subimages.py
│   │   ├── extract_subimages_DF2K.py
│   │   ├── generate_meta_info.py
│   │   ├── generate_meta_info_DF2K.py
│   │   ├── generate_meta_info_OST.py
│   │   ├── generate_meta_info_pairdata.py
│   │   ├── generate_multiscale_DF2K.py
│   │   └── pytorch2onnx.py
│   ├── setup.cfg
│   ├── setup.py
│   ├── test.sh
│   ├── train_S1.sh
│   └── train_S2.sh
├── install.md
└── requirements.txt
Download .txt
SYMBOL INDEX (1327 symbols across 168 files)

FILE: Deraining/Deraining/Metric/PSNR.py
  function main (line 12) | def main():

FILE: Deraining/Deraining/utils.py
  function calculate_psnr (line 10) | def calculate_psnr(img1, img2, border=0):
  function calculate_ssim (line 31) | def calculate_ssim(img1, img2, border=0):
  function ssim (line 58) | def ssim(img1, img2):
  function load_img (line 80) | def load_img(filepath):
  function save_img (line 83) | def save_img(filepath, img):
  function load_gray_img (line 86) | def load_gray_img(filepath):
  function save_gray_img (line 89) | def save_gray_img(filepath, img):

FILE: Deraining/basicsr/data/__init__.py
  function create_dataset (line 29) | def create_dataset(dataset_opt):
  function create_dataloader (line 56) | def create_dataloader(dataset,
  function worker_init_fn (line 122) | def worker_init_fn(worker_id, num_workers, rank, seed):

FILE: Deraining/basicsr/data/data_sampler.py
  class EnlargedSampler (line 6) | class EnlargedSampler(Sampler):
    method __init__ (line 21) | def __init__(self, dataset, num_replicas, rank, ratio=1):
    method __iter__ (line 30) | def __iter__(self):
    method __len__ (line 45) | def __len__(self):
    method set_epoch (line 48) | def set_epoch(self, epoch):

FILE: Deraining/basicsr/data/data_util.py
  function read_img_seq (line 12) | def read_img_seq(path, require_mod_crop=False, scale=1):
  function generate_frame_indices (line 36) | def generate_frame_indices(crt_idx,
  function paired_paths_from_lmdb (line 92) | def paired_paths_from_lmdb(folders, keys):
  function paired_paths_from_meta_info_file (line 158) | def paired_paths_from_meta_info_file(folders, keys, meta_info_file,
  function paired_paths_from_folder (line 208) | def paired_paths_from_folder(folders, keys, filename_tmpl):
  function paired_DP_paths_from_folder (line 253) | def paired_DP_paths_from_folder(folders, keys, filename_tmpl):
  function paths_from_folder (line 307) | def paths_from_folder(folder):
  function paths_from_lmdb (line 322) | def paths_from_lmdb(folder):
  function generate_gaussian_kernel (line 338) | def generate_gaussian_kernel(kernel_size=13, sigma=1.6):
  function duf_downsample (line 356) | def duf_downsample(x, kernel_size=13, scale=4):

FILE: Deraining/basicsr/data/ffhq_dataset.py
  class FFHQDataset (line 9) | class FFHQDataset(data.Dataset):
    method __init__ (line 22) | def __init__(self, opt):
    method __getitem__ (line 46) | def __getitem__(self, index):
    method __len__ (line 64) | def __len__(self):

FILE: Deraining/basicsr/data/paired_image_dataset.py
  class Dataset_PairedImage (line 16) | class Dataset_PairedImage(data.Dataset):
    method __init__ (line 45) | def __init__(self, opt):
    method __getitem__ (line 78) | def __getitem__(self, index):
    method __len__ (line 131) | def __len__(self):
  class Dataset_GaussianDenoising (line 134) | class Dataset_GaussianDenoising(data.Dataset):
    method __init__ (line 162) | def __init__(self, opt):
    method __getitem__ (line 198) | def __getitem__(self, index):
    method __len__ (line 273) | def __len__(self):
  class Dataset_DefocusDeblur_DualPixel_16bit (line 276) | class Dataset_DefocusDeblur_DualPixel_16bit(data.Dataset):
    method __init__ (line 277) | def __init__(self, opt):
    method __getitem__ (line 299) | def __getitem__(self, index):
    method __len__ (line 362) | def __len__(self):

FILE: Deraining/basicsr/data/prefetch_dataloader.py
  class PrefetchGenerator (line 7) | class PrefetchGenerator(threading.Thread):
    method __init__ (line 18) | def __init__(self, generator, num_prefetch_queue):
    method run (line 25) | def run(self):
    method __next__ (line 30) | def __next__(self):
    method __iter__ (line 36) | def __iter__(self):
  class PrefetchDataLoader (line 40) | class PrefetchDataLoader(DataLoader):
    method __init__ (line 55) | def __init__(self, num_prefetch_queue, **kwargs):
    method __iter__ (line 59) | def __iter__(self):
  class CPUPrefetcher (line 63) | class CPUPrefetcher():
    method __init__ (line 70) | def __init__(self, loader):
    method next (line 74) | def next(self):
    method reset (line 80) | def reset(self):
  class CUDAPrefetcher (line 84) | class CUDAPrefetcher():
    method __init__ (line 97) | def __init__(self, loader, opt):
    method preload (line 105) | def preload(self):
    method next (line 118) | def next(self):
    method reset (line 124) | def reset(self):

FILE: Deraining/basicsr/data/reds_dataset.py
  class REDSDataset (line 12) | class REDSDataset(data.Dataset):
    method __init__ (line 51) | def __init__(self, opt):
    method __getitem__ (line 106) | def __getitem__(self, index):
    method __len__ (line 236) | def __len__(self):

FILE: Deraining/basicsr/data/single_image_dataset.py
  class SingleImageDataset (line 9) | class SingleImageDataset(data.Dataset):
    method __init__ (line 25) | def __init__(self, opt):
    method __getitem__ (line 48) | def __getitem__(self, index):
    method __len__ (line 66) | def __len__(self):

FILE: Deraining/basicsr/data/transforms.py
  function mod_crop (line 5) | def mod_crop(img, scale):
  function paired_random_crop (line 24) | def paired_random_crop(img_gts, img_lqs, lq_patch_size, scale, gt_path):
  function paired_random_crop_DP (line 85) | def paired_random_crop_DP(img_lqLs, img_lqRs, img_gts, gt_patch_size, sc...
  function augment (line 136) | def augment(imgs, hflip=True, rotation=True, flows=None, return_status=F...
  function img_rotate (line 203) | def img_rotate(img, angle, center=None, scale=1.0):
  function data_augmentation (line 223) | def data_augmentation(image, mode):
  function random_augmentation (line 270) | def random_augmentation(*args):

FILE: Deraining/basicsr/data/video_test_dataset.py
  class VideoTestDataset (line 11) | class VideoTestDataset(data.Dataset):
    method __init__ (line 44) | def __init__(self, opt):
    method __getitem__ (line 117) | def __getitem__(self, index):
    method __len__ (line 146) | def __len__(self):
  class VideoTestVimeo90KDataset (line 150) | class VideoTestVimeo90KDataset(data.Dataset):
    method __init__ (line 170) | def __init__(self, opt):
    method __getitem__ (line 211) | def __getitem__(self, index):
    method __len__ (line 227) | def __len__(self):
  class VideoTestDUFDataset (line 231) | class VideoTestDUFDataset(VideoTestDataset):
    method __getitem__ (line 244) | def __getitem__(self, index):
  class VideoRecurrentTestDataset (line 293) | class VideoRecurrentTestDataset(VideoTestDataset):
    method __init__ (line 304) | def __init__(self, opt):
    method __getitem__ (line 309) | def __getitem__(self, index):
    method __len__ (line 324) | def __len__(self):

FILE: Deraining/basicsr/data/vimeo90k_dataset.py
  class Vimeo90KDataset (line 10) | class Vimeo90KDataset(data.Dataset):
    method __init__ (line 50) | def __init__(self, opt):
    method __getitem__ (line 78) | def __getitem__(self, index):
    method __len__ (line 129) | def __len__(self):

FILE: Deraining/basicsr/metrics/fid.py
  function load_patched_inception_v3 (line 10) | def load_patched_inception_v3(device='cuda',
  function extract_inception_features (line 23) | def extract_inception_features(data_generator,
  function calculate_fid (line 57) | def calculate_fid(mu1, sigma1, mu2, sigma2, eps=1e-6):

FILE: Deraining/basicsr/metrics/metric_util.py
  function reorder_image (line 6) | def reorder_image(img, input_order='HWC'):
  function to_y_channel (line 34) | def to_y_channel(img):

FILE: Deraining/basicsr/metrics/niqe.py
  function estimate_aggd_param (line 10) | def estimate_aggd_param(block):
  function compute_feature (line 40) | def compute_feature(block):
  function niqe (line 67) | def niqe(img,
  function calculate_niqe (line 158) | def calculate_niqe(img, crop_border, input_order='HWC', convert_to='y'):

FILE: Deraining/basicsr/metrics/psnr_ssim.py
  function calculate_psnr (line 9) | def calculate_psnr(img1,
  function _ssim (line 66) | def _ssim(img1, img2):
  function prepare_for_ssim (line 101) | def prepare_for_ssim(img, k):
  function prepare_for_ssim_rgb (line 115) | def prepare_for_ssim_rgb(img, k):
  function _3d_gaussian_calculator (line 131) | def _3d_gaussian_calculator(img, conv3d):
  function _generate_3d_gaussian_kernel (line 135) | def _generate_3d_gaussian_kernel():
  function _ssim_3d (line 145) | def _ssim_3d(img1, img2, max_value):
  function _ssim_cly (line 184) | def _ssim_cly(img1, img2):
  function calculate_ssim (line 225) | def calculate_ssim(img1,

FILE: Deraining/basicsr/models/__init__.py
  function create_model (line 21) | def create_model(opt):

FILE: Deraining/basicsr/models/archs/__init__.py
  function dynamic_instantiation (line 21) | def dynamic_instantiation(modules, cls_type, opt):
  function define_network (line 43) | def define_network(opt):

FILE: Deraining/basicsr/models/archs/arch_util.py
  function default_init_weights (line 19) | def default_init_weights(module_list, scale=1, bias_fill=0, **kwargs):
  function make_layer (line 49) | def make_layer(basic_block, num_basic_block, **kwarg):
  class ResidualBlockNoBN (line 65) | class ResidualBlockNoBN(nn.Module):
    method __init__ (line 80) | def __init__(self, num_feat=64, res_scale=1, pytorch_init=False):
    method forward (line 90) | def forward(self, x):
  class Upsample (line 96) | class Upsample(nn.Sequential):
    method __init__ (line 104) | def __init__(self, scale, num_feat):
  function flow_warp (line 119) | def flow_warp(x,
  function resize_flow (line 164) | def resize_flow(flow,
  function pixel_unshuffle (line 211) | def pixel_unshuffle(x, scale):

FILE: Deraining/basicsr/models/archs/common.py
  function default_conv (line 7) | def default_conv(in_channels, out_channels, kernel_size, bias=True):
  class ResBlock (line 10) | class ResBlock(nn.Module):
    method __init__ (line 11) | def __init__(
    method forward (line 27) | def forward(self, x):
  class MeanShift (line 33) | class MeanShift(nn.Conv2d):
    method __init__ (line 34) | def __init__(self, rgb_range, rgb_mean, rgb_std, sign=-1):
  class Upsampler (line 45) | class Upsampler(nn.Sequential):
    method __init__ (line 46) | def __init__(self, conv, scale, n_feat, act=False, bias=True):

FILE: Deraining/basicsr/models/archs/mamber32_arch.py
  class SelectiveScanFn (line 20) | class SelectiveScanFn(torch.autograd.Function):
    method forward (line 23) | def forward(ctx, u, delta, A, B, C, D=None, delta_bias=None, delta_sof...
    method backward (line 60) | def backward(ctx, dout, *args):
  function selective_scan_fn_v1 (line 88) | def selective_scan_fn_v1(u, delta, A, B, C, D=None, delta_bias=None, del...
  function flops_selective_scan_fn (line 98) | def flops_selective_scan_fn(B=1, L=256, D=768, N=16, with_D=True, with_Z...
  function print_jit_input_names (line 121) | def print_jit_input_names(inputs):
  function selective_scan_flop_jit (line 130) | def selective_scan_flop_jit(inputs, outputs):
  function to_3d (line 141) | def to_3d(x):
  function to_4d (line 144) | def to_4d(x,h,w):
  class BiasFree_LayerNorm (line 147) | class BiasFree_LayerNorm(nn.Module):
    method __init__ (line 148) | def __init__(self, normalized_shape):
    method forward (line 159) | def forward(self, x):
  class WithBias_LayerNorm (line 163) | class WithBias_LayerNorm(nn.Module):
    method __init__ (line 164) | def __init__(self, normalized_shape):
    method forward (line 176) | def forward(self, x):
  class LayerNorm (line 182) | class LayerNorm(nn.Module):
    method __init__ (line 183) | def __init__(self, dim, LayerNorm_type):
    method forward (line 190) | def forward(self, x):
  class FeedForward (line 198) | class FeedForward(nn.Module):
    method __init__ (line 199) | def __init__(self, dim, ffn_expansion_factor, bias):
    method forward (line 210) | def forward(self, x):
  class SS2D_1 (line 219) | class SS2D_1(nn.Module):
    method __init__ (line 220) | def __init__(
    method dt_init (line 335) | def dt_init(dt_rank, d_inner, dt_scale=1.0, dt_init="random", dt_min=0...
    method A_log_init (line 361) | def A_log_init(d_state, d_inner, copies=-1, device=None, merge=True):
    method D_init (line 379) | def D_init(d_inner, copies=-1, device=None, merge=True):
    method forward_corev1 (line 392) | def forward_corev1(self, x: torch.Tensor):
    method cforward_corev1 (line 436) | def cforward_corev1(self, xc: torch.Tensor):
    method forward (line 483) | def forward(self, x: torch.Tensor, **kwargs):
  class MamberBlock (line 498) | class MamberBlock(nn.Module):
    method __init__ (line 499) | def __init__(self, dim, num_heads, ffn_expansion_factor, bias, LayerNo...
    method forward (line 507) | def forward(self, x):
  class OverlapPatchEmbed (line 516) | class OverlapPatchEmbed(nn.Module):
    method __init__ (line 517) | def __init__(self, in_c=3, embed_dim=48, bias=False):
    method forward (line 522) | def forward(self, x):
  class Downsample (line 531) | class Downsample(nn.Module):
    method __init__ (line 532) | def __init__(self, n_feat):
    method forward (line 538) | def forward(self, x):
  class Upsample (line 541) | class Upsample(nn.Module):
    method __init__ (line 542) | def __init__(self, n_feat):
    method forward (line 548) | def forward(self, x):
  class Mamber32 (line 554) | class Mamber32(nn.Module):
    method __init__ (line 555) | def __init__(self,
    method forward (line 610) | def forward(self, inp_img):
    method flops (line 653) | def flops(self, shape=(3, 64, 64)):

FILE: Deraining/basicsr/models/archs/mamber33_arch.py
  class SelectiveScanFn (line 20) | class SelectiveScanFn(torch.autograd.Function):
    method forward (line 23) | def forward(ctx, u, delta, A, B, C, D=None, delta_bias=None, delta_sof...
    method backward (line 60) | def backward(ctx, dout, *args):
  function selective_scan_fn_v1 (line 87) | def selective_scan_fn_v1(u, delta, A, B, C, D=None, delta_bias=None, del...
  function flops_selective_scan_fn (line 95) | def flops_selective_scan_fn(B=1, L=256, D=768, N=16, with_D=True, with_Z...
  function print_jit_input_names (line 118) | def print_jit_input_names(inputs):
  function selective_scan_flop_jit (line 127) | def selective_scan_flop_jit(inputs, outputs):
  function to_3d (line 138) | def to_3d(x):
  function to_4d (line 141) | def to_4d(x,h,w):
  class BiasFree_LayerNorm (line 144) | class BiasFree_LayerNorm(nn.Module):
    method __init__ (line 145) | def __init__(self, normalized_shape):
    method forward (line 156) | def forward(self, x):
  class WithBias_LayerNorm (line 160) | class WithBias_LayerNorm(nn.Module):
    method __init__ (line 161) | def __init__(self, normalized_shape):
    method forward (line 173) | def forward(self, x):
  class LayerNorm (line 179) | class LayerNorm(nn.Module):
    method __init__ (line 180) | def __init__(self, dim, LayerNorm_type):
    method forward (line 187) | def forward(self, x):
  class FeedForward (line 195) | class FeedForward(nn.Module):
    method __init__ (line 196) | def __init__(self, dim, ffn_expansion_factor, bias):
    method forward (line 207) | def forward(self, x):
  class SS2D_1 (line 216) | class SS2D_1(nn.Module):
    method __init__ (line 217) | def __init__(
    method dt_init (line 332) | def dt_init(dt_rank, d_inner, dt_scale=1.0, dt_init="random", dt_min=0...
    method A_log_init (line 357) | def A_log_init(d_state, d_inner, copies=-1, device=None, merge=True):
    method D_init (line 374) | def D_init(d_inner, copies=-1, device=None, merge=True):
    method forward_corev1 (line 386) | def forward_corev1(self, x: torch.Tensor):
    method cforward_corev1 (line 430) | def cforward_corev1(self, xc: torch.Tensor):
    method forward (line 480) | def forward(self, x: torch.Tensor, **kwargs):
  class MamberBlock (line 496) | class MamberBlock(nn.Module):
    method __init__ (line 497) | def __init__(self, dim, num_heads, ffn_expansion_factor, bias, LayerNo...
    method forward (line 505) | def forward(self, x):
  class OverlapPatchEmbed (line 514) | class OverlapPatchEmbed(nn.Module):
    method __init__ (line 515) | def __init__(self, in_c=3, embed_dim=48, bias=False):
    method forward (line 520) | def forward(self, x):
  class Downsample (line 529) | class Downsample(nn.Module):
    method __init__ (line 530) | def __init__(self, n_feat):
    method forward (line 536) | def forward(self, x):
  class Upsample (line 539) | class Upsample(nn.Module):
    method __init__ (line 540) | def __init__(self, n_feat):
    method forward (line 546) | def forward(self, x):
  class Mamber33 (line 552) | class Mamber33(nn.Module):
    method __init__ (line 553) | def __init__(self,
    method forward (line 608) | def forward(self, inp_img):
    method flops (line 651) | def flops(self, shape=(3, 64, 64)):

FILE: Deraining/basicsr/models/archs/restormer_arch.py
  function to_3d (line 21) | def to_3d(x):
  function to_4d (line 24) | def to_4d(x,h,w):
  class BiasFree_LayerNorm (line 27) | class BiasFree_LayerNorm(nn.Module):
    method __init__ (line 28) | def __init__(self, normalized_shape):
    method forward (line 39) | def forward(self, x):
  class WithBias_LayerNorm (line 43) | class WithBias_LayerNorm(nn.Module):
    method __init__ (line 44) | def __init__(self, normalized_shape):
    method forward (line 56) | def forward(self, x):
  class LayerNorm (line 62) | class LayerNorm(nn.Module):
    method __init__ (line 63) | def __init__(self, dim, LayerNorm_type):
    method forward (line 70) | def forward(self, x):
  class FeedForward (line 78) | class FeedForward(nn.Module):
    method __init__ (line 79) | def __init__(self, dim, ffn_expansion_factor, bias):
    method forward (line 90) | def forward(self, x):
  class Attention (line 101) | class Attention(nn.Module):
    method __init__ (line 102) | def __init__(self, dim, num_heads, bias):
    method forward (line 113) | def forward(self, x):
  class TransformerBlock (line 139) | class TransformerBlock(nn.Module):
    method __init__ (line 140) | def __init__(self, dim, num_heads, ffn_expansion_factor, bias, LayerNo...
    method forward (line 148) | def forward(self, x):
  class OverlapPatchEmbed (line 158) | class OverlapPatchEmbed(nn.Module):
    method __init__ (line 159) | def __init__(self, in_c=3, embed_dim=48, bias=False):
    method forward (line 164) | def forward(self, x):
  class Downsample (line 173) | class Downsample(nn.Module):
    method __init__ (line 174) | def __init__(self, n_feat):
    method forward (line 180) | def forward(self, x):
  class Upsample (line 183) | class Upsample(nn.Module):
    method __init__ (line 184) | def __init__(self, n_feat):
    method forward (line 190) | def forward(self, x):
  class Restormer (line 195) | class Restormer(nn.Module):
    method __init__ (line 196) | def __init__(self,
    method forward (line 247) | def forward(self, inp_img):
    method flops (line 288) | def flops(self, shape=(3, 256, 256)):

FILE: Deraining/basicsr/models/base_model.py
  class BaseModel (line 14) | class BaseModel():
    method __init__ (line 17) | def __init__(self, opt):
    method feed_data (line 24) | def feed_data(self, data):
    method optimize_parameters (line 27) | def optimize_parameters(self):
    method get_current_visuals (line 30) | def get_current_visuals(self):
    method save (line 33) | def save(self, epoch, current_iter):
    method validation (line 37) | def validation(self, dataloader, current_iter, tb_logger, save_img=Fal...
    method model_ema (line 54) | def model_ema(self, decay=0.999):
    method get_current_log (line 64) | def get_current_log(self):
    method model_to_device (line 67) | def model_to_device(self, net):
    method setup_schedulers (line 87) | def setup_schedulers(self):
    method get_bare_model (line 135) | def get_bare_model(self, net):
    method print_network (line 144) | def print_network(self, net):
    method _set_lr (line 164) | def _set_lr(self, lr_groups_l):
    method _get_init_lr (line 174) | def _get_init_lr(self):
    method update_learning_rate (line 183) | def update_learning_rate(self, current_iter, warmup_iter=-1):
    method get_current_learning_rate (line 207) | def get_current_learning_rate(self):
    method save_network (line 214) | def save_network(self, net, net_label, current_iter, param_key='params'):
    method _print_different_keys_loading (line 246) | def _print_different_keys_loading(self, crt_net, load_net, strict=True):
    method load_network (line 281) | def load_network(self, net, load_path, strict=True, param_key='params'):
    method save_training_state (line 312) | def save_training_state(self, epoch, current_iter):
    method resume_training (line 336) | def resume_training(self, resume_state):
    method reduce_loss_dict (line 353) | def reduce_loss_dict(self, loss_dict):

FILE: Deraining/basicsr/models/image_restoration_model.py
  class Mixing_Augment (line 22) | class Mixing_Augment:
    method __init__ (line 23) | def __init__(self, mixup_beta, use_identity, device):
    method mixup (line 31) | def mixup(self, target, input_):
    method __call__ (line 41) | def __call__(self, target, input_):
  class ImageCleanModel (line 51) | class ImageCleanModel(BaseModel):
    method __init__ (line 54) | def __init__(self, opt):
    method init_training_settings (line 78) | def init_training_settings(self):
    method setup_optimizers (line 115) | def setup_optimizers(self):
    method feed_train_data (line 136) | def feed_train_data(self, data):
    method feed_data (line 144) | def feed_data(self, data):
    method optimize_parameters (line 149) | def optimize_parameters(self, current_iter):
    method pad_test (line 175) | def pad_test(self, window_size):
    method nonpad_test (line 188) | def nonpad_test(self, img=None):
    method dist_validation (line 207) | def dist_validation(self, dataloader, current_iter, tb_logger, save_im...
    method nondist_validation (line 213) | def nondist_validation(self, dataloader, current_iter, tb_logger,
    method _log_validation_metric_values (line 300) | def _log_validation_metric_values(self, current_iter, dataset_name,
    method get_current_visuals (line 311) | def get_current_visuals(self):
    method save (line 319) | def save(self, epoch, current_iter):

FILE: Deraining/basicsr/models/losses/loss_util.py
  function reduce_loss (line 5) | def reduce_loss(loss, reduction):
  function weight_reduce_loss (line 25) | def weight_reduce_loss(loss, weight=None, reduction='mean'):
  function weighted_loss (line 57) | def weighted_loss(loss_func):

FILE: Deraining/basicsr/models/losses/losses.py
  function l1_loss (line 12) | def l1_loss(pred, target):
  function mse_loss (line 17) | def mse_loss(pred, target):
  class L1Loss (line 26) | class L1Loss(nn.Module):
    method __init__ (line 35) | def __init__(self, loss_weight=1.0, reduction='mean'):
    method forward (line 44) | def forward(self, pred, target, weight=None, **kwargs):
  class MSELoss (line 55) | class MSELoss(nn.Module):
    method __init__ (line 64) | def __init__(self, loss_weight=1.0, reduction='mean'):
    method forward (line 73) | def forward(self, pred, target, weight=None, **kwargs):
  class PSNRLoss (line 84) | class PSNRLoss(nn.Module):
    method __init__ (line 86) | def __init__(self, loss_weight=1.0, reduction='mean', toY=False):
    method forward (line 95) | def forward(self, pred, target):
  class CharbonnierLoss (line 111) | class CharbonnierLoss(nn.Module):
    method __init__ (line 114) | def __init__(self, loss_weight=1.0, reduction='mean', eps=1e-3):
    method forward (line 118) | def forward(self, x, y):

FILE: Deraining/basicsr/models/lr_scheduler.py
  class MultiStepRestartLR (line 7) | class MultiStepRestartLR(_LRScheduler):
    method __init__ (line 20) | def __init__(self,
    method get_lr (line 35) | def get_lr(self):
  class LinearLR (line 49) | class LinearLR(_LRScheduler):
    method __init__ (line 59) | def __init__(self,
    method get_lr (line 66) | def get_lr(self):
  class VibrateLR (line 72) | class VibrateLR(_LRScheduler):
    method __init__ (line 82) | def __init__(self,
    method get_lr (line 89) | def get_lr(self):
  function get_position_from_periods (line 115) | def get_position_from_periods(iteration, cumulative_period):
  class CosineAnnealingRestartLR (line 136) | class CosineAnnealingRestartLR(_LRScheduler):
    method __init__ (line 156) | def __init__(self,
    method get_lr (line 172) | def get_lr(self):
  class CosineAnnealingRestartCyclicLR (line 186) | class CosineAnnealingRestartCyclicLR(_LRScheduler):
    method __init__ (line 203) | def __init__(self,
    method get_lr (line 219) | def get_lr(self):

FILE: Deraining/basicsr/test.py
  function main (line 13) | def main():

FILE: Deraining/basicsr/train.py
  function parse_options (line 24) | def parse_options(is_train=True):
  function init_loggers (line 61) | def init_loggers(opt):
  function create_train_val_dataloader (line 82) | def create_train_val_dataloader(opt, logger):
  function main (line 131) | def main():

FILE: Deraining/basicsr/utils/bundle_submissions.py
  function bundle_submissions_raw (line 13) | def bundle_submissions_raw(submission_folder,session):
  function bundle_submissions_srgb (line 46) | def bundle_submissions_srgb(submission_folder,session):
  function bundle_submissions_srgb_v1 (line 79) | def bundle_submissions_srgb_v1(submission_folder,session):

FILE: Deraining/basicsr/utils/create_lmdb.py
  function prepare_keys (line 7) | def prepare_keys(folder_path, suffix='png'):
  function create_lmdb_for_reds (line 24) | def create_lmdb_for_reds():
  function create_lmdb_for_gopro (line 46) | def create_lmdb_for_gopro():
  function create_lmdb_for_rain13k (line 71) | def create_lmdb_for_rain13k():
  function create_lmdb_for_SIDD (line 84) | def create_lmdb_for_SIDD():

FILE: Deraining/basicsr/utils/dist_util.py
  function init_dist (line 10) | def init_dist(launcher, backend='nccl', **kwargs):
  function _init_dist_pytorch (line 21) | def _init_dist_pytorch(backend, **kwargs):
  function _init_dist_slurm (line 28) | def _init_dist_slurm(backend, port=None):
  function get_dist_info (line 61) | def get_dist_info():
  function master_only (line 75) | def master_only(func):

FILE: Deraining/basicsr/utils/download_util.py
  function download_file_from_google_drive (line 8) | def download_file_from_google_drive(file_id, save_path):
  function get_confirm_token (line 41) | def get_confirm_token(response):
  function save_response_content (line 48) | def save_response_content(response,

FILE: Deraining/basicsr/utils/face_util.py
  class FaceRestorationHelper (line 16) | class FaceRestorationHelper(object):
    method __init__ (line 19) | def __init__(self, upscale_factor, face_size=512):
    method init_dlib (line 41) | def init_dlib(self, detection_path, landmark5_path, landmark68_path):
    method free_dlib_gpu_memory (line 47) | def free_dlib_gpu_memory(self):
    method read_input_image (line 52) | def read_input_image(self, img_path):
    method detect_faces (line 56) | def detect_faces(self,
    method get_face_landmarks_5 (line 89) | def get_face_landmarks_5(self):
    method get_face_landmarks_68 (line 96) | def get_face_landmarks_68(self):
    method warp_crop_faces (line 132) | def warp_crop_faces(self,
    method add_restored_face (line 170) | def add_restored_face(self, face):
    method paste_faces_to_input_image (line 173) | def paste_faces_to_input_image(self, save_path):
    method clean_all (line 211) | def clean_all(self):

FILE: Deraining/basicsr/utils/file_client.py
  class BaseStorageBackend (line 5) | class BaseStorageBackend(metaclass=ABCMeta):
    method get (line 14) | def get(self, filepath):
    method get_text (line 18) | def get_text(self, filepath):
  class MemcachedBackend (line 22) | class MemcachedBackend(BaseStorageBackend):
    method __init__ (line 32) | def __init__(self, server_list_cfg, client_cfg, sys_path=None):
    method get (line 49) | def get(self, filepath):
    method get_text (line 56) | def get_text(self, filepath):
  class HardDiskBackend (line 60) | class HardDiskBackend(BaseStorageBackend):
    method get (line 63) | def get(self, filepath):
    method get_text (line 69) | def get_text(self, filepath):
  class LmdbBackend (line 76) | class LmdbBackend(BaseStorageBackend):
    method __init__ (line 96) | def __init__(self,
    method get (line 131) | def get(self, filepath, client_key):
    method get_text (line 146) | def get_text(self, filepath):
  class FileClient (line 150) | class FileClient(object):
    method __init__ (line 169) | def __init__(self, backend='disk', **kwargs):
    method get (line 177) | def get(self, filepath, client_key='default'):
    method get_text (line 185) | def get_text(self, filepath):

FILE: Deraining/basicsr/utils/flow_util.py
  function flowread (line 7) | def flowread(flow_path, quantize=False, concat_axis=0, *args, **kwargs):
  function flowwrite (line 47) | def flowwrite(flow, filename, quantize=False, concat_axis=0, *args, **kw...
  function quantize_flow (line 78) | def quantize_flow(flow, max_val=0.02, norm=True):
  function dequantize_flow (line 106) | def dequantize_flow(dx, dy, max_val=0.02, denorm=True):
  function quantize (line 130) | def quantize(arr, min_val, max_val, levels, dtype=np.int64):
  function dequantize (line 157) | def dequantize(arr, min_val, max_val, levels, dtype=np.float64):

FILE: Deraining/basicsr/utils/img_util.py
  function img2tensor (line 9) | def img2tensor(imgs, bgr2rgb=True, float32=True):
  function tensor2img (line 36) | def tensor2img(tensor, rgb2bgr=True, out_type=np.uint8, min_max=(0, 1)):
  function imfrombytes (line 101) | def imfrombytes(content, flag='color', float32=False):
  function imfrombytesDP (line 127) | def imfrombytesDP(content, flag='color', float32=False):
  function padding (line 148) | def padding(img_lq, img_gt, gt_size):
  function padding_DP (line 166) | def padding_DP(img_lqL, img_lqR, img_gt, gt_size):
  function imwrite (line 181) | def imwrite(img, file_path, params=None, auto_mkdir=True):
  function crop_border (line 200) | def crop_border(imgs, crop_border):

FILE: Deraining/basicsr/utils/lmdb_util.py
  function make_lmdb_from_imgs (line 9) | def make_lmdb_from_imgs(data_path,
  function read_img_worker (line 139) | def read_img_worker(path, key, compress_level):
  class LmdbMaker (line 164) | class LmdbMaker():
    method __init__ (line 175) | def __init__(self,
    method put (line 194) | def put(self, img_byte, key, img_shape):
    method close (line 205) | def close(self):

FILE: Deraining/basicsr/utils/logger.py
  class MessageLogger (line 10) | class MessageLogger():
    method __init__ (line 23) | def __init__(self, opt, start_iter=1, tb_logger=None):
    method __call__ (line 34) | def __call__(self, log_vars):
  function init_tb_logger (line 81) | def init_tb_logger(log_dir):
  function init_wandb_logger (line 88) | def init_wandb_logger(opt):
  function get_root_logger (line 108) | def get_root_logger(logger_name='basicsr', log_level=logging.INFO, log_f...
  function get_env_info (line 150) | def get_env_info():

FILE: Deraining/basicsr/utils/matlab_functions.py
  function cubic (line 6) | def cubic(x):
  function calculate_weights_indices (line 17) | def calculate_weights_indices(in_length, out_length, scale, kernel,
  function imresize (line 88) | def imresize(img, scale, antialiasing=True):
  function rgb2ycbcr (line 173) | def rgb2ycbcr(img, y_only=False):
  function bgr2ycbcr (line 207) | def bgr2ycbcr(img, y_only=False):
  function ycbcr2rgb (line 241) | def ycbcr2rgb(img):
  function ycbcr2bgr (line 273) | def ycbcr2bgr(img):
  function _convert_input_type_range (line 305) | def _convert_input_type_range(img):
  function _convert_output_type_range (line 333) | def _convert_output_type_range(img, dst_type):

FILE: Deraining/basicsr/utils/misc.py
  function set_random_seed (line 12) | def set_random_seed(seed):
  function get_time_str (line 21) | def get_time_str():
  function mkdir_and_rename (line 25) | def mkdir_and_rename(path):
  function make_exp_dirs (line 39) | def make_exp_dirs(opt):
  function scandir (line 53) | def scandir(dir_path, suffix=None, recursive=False, full_path=False):
  function scandir_SIDD (line 95) | def scandir_SIDD(dir_path, keywords=None, recursive=False, full_path=Fal...
  function check_resume (line 137) | def check_resume(opt, resume_iter):
  function sizeof_fmt (line 166) | def sizeof_fmt(size, suffix='B'):

FILE: Deraining/basicsr/utils/options.py
  function ordered_yaml (line 6) | def ordered_yaml():
  function parse (line 31) | def parse(opt_path, is_train=True):
  function dict2str (line 92) | def dict2str(opt, indent_level=1):

FILE: Deraining/basicsr/utils2.py
  function calculate_psnr (line 10) | def calculate_psnr(img1, img2, border=0):
  function calculate_ssim (line 31) | def calculate_ssim(img1, img2, border=0):
  function ssim (line 58) | def ssim(img1, img2):
  function load_img (line 80) | def load_img(filepath):
  function save_img (line 83) | def save_img(filepath, img):
  function load_gray_img (line 86) | def load_gray_img(filepath):
  function save_gray_img (line 89) | def save_gray_img(filepath, img):

FILE: Deraining/setup.py
  function readme (line 16) | def readme():
  function get_git_hash (line 23) | def get_git_hash():
  function get_hash (line 49) | def get_hash():
  function write_version_py (line 64) | def write_version_py():
  function get_version (line 84) | def get_version():
  function make_cuda_ext (line 90) | def make_cuda_ext(name, module, sources, sources_cuda=None):
  function get_requirements (line 116) | def get_requirements(filename='requirements.txt'):

FILE: Mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan.cpp
  function set_ssm_params_fwd (line 36) | void set_ssm_params_fwd(SSMParamsBase &params,
  function set_ssm_params_bwd (line 98) | void set_ssm_params_bwd(SSMParamsBwd &params,
  function selective_scan_fwd (line 157) | std::vector<at::Tensor>
  function selective_scan_bwd (line 241) | std::vector<at::Tensor>
  function PYBIND11_MODULE (line 351) | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {

FILE: Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_ndstate.cpp
  function set_ssm_params_fwd (line 36) | void set_ssm_params_fwd(SSMParamsBase &params,
  function set_ssm_params_bwd (line 93) | void set_ssm_params_bwd(SSMParamsBwd &params,
  function selective_scan_fwd (line 148) | std::vector<at::Tensor>
  function selective_scan_bwd (line 230) | std::vector<at::Tensor>
  function PYBIND11_MODULE (line 338) | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {

FILE: Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_ndstate.h
  type SSMScanParamsBase (line 9) | struct SSMScanParamsBase {
  type SSMParamsBase (line 26) | struct SSMParamsBase {
  function SSMParamsBase (line 60) | struct SSMParamsBwd: public SSMParamsBase {

FILE: Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_nrow.cpp
  function set_ssm_params_fwd (line 44) | void set_ssm_params_fwd(SSMParamsBase &params,
  function set_ssm_params_bwd (line 106) | void set_ssm_params_bwd(SSMParamsBwd &params,
  function selective_scan_fwd (line 165) | std::vector<at::Tensor>
  function selective_scan_bwd (line 251) | std::vector<at::Tensor>
  function PYBIND11_MODULE (line 364) | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {

FILE: Mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_oflex.cpp
  function set_ssm_params_fwd (line 36) | void set_ssm_params_fwd(SSMParamsBase &params,
  function set_ssm_params_bwd (line 98) | void set_ssm_params_bwd(SSMParamsBwd &params,
  function selective_scan_fwd (line 157) | std::vector<at::Tensor>
  function selective_scan_bwd (line 245) | std::vector<at::Tensor>
  function PYBIND11_MODULE (line 360) | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {

FILE: Mamba/kernels/selective_scan/csrc/selective_scan/selective_scan.h
  type SSMScanParamsBase (line 9) | struct SSMScanParamsBase {
  type SSMParamsBase (line 26) | struct SSMParamsBase {
  function SSMParamsBase (line 63) | struct SSMParamsBwd: public SSMParamsBase {

FILE: Mamba/kernels/selective_scan/csrc/selective_scan/selective_scan_common.h
  type BytesToType (line 29) | struct BytesToType
  type BytesToType (line 34) | struct BytesToType
  type BytesToType (line 39) | struct BytesToType
  type BytesToType (line 44) | struct BytesToType
  type BytesToType (line 49) | struct BytesToType
  function __device__ (line 58) | static inline __device__ void to_float(const scalar_t (&src)[N], float (...
  function __device__ (line 66) | static inline __device__ void to_float(const at::Half (&src)[N], float (...
  function __device__ (line 78) | static inline __device__ void to_float(const at::BFloat16 (&src)[N], flo...
  function float (line 92) | struct SSMScanOp<float> {
  function __device__ (line 104) | __device__ SSMScanPrefixCallbackOp(scan_t running_prefix_) : running_pre...
  function __device__ (line 107) | __device__ scan_t operator()(scan_t block_aggregate) {
  function load_input (line 117) | void load_input(typename Ktraits::input_t *u,
  function load_weight (line 134) | void load_weight(typename Ktraits::input_t *Bvar,
  function store_output (line 156) | void store_output(typename Ktraits::input_t *out,
  function store_output1 (line 176) | void store_output1(typename Ktraits::output_t *out,
  function load_output (line 196) | void load_output(typename Ktraits::output_t *u,

FILE: Mamba/kernels/selective_scan/setup.py
  function get_cuda_bare_metal_version (line 30) | def get_cuda_bare_metal_version(cuda_dir):
  function get_ext (line 43) | def get_ext():

FILE: Mamba/kernels/selective_scan/test_selective_scan.py
  function build_selective_scan_fn (line 18) | def build_selective_scan_fn(selective_scan_cuda: object = None, mode="ma...
  function selective_scan_ref (line 168) | def selective_scan_ref(u, delta, A, B, C, D=None, z=None, delta_bias=Non...
  function selective_scan_ref_v2 (line 237) | def selective_scan_ref_v2(u, delta, A, B, C, D=None, z=None, delta_bias=...
  function selective_scan_fn (line 309) | def selective_scan_fn(u, delta, A, B, C, D=None, z=None, delta_bias=None...
  function test_selective_scan (line 391) | def test_selective_scan(is_variable_B, is_variable_C, varBC_groups, has_...

FILE: RealSR/Metric/DISTS/DISTS_pytorch/DISTS_pt.py
  class L2pooling (line 11) | class L2pooling(nn.Module):
    method __init__ (line 12) | def __init__(self, filter_size=5, stride=2, channels=None, pad_off=0):
    method forward (line 22) | def forward(self, input):
  class DISTS (line 27) | class DISTS(torch.nn.Module):
    method __init__ (line 28) | def __init__(self, load_weights=True):
    method forward_once (line 68) | def forward_once(self, x):
    method forward (line 82) | def forward(self, x, y, require_grad=False, batch_average=False):
  function prepare_image (line 115) | def prepare_image(image, resize=True):

FILE: RealSR/Metric/DISTS/DISTS_tensorflow/DISTS_tf.py
  class DISTS (line 13) | class DISTS():
    method __init__ (line 14) | def __init__(self):
    method get_features (line 25) | def get_features(self, img):
    method conv_layer (line 53) | def conv_layer(self, input, name):
    method pool_layer (line 61) | def pool_layer(self, input, name):
    method get_conv_filter (line 68) | def get_conv_filter(self, name):
    method get_bias (line 71) | def get_bias(self, name):
    method get_score (line 74) | def get_score(self, img1, img2):

FILE: RealSR/Metric/LPIPS.py
  function main (line 11) | def main():

FILE: RealSR/Metric/PSNR.py
  function main (line 12) | def main():

FILE: RealSR/Metric/dists.py
  class L2pooling (line 13) | class L2pooling(nn.Module):
    method __init__ (line 14) | def __init__(self, filter_size=5, stride=2, channels=None, pad_off=0):
    method forward (line 24) | def forward(self, input):
  class DISTS (line 29) | class DISTS(torch.nn.Module):
    method __init__ (line 30) | def __init__(self, load_weights=True):
    method forward_once (line 70) | def forward_once(self, x):
    method forward (line 84) | def forward(self, x, y, require_grad=False, batch_average=False):
  function prepare_image (line 117) | def prepare_image(image, resize=True):

FILE: RealSR/VmambaIR/archs/MambaRealSR11_arch.py
  class SelectiveScanFn (line 34) | class SelectiveScanFn(torch.autograd.Function):
    method forward (line 37) | def forward(ctx, u, delta, A, B, C, D=None, delta_bias=None, delta_sof...
    method backward (line 74) | def backward(ctx, dout, *args):
  function selective_scan_fn_v1 (line 101) | def selective_scan_fn_v1(u, delta, A, B, C, D=None, delta_bias=None, del...
  function flops_selective_scan_fn (line 110) | def flops_selective_scan_fn(B=1, L=256, D=768, N=16, with_D=True, with_Z...
  function print_jit_input_names (line 133) | def print_jit_input_names(inputs):
  function selective_scan_flop_jit (line 142) | def selective_scan_flop_jit(inputs, outputs):
  function to_3d (line 152) | def to_3d(x):
  function to_4d (line 155) | def to_4d(x,h,w):
  class BiasFree_LayerNorm (line 158) | class BiasFree_LayerNorm(nn.Module):
    method __init__ (line 159) | def __init__(self, normalized_shape):
    method forward (line 170) | def forward(self, x):
  class WithBias_LayerNorm (line 174) | class WithBias_LayerNorm(nn.Module):
    method __init__ (line 175) | def __init__(self, normalized_shape):
    method forward (line 187) | def forward(self, x):
  class LayerNorm (line 193) | class LayerNorm(nn.Module):
    method __init__ (line 194) | def __init__(self, dim, LayerNorm_type):
    method forward (line 201) | def forward(self, x):
  class FeedForward (line 209) | class FeedForward(nn.Module):
    method __init__ (line 210) | def __init__(self, dim, ffn_expansion_factor, bias):
    method forward (line 221) | def forward(self, x):
  class Attention (line 232) | class Attention(nn.Module):
    method __init__ (line 233) | def __init__(self, dim, num_heads, bias):
    method forward (line 244) | def forward(self, x):
  class SelectiveScan (line 267) | class SelectiveScan(torch.autograd.Function):
    method forward (line 271) | def forward(ctx, u, delta, A, B, C, D=None, delta_bias=None, delta_sof...
    method backward (line 304) | def backward(ctx, dout, *args):
  class CrossScan (line 325) | class CrossScan(torch.autograd.Function):
    method forward (line 327) | def forward(ctx, x: torch.Tensor):
    method backward (line 337) | def backward(ctx, ys: torch.Tensor):
  class CrossMerge (line 346) | class CrossMerge(torch.autograd.Function):
    method forward (line 348) | def forward(ctx, ys: torch.Tensor):
    method backward (line 358) | def backward(ctx, x: torch.Tensor):
  function cross_selective_scan (line 371) | def cross_selective_scan(
  class CrossScanC (line 438) | class CrossScanC(torch.autograd.Function):
    method forward (line 441) | def forward(ctx, x: torch.Tensor):
    method backward (line 451) | def backward(ctx, ys: torch.Tensor):
  class CrossMergeC (line 459) | class CrossMergeC(torch.autograd.Function):
    method forward (line 462) | def forward(ctx, ys: torch.Tensor):
    method backward (line 469) | def backward(ctx, x: torch.Tensor):
  function cross_selective_scanC (line 478) | def cross_selective_scanC(
  class SS2D_1 (line 540) | class SS2D_1(nn.Module):
    method __init__ (line 541) | def __init__(
    method dt_init (line 670) | def dt_init(dt_rank, d_inner, dt_scale=1.0, dt_init="random", dt_min=0...
    method A_log_init (line 695) | def A_log_init(d_state, d_inner, copies=-1, device=None, merge=True):
    method D_init (line 712) | def D_init(d_inner, copies=-1, device=None, merge=True):
    method forward_corev1 (line 723) | def forward_corev1(self, x: torch.Tensor):
    method forward_corev2 (line 791) | def forward_corev2(self, x: torch.Tensor, nrows=-1, channel_first=False):
    method cforward_corev2 (line 806) | def cforward_corev2(self, xc: torch.Tensor, nrows=-1, channel_first=Fa...
    method forward (line 819) | def forward(self, x: torch.Tensor, **kwargs):
  class MamberBlock (line 835) | class MamberBlock(nn.Module):
    method __init__ (line 836) | def __init__(self, dim, num_heads, ffn_expansion_factor, bias, LayerNo...
    method forward (line 844) | def forward(self, x):
  class OverlapPatchEmbed (line 854) | class OverlapPatchEmbed(nn.Module):
    method __init__ (line 855) | def __init__(self, in_c=3, embed_dim=48, bias=False):
    method forward (line 860) | def forward(self, x):
  class Downsample (line 869) | class Downsample(nn.Module):
    method __init__ (line 870) | def __init__(self, n_feat):
    method forward (line 876) | def forward(self, x):
  class Upsample (line 879) | class Upsample(nn.Module):
    method __init__ (line 880) | def __init__(self, n_feat):
    method forward (line 886) | def forward(self, x):
  class MambaRealSR11 (line 892) | class MambaRealSR11(nn.Module):
    method __init__ (line 893) | def __init__(self,
    method forward (line 944) | def forward(self, inp_img):
    method flops (line 980) | def flops(self, shape=(3, 64, 64)):

FILE: RealSR/VmambaIR/archs/attention.py
  class QKVAttentionLegacy (line 4) | class QKVAttentionLegacy(nn.Module):
    method __init__ (line 9) | def __init__(self, n_heads):
    method forward (line 14) | def forward(self, qkv):
  class QKVAttention (line 32) | class QKVAttention(nn.Module):
    method __init__ (line 37) | def __init__(self, n_heads):
    method forward (line 42) | def forward(self, qkv):
  class AttentionBlock (line 62) | class AttentionBlock(nn.Module):
    method __init__ (line 63) | def __init__(
    method forward (line 88) | def forward(self, x):

FILE: RealSR/VmambaIR/archs/common.py
  function default_conv (line 7) | def default_conv(in_channels, out_channels, kernel_size, bias=True):
  class ResBlock (line 10) | class ResBlock(nn.Module):
    method __init__ (line 11) | def __init__(
    method forward (line 27) | def forward(self, x):
  class MeanShift (line 33) | class MeanShift(nn.Conv2d):
    method __init__ (line 34) | def __init__(self, rgb_range, rgb_mean, rgb_std, sign=-1):
  class Upsampler (line 45) | class Upsampler(nn.Sequential):
    method __init__ (line 46) | def __init__(self, conv, scale, n_feat, act=False, bias=True):

FILE: RealSR/VmambaIR/archs/discriminator_arch.py
  class UNetDiscriminatorSN (line 8) | class UNetDiscriminatorSN(nn.Module):
    method __init__ (line 19) | def __init__(self, num_in_ch, num_feat=64, skip_connection=True):
    method forward (line 38) | def forward(self, x):

FILE: RealSR/VmambaIR/archs/srvgg_arch.py
  class SRVGGNetCompact (line 7) | class SRVGGNetCompact(nn.Module):
    method __init__ (line 22) | def __init__(self, num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=16...
    method forward (line 60) | def forward(self, x):

FILE: RealSR/VmambaIR/data/data_util.py
  function read_img_seq (line 12) | def read_img_seq(path, require_mod_crop=False, scale=1):
  function generate_frame_indices (line 36) | def generate_frame_indices(crt_idx,
  function paired_paths_from_lmdb (line 92) | def paired_paths_from_lmdb(folders, keys):
  function paired_paths_from_meta_info_file (line 158) | def paired_paths_from_meta_info_file(folders, keys, meta_info_file,
  function paired_paths_from_folder (line 208) | def paired_paths_from_folder(folders, keys, filename_tmpl):
  function paired_DP_paths_from_folder (line 253) | def paired_DP_paths_from_folder(folders, keys, filename_tmpl):
  function paths_from_folder (line 307) | def paths_from_folder(folder):
  function paths_from_lmdb (line 322) | def paths_from_lmdb(folder):
  function generate_gaussian_kernel (line 338) | def generate_gaussian_kernel(kernel_size=13, sigma=1.6):
  function duf_downsample (line 356) | def duf_downsample(x, kernel_size=13, scale=4):

FILE: RealSR/VmambaIR/data/deblur_paired_dataset.py
  class DeblurPairedDataset (line 17) | class DeblurPairedDataset(data.Dataset):
    method __init__ (line 46) | def __init__(self, opt):
    method __getitem__ (line 79) | def __getitem__(self, index):
    method __len__ (line 132) | def __len__(self):
  class Dataset_GaussianDenoising (line 135) | class Dataset_GaussianDenoising(data.Dataset):
    method __init__ (line 163) | def __init__(self, opt):
    method __getitem__ (line 199) | def __getitem__(self, index):
    method __len__ (line 274) | def __len__(self):
  class Dataset_DefocusDeblur_DualPixel_16bit (line 277) | class Dataset_DefocusDeblur_DualPixel_16bit(data.Dataset):
    method __init__ (line 278) | def __init__(self, opt):
    method __getitem__ (line 300) | def __getitem__(self, index):
    method __len__ (line 363) | def __len__(self):

FILE: RealSR/VmambaIR/data/diffir_dataset.py
  class DiffIRGANDataset (line 17) | class DiffIRGANDataset(data.Dataset):
    method __init__ (line 35) | def __init__(self, opt):
    method __getitem__ (line 57) | def __getitem__(self, index):
    method __len__ (line 108) | def __len__(self):

FILE: RealSR/VmambaIR/data/diffir_paired_dataset.py
  class DiffIRGANPairedDataset (line 11) | class DiffIRGANPairedDataset(data.Dataset):
    method __init__ (line 41) | def __init__(self, opt):
    method __getitem__ (line 75) | def __getitem__(self, index):
    method __len__ (line 107) | def __len__(self):

FILE: RealSR/VmambaIR/data/gaussiandenoising_paired_dataset.py
  class GaussianDenoisingPairedDataset (line 18) | class GaussianDenoisingPairedDataset(data.Dataset):
    method __init__ (line 46) | def __init__(self, opt):
    method __getitem__ (line 82) | def __getitem__(self, index):
    method __len__ (line 158) | def __len__(self):
  class Dataset_DefocusDeblur_DualPixel_16bit (line 161) | class Dataset_DefocusDeblur_DualPixel_16bit(data.Dataset):
    method __init__ (line 162) | def __init__(self, opt):
    method __getitem__ (line 184) | def __getitem__(self, index):
    method __len__ (line 247) | def __len__(self):

FILE: RealSR/VmambaIR/data/realesrgan400_dataset.py
  class RealESRGANDataset400 (line 17) | class RealESRGANDataset400(data.Dataset):
    method __init__ (line 35) | def __init__(self, opt):
    method __getitem__ (line 83) | def __getitem__(self, index):
    method __len__ (line 191) | def __len__(self):

FILE: RealSR/VmambaIR/data/realesrgan_dataset.py
  class RealESRGANDataset (line 17) | class RealESRGANDataset(data.Dataset):
    method __init__ (line 35) | def __init__(self, opt):
    method __getitem__ (line 83) | def __getitem__(self, index):
    method __len__ (line 191) | def __len__(self):

FILE: RealSR/VmambaIR/data/realesrgan_memery_dataset.py
  class RealESRGANDataset_memory (line 17) | class RealESRGANDataset_memory(data.Dataset):
    method __init__ (line 35) | def __init__(self, opt):
    method __getitem__ (line 83) | def __getitem__(self, index):
    method __len__ (line 191) | def __len__(self):

FILE: RealSR/VmambaIR/data/realesrgan_paired_dataset.py
  class RealESRGANPairedDataset (line 11) | class RealESRGANPairedDataset(data.Dataset):
    method __init__ (line 41) | def __init__(self, opt):
    method __getitem__ (line 75) | def __getitem__(self, index):
    method __len__ (line 107) | def __len__(self):

FILE: RealSR/VmambaIR/data/transforms.py
  function mod_crop (line 5) | def mod_crop(img, scale):
  function paired_random_crop (line 24) | def paired_random_crop(img_gts, img_lqs, lq_patch_size, scale, gt_path):
  function paired_random_crop_DP (line 85) | def paired_random_crop_DP(img_lqLs, img_lqRs, img_gts, gt_patch_size, sc...
  function augment (line 136) | def augment(imgs, hflip=True, rotation=True, flows=None, return_status=F...
  function img_rotate (line 203) | def img_rotate(img, angle, center=None, scale=1.0):
  function data_augmentation (line 223) | def data_augmentation(image, mode):
  function random_augmentation (line 270) | def random_augmentation(*args):

FILE: RealSR/VmambaIR/losses/my_loss.py
  class KDLoss (line 8) | class KDLoss(nn.Module):
    method __init__ (line 14) | def __init__(self, loss_weight=1.0, temperature = 0.15):
    method forward (line 20) | def forward(self, S1_fea, S2_fea):

FILE: RealSR/VmambaIR/models/MambaRealSRGAN_model.py
  class MambaRealSRGAN (line 18) | class MambaRealSRGAN(SRGANModel):
    method __init__ (line 26) | def __init__(self, opt):
    method setup_optimizers (line 56) | def setup_optimizers(self):
    method init_training_settings (line 83) | def init_training_settings(self):
    method _dequeue_and_enqueue (line 89) | def _dequeue_and_enqueue(self):
    method feed_data (line 126) | def feed_data(self, data):
    method nondist_validation (line 247) | def nondist_validation(self, dataloader, current_iter, tb_logger, save...
    method pad_test (line 253) | def pad_test(self, window_size):
    method test (line 265) | def test(self):
    method optimize_parameters (line 289) | def optimize_parameters(self, current_iter):

FILE: RealSR/VmambaIR/models/MambaRealSRGANtest_model.py
  class MambaRealSRGANtest (line 18) | class MambaRealSRGANtest(SRGANModel):
    method __init__ (line 26) | def __init__(self, opt):
    method setup_optimizers (line 56) | def setup_optimizers(self):
    method init_training_settings (line 83) | def init_training_settings(self):
    method _dequeue_and_enqueue (line 89) | def _dequeue_and_enqueue(self):
    method feed_data (line 126) | def feed_data(self, data):
    method nondist_validation (line 247) | def nondist_validation(self, dataloader, current_iter, tb_logger, save...
    method pad_test (line 253) | def pad_test(self, window_size):
    method test (line 265) | def test(self):
    method optimize_parameters (line 289) | def optimize_parameters(self, current_iter):

FILE: RealSR/VmambaIR/models/MambaRealSR_model.py
  class Mixing_Augment (line 14) | class Mixing_Augment:
    method __init__ (line 15) | def __init__(self, mixup_beta, use_identity, device):
    method mixup (line 23) | def mixup(self, target, input_):
    method __call__ (line 33) | def __call__(self, target, input_):
  class MambaRealSR (line 44) | class MambaRealSR(SRModel):
    method __init__ (line 52) | def __init__(self, opt):
    method setup_schedulers (line 60) | def setup_schedulers(self):
    method _dequeue_and_enqueue (line 110) | def _dequeue_and_enqueue(self):
    method feed_data (line 147) | def feed_data(self, data):
    method nondist_validation (line 266) | def nondist_validation(self, dataloader, current_iter, tb_logger, save...
    method pad_test (line 272) | def pad_test(self, window_size):
    method test (line 284) | def test(self):
    method optimize_parameters (line 305) | def optimize_parameters(self, current_iter):

FILE: RealSR/VmambaIR/models/lr_scheduler.py
  class MultiStepRestartLR (line 7) | class MultiStepRestartLR(_LRScheduler):
    method __init__ (line 20) | def __init__(self,
    method get_lr (line 35) | def get_lr(self):
  class LinearLR (line 49) | class LinearLR(_LRScheduler):
    method __init__ (line 59) | def __init__(self,
    method get_lr (line 66) | def get_lr(self):
  class VibrateLR (line 72) | class VibrateLR(_LRScheduler):
    method __init__ (line 82) | def __init__(self,
    method get_lr (line 89) | def get_lr(self):
  function get_position_from_periods (line 115) | def get_position_from_periods(iteration, cumulative_period):
  class CosineAnnealingRestartLR (line 136) | class CosineAnnealingRestartLR(_LRScheduler):
    method __init__ (line 156) | def __init__(self,
    method get_lr (line 172) | def get_lr(self):
  class CosineAnnealingRestartCyclicLR (line 186) | class CosineAnnealingRestartCyclicLR(_LRScheduler):
    method __init__ (line 203) | def __init__(self,
    method get_lr (line 219) | def get_lr(self):

FILE: RealSR/VmambaIR/train_pipeline.py
  function init_tb_loggers (line 23) | def init_tb_loggers(opt):
  function create_train_val_dataloader (line 35) | def create_train_val_dataloader(opt, logger):
  function load_resume_state (line 74) | def load_resume_state(opt):
  function train_pipeline (line 97) | def train_pipeline(root_path):

FILE: RealSR/VmambaIR/utils.py
  class RealESRGANer (line 14) | class RealESRGANer():
    method __init__ (line 29) | def __init__(self,
    method pre_process (line 68) | def pre_process(self, img):
    method process (line 93) | def process(self):
    method tile_process (line 97) | def tile_process(self):
    method post_process (line 162) | def post_process(self):
    method enhance (line 174) | def enhance(self, img, outscale=None, alpha_upsampler='realesrgan'):
  class PrefetchReader (line 246) | class PrefetchReader(threading.Thread):
    method __init__ (line 254) | def __init__(self, img_list, num_prefetch_queue):
    method run (line 259) | def run(self):
    method __next__ (line 266) | def __next__(self):
    method __iter__ (line 272) | def __iter__(self):
  class IOConsumer (line 276) | class IOConsumer(threading.Thread):
    method __init__ (line 278) | def __init__(self, opt, que, qid):
    method run (line 284) | def run(self):

FILE: RealSR/VmambaIR/utils/bundle_submissions.py
  function bundle_submissions_raw (line 13) | def bundle_submissions_raw(submission_folder,session):
  function bundle_submissions_srgb (line 46) | def bundle_submissions_srgb(submission_folder,session):
  function bundle_submissions_srgb_v1 (line 79) | def bundle_submissions_srgb_v1(submission_folder,session):

FILE: RealSR/VmambaIR/utils/create_lmdb.py
  function prepare_keys (line 7) | def prepare_keys(folder_path, suffix='png'):
  function create_lmdb_for_reds (line 24) | def create_lmdb_for_reds():
  function create_lmdb_for_gopro (line 46) | def create_lmdb_for_gopro():
  function create_lmdb_for_rain13k (line 71) | def create_lmdb_for_rain13k():
  function create_lmdb_for_SIDD (line 84) | def create_lmdb_for_SIDD():

FILE: RealSR/VmambaIR/utils/dist_util.py
  function init_dist (line 10) | def init_dist(launcher, backend='nccl', **kwargs):
  function _init_dist_pytorch (line 21) | def _init_dist_pytorch(backend, **kwargs):
  function _init_dist_slurm (line 28) | def _init_dist_slurm(backend, port=None):
  function get_dist_info (line 61) | def get_dist_info():
  function master_only (line 75) | def master_only(func):

FILE: RealSR/VmambaIR/utils/download_util.py
  function download_file_from_google_drive (line 8) | def download_file_from_google_drive(file_id, save_path):
  function get_confirm_token (line 41) | def get_confirm_token(response):
  function save_response_content (line 48) | def save_response_content(response,

FILE: RealSR/VmambaIR/utils/face_util.py
  class FaceRestorationHelper (line 16) | class FaceRestorationHelper(object):
    method __init__ (line 19) | def __init__(self, upscale_factor, face_size=512):
    method init_dlib (line 41) | def init_dlib(self, detection_path, landmark5_path, landmark68_path):
    method free_dlib_gpu_memory (line 47) | def free_dlib_gpu_memory(self):
    method read_input_image (line 52) | def read_input_image(self, img_path):
    method detect_faces (line 56) | def detect_faces(self,
    method get_face_landmarks_5 (line 89) | def get_face_landmarks_5(self):
    method get_face_landmarks_68 (line 96) | def get_face_landmarks_68(self):
    method warp_crop_faces (line 132) | def warp_crop_faces(self,
    method add_restored_face (line 170) | def add_restored_face(self, face):
    method paste_faces_to_input_image (line 173) | def paste_faces_to_input_image(self, save_path):
    method clean_all (line 211) | def clean_all(self):

FILE: RealSR/VmambaIR/utils/file_client.py
  class BaseStorageBackend (line 5) | class BaseStorageBackend(metaclass=ABCMeta):
    method get (line 14) | def get(self, filepath):
    method get_text (line 18) | def get_text(self, filepath):
  class MemcachedBackend (line 22) | class MemcachedBackend(BaseStorageBackend):
    method __init__ (line 32) | def __init__(self, server_list_cfg, client_cfg, sys_path=None):
    method get (line 49) | def get(self, filepath):
    method get_text (line 56) | def get_text(self, filepath):
  class HardDiskBackend (line 60) | class HardDiskBackend(BaseStorageBackend):
    method get (line 63) | def get(self, filepath):
    method get_text (line 69) | def get_text(self, filepath):
  class LmdbBackend (line 76) | class LmdbBackend(BaseStorageBackend):
    method __init__ (line 96) | def __init__(self,
    method get (line 131) | def get(self, filepath, client_key):
    method get_text (line 146) | def get_text(self, filepath):
  class FileClient (line 150) | class FileClient(object):
    method __init__ (line 169) | def __init__(self, backend='disk', **kwargs):
    method get (line 177) | def get(self, filepath, client_key='default'):
    method get_text (line 185) | def get_text(self, filepath):

FILE: RealSR/VmambaIR/utils/flow_util.py
  function flowread (line 7) | def flowread(flow_path, quantize=False, concat_axis=0, *args, **kwargs):
  function flowwrite (line 47) | def flowwrite(flow, filename, quantize=False, concat_axis=0, *args, **kw...
  function quantize_flow (line 78) | def quantize_flow(flow, max_val=0.02, norm=True):
  function dequantize_flow (line 106) | def dequantize_flow(dx, dy, max_val=0.02, denorm=True):
  function quantize (line 130) | def quantize(arr, min_val, max_val, levels, dtype=np.int64):
  function dequantize (line 157) | def dequantize(arr, min_val, max_val, levels, dtype=np.float64):

FILE: RealSR/VmambaIR/utils/img_util.py
  function img2tensor (line 9) | def img2tensor(imgs, bgr2rgb=True, float32=True):
  function tensor2img (line 36) | def tensor2img(tensor, rgb2bgr=True, out_type=np.uint8, min_max=(0, 1)):
  function imfrombytes (line 101) | def imfrombytes(content, flag='color', float32=False):
  function imfrombytesDP (line 127) | def imfrombytesDP(content, flag='color', float32=False):
  function padding (line 148) | def padding(img_lq, img_gt, gt_size):
  function padding_DP (line 166) | def padding_DP(img_lqL, img_lqR, img_gt, gt_size):
  function imwrite (line 181) | def imwrite(img, file_path, params=None, auto_mkdir=True):
  function crop_border (line 200) | def crop_border(imgs, crop_border):

FILE: RealSR/VmambaIR/utils/lmdb_util.py
  function make_lmdb_from_imgs (line 9) | def make_lmdb_from_imgs(data_path,
  function read_img_worker (line 139) | def read_img_worker(path, key, compress_level):
  class LmdbMaker (line 164) | class LmdbMaker():
    method __init__ (line 175) | def __init__(self,
    method put (line 194) | def put(self, img_byte, key, img_shape):
    method close (line 205) | def close(self):

FILE: RealSR/VmambaIR/utils/logger.py
  class MessageLogger (line 10) | class MessageLogger():
    method __init__ (line 23) | def __init__(self, opt, start_iter=1, tb_logger=None):
    method __call__ (line 34) | def __call__(self, log_vars):
  function init_tb_logger (line 81) | def init_tb_logger(log_dir):
  function init_wandb_logger (line 88) | def init_wandb_logger(opt):
  function get_root_logger (line 108) | def get_root_logger(logger_name='basicsr', log_level=logging.INFO, log_f...
  function get_env_info (line 150) | def get_env_info():

FILE: RealSR/VmambaIR/utils/matlab_functions.py
  function cubic (line 6) | def cubic(x):
  function calculate_weights_indices (line 17) | def calculate_weights_indices(in_length, out_length, scale, kernel,
  function imresize (line 88) | def imresize(img, scale, antialiasing=True):
  function rgb2ycbcr (line 173) | def rgb2ycbcr(img, y_only=False):
  function bgr2ycbcr (line 207) | def bgr2ycbcr(img, y_only=False):
  function ycbcr2rgb (line 241) | def ycbcr2rgb(img):
  function ycbcr2bgr (line 273) | def ycbcr2bgr(img):
  function _convert_input_type_range (line 305) | def _convert_input_type_range(img):
  function _convert_output_type_range (line 333) | def _convert_output_type_range(img, dst_type):

FILE: RealSR/VmambaIR/utils/misc.py
  function set_random_seed (line 12) | def set_random_seed(seed):
  function get_time_str (line 21) | def get_time_str():
  function mkdir_and_rename (line 25) | def mkdir_and_rename(path):
  function make_exp_dirs (line 39) | def make_exp_dirs(opt):
  function scandir (line 53) | def scandir(dir_path, suffix=None, recursive=False, full_path=False):
  function scandir_SIDD (line 95) | def scandir_SIDD(dir_path, keywords=None, recursive=False, full_path=Fal...
  function check_resume (line 137) | def check_resume(opt, resume_iter):
  function sizeof_fmt (line 166) | def sizeof_fmt(size, suffix='B'):

FILE: RealSR/VmambaIR/utils/options.py
  function ordered_yaml (line 6) | def ordered_yaml():
  function parse (line 31) | def parse(opt_path, is_train=True):
  function dict2str (line 92) | def dict2str(opt, indent_level=1):

FILE: RealSR/inference.py
  function pad_test (line 19) | def pad_test(lq,scale):

FILE: RealSR/ldm/classifier.py
  function disabled_train (line 22) | def disabled_train(self, mode=True):
  class NoisyLatentImageClassifier (line 28) | class NoisyLatentImageClassifier(pl.LightningModule):
    method __init__ (line 30) | def __init__(self,
    method init_from_ckpt (line 70) | def init_from_ckpt(self, path, ignore_keys=list(), only_model=False):
    method load_diffusion (line 88) | def load_diffusion(self):
    method load_classifier (line 95) | def load_classifier(self, ckpt_path, pool):
    method get_x_noisy (line 110) | def get_x_noisy(self, x, t, noise=None):
    method forward (line 120) | def forward(self, x_noisy, t, *args, **kwargs):
    method get_input (line 124) | def get_input(self, batch, k):
    method get_conditioning (line 133) | def get_conditioning(self, batch, k=None):
    method compute_top_k (line 150) | def compute_top_k(self, logits, labels, k, reduction="mean"):
    method on_train_epoch_start (line 157) | def on_train_epoch_start(self):
    method write_logs (line 162) | def write_logs(self, loss, logits, targets):
    method shared_step (line 179) | def shared_step(self, batch, t=None):
    method training_step (line 198) | def training_step(self, batch, batch_idx):
    method reset_noise_accs (line 202) | def reset_noise_accs(self):
    method on_validation_start (line 206) | def on_validation_start(self):
    method validation_step (line 210) | def validation_step(self, batch, batch_idx):
    method configure_optimizers (line 220) | def configure_optimizers(self):
    method log_images (line 238) | def log_images(self, batch, N=8, *args, **kwargs):

FILE: RealSR/ldm/lr_scheduler.py
  class LambdaWarmUpCosineScheduler (line 4) | class LambdaWarmUpCosineScheduler:
    method __init__ (line 8) | def __init__(self, warm_up_steps, lr_min, lr_max, lr_start, max_decay_...
    method schedule (line 17) | def schedule(self, n, **kwargs):
    method __call__ (line 32) | def __call__(self, n, **kwargs):
  class LambdaWarmUpCosineScheduler2 (line 36) | class LambdaWarmUpCosineScheduler2:
    method __init__ (line 41) | def __init__(self, warm_up_steps, f_min, f_max, f_start, cycle_lengths...
    method find_in_interval (line 52) | def find_in_interval(self, n):
    method schedule (line 59) | def schedule(self, n, **kwargs):
    method __call__ (line 77) | def __call__(self, n, **kwargs):
  class LambdaLinearScheduler (line 81) | class LambdaLinearScheduler(LambdaWarmUpCosineScheduler2):
    method schedule (line 83) | def schedule(self, n, **kwargs):

FILE: RealSR/ldm/util.py
  function log_txt_as_img (line 17) | def log_txt_as_img(wh, xc, size=10):
  function ismap (line 41) | def ismap(x):
  function isimage (line 47) | def isimage(x):
  function exists (line 53) | def exists(x):
  function default (line 57) | def default(val, d):
  function mean_flat (line 63) | def mean_flat(tensor):
  function count_params (line 71) | def count_params(model, verbose=False):
  function instantiate_from_config (line 78) | def instantiate_from_config(config):
  function get_obj_from_str (line 88) | def get_obj_from_str(string, reload=False):
  function _do_parallel_data_prefetch (line 96) | def _do_parallel_data_prefetch(func, Q, data, idx, idx_to_fn=False):
  function parallel_data_prefetch (line 108) | def parallel_data_prefetch(

FILE: RealSR/ldm/util2.py
  function make_beta_schedule (line 21) | def make_beta_schedule(schedule, n_timestep, linear_start=1e-4, linear_e...
  function make_ddim_timesteps (line 46) | def make_ddim_timesteps(ddim_discr_method, num_ddim_timesteps, num_ddpm_...
  function make_ddim_sampling_parameters (line 63) | def make_ddim_sampling_parameters(alphacums, ddim_timesteps, eta, verbos...
  function betas_for_alpha_bar (line 77) | def betas_for_alpha_bar(num_diffusion_timesteps, alpha_bar, max_beta=0.9...
  function extract_into_tensor (line 96) | def extract_into_tensor(a, t, x_shape):
  function checkpoint (line 102) | def checkpoint(func, inputs, params, flag):
  class CheckpointFunction (line 119) | class CheckpointFunction(torch.autograd.Function):
    method forward (line 121) | def forward(ctx, run_function, length, *args):
    method backward (line 131) | def backward(ctx, *output_grads):
  function timestep_embedding (line 151) | def timestep_embedding(timesteps, dim, max_period=10000, repeat_only=Fal...
  function zero_module (line 174) | def zero_module(module):
  function scale_module (line 183) | def scale_module(module, scale):
  function mean_flat (line 192) | def mean_flat(tensor):
  function normalization (line 199) | def normalization(channels):
  class SiLU (line 209) | class SiLU(nn.Module):
    method forward (line 210) | def forward(self, x):
  class GroupNorm32 (line 214) | class GroupNorm32(nn.GroupNorm):
    method forward (line 215) | def forward(self, x):
  function conv_nd (line 218) | def conv_nd(dims, *args, **kwargs):
  function linear (line 231) | def linear(*args, **kwargs):
  function avg_pool_nd (line 238) | def avg_pool_nd(dims, *args, **kwargs):
  class HybridConditioner (line 251) | class HybridConditioner(nn.Module):
    method __init__ (line 253) | def __init__(self, c_concat_config, c_crossattn_config):
    method forward (line 258) | def forward(self, c_concat, c_crossattn):
  function noise_like (line 264) | def noise_like(shape, device, repeat=False):

FILE: RealSR/scripts/Metric/DISTS/DISTS_pytorch/DISTS_pt.py
  class L2pooling (line 11) | class L2pooling(nn.Module):
    method __init__ (line 12) | def __init__(self, filter_size=5, stride=2, channels=None, pad_off=0):
    method forward (line 22) | def forward(self, input):
  class DISTS (line 27) | class DISTS(torch.nn.Module):
    method __init__ (line 28) | def __init__(self, load_weights=True):
    method forward_once (line 68) | def forward_once(self, x):
    method forward (line 82) | def forward(self, x, y, require_grad=False, batch_average=False):
  function prepare_image (line 115) | def prepare_image(image, resize=True):

FILE: RealSR/scripts/Metric/DISTS/DISTS_tensorflow/DISTS_tf.py
  class DISTS (line 13) | class DISTS():
    method __init__ (line 14) | def __init__(self):
    method get_features (line 25) | def get_features(self, img):
    method conv_layer (line 53) | def conv_layer(self, input, name):
    method pool_layer (line 61) | def pool_layer(self, input, name):
    method get_conv_filter (line 68) | def get_conv_filter(self, name):
    method get_bias (line 71) | def get_bias(self, name):
    method get_score (line 74) | def get_score(self, img1, img2):

FILE: RealSR/scripts/Metric/LPIPS.py
  function main (line 11) | def main():

FILE: RealSR/scripts/Metric/PSNR.py
  function main (line 12) | def main():

FILE: RealSR/scripts/Metric/dists.py
  class L2pooling (line 13) | class L2pooling(nn.Module):
    method __init__ (line 14) | def __init__(self, filter_size=5, stride=2, channels=None, pad_off=0):
    method forward (line 24) | def forward(self, input):
  class DISTS (line 29) | class DISTS(torch.nn.Module):
    method __init__ (line 30) | def __init__(self, load_weights=True):
    method forward_once (line 70) | def forward_once(self, x):
    method forward (line 84) | def forward(self, x, y, require_grad=False, batch_average=False):
  function prepare_image (line 117) | def prepare_image(image, resize=True):

FILE: RealSR/scripts/extract_subimages.py
  function main (line 12) | def main(args):
  function extract_subimages (line 43) | def extract_subimages(opt):
  function worker (line 74) | def worker(path, opt):

FILE: RealSR/scripts/extract_subimages_DF2K.py
  function main (line 12) | def main(args):
  function extract_subimages (line 43) | def extract_subimages(opt):
  function worker (line 74) | def worker(path, opt):

FILE: RealSR/scripts/generate_meta_info.py
  function main (line 7) | def main(args):

FILE: RealSR/scripts/generate_meta_info_DF2K.py
  function main (line 7) | def main(args):

FILE: RealSR/scripts/generate_meta_info_DF2K_memo.py
  function main (line 7) | def main(args):

FILE: RealSR/scripts/generate_meta_info_OST.py
  function main (line 7) | def main(args):

FILE: RealSR/scripts/generate_meta_info_pairdata.py
  function main (line 6) | def main(args):

FILE: RealSR/scripts/generate_multiscale_DF2K.py
  function main (line 7) | def main(args):

FILE: RealSR/scripts/pytorch2onnx.py
  function main (line 7) | def main(args):

FILE: RealSR/setup.py
  function readme (line 12) | def readme():
  function get_git_hash (line 18) | def get_git_hash():
  function get_hash (line 43) | def get_hash():
  function write_version_py (line 52) | def write_version_py():
  function get_version (line 69) | def get_version():
  function get_requirements (line 75) | def get_requirements(filename='requirements.txt'):

FILE: RealSR/tests/test_dataset.py
  function test_realesrgan_dataset (line 8) | def test_realesrgan_dataset():
  function test_realesrgan_paired_dataset (line 82) | def test_realesrgan_paired_dataset():

FILE: RealSR/tests/test_discriminator_arch.py
  function test_unetdiscriminatorsn (line 6) | def test_unetdiscriminatorsn():

FILE: RealSR/tests/test_model.py
  function test_realesrnet_model (line 12) | def test_realesrnet_model():
  function test_realesrgan_model (line 64) | def test_realesrgan_model():

FILE: RealSR/tests/test_utils.py
  function test_realesrganer (line 7) | def test_realesrganer():

FILE: SRGAN/Metric/DISTS/DISTS_pytorch/DISTS_pt.py
  class L2pooling (line 11) | class L2pooling(nn.Module):
    method __init__ (line 12) | def __init__(self, filter_size=5, stride=2, channels=None, pad_off=0):
    method forward (line 22) | def forward(self, input):
  class DISTS (line 27) | class DISTS(torch.nn.Module):
    method __init__ (line 28) | def __init__(self, load_weights=True):
    method forward_once (line 68) | def forward_once(self, x):
    method forward (line 82) | def forward(self, x, y, require_grad=False, batch_average=False):
  function prepare_image (line 115) | def prepare_image(image, resize=True):

FILE: SRGAN/Metric/DISTS/DISTS_tensorflow/DISTS_tf.py
  class DISTS (line 13) | class DISTS():
    method __init__ (line 14) | def __init__(self):
    method get_features (line 25) | def get_features(self, img):
    method conv_layer (line 53) | def conv_layer(self, input, name):
    method pool_layer (line 61) | def pool_layer(self, input, name):
    method get_conv_filter (line 68) | def get_conv_filter(self, name):
    method get_bias (line 71) | def get_bias(self, name):
    method get_score (line 74) | def get_score(self, img1, img2):

FILE: SRGAN/Metric/LPIPS.py
  function main (line 11) | def main():

FILE: SRGAN/Metric/PSNR.py
  function main (line 12) | def main():

FILE: SRGAN/Metric/dists.py
  class L2pooling (line 13) | class L2pooling(nn.Module):
    method __init__ (line 14) | def __init__(self, filter_size=5, stride=2, channels=None, pad_off=0):
    method forward (line 24) | def forward(self, input):
  class DISTS (line 29) | class DISTS(torch.nn.Module):
    method __init__ (line 30) | def __init__(self, load_weights=True):
    method forward_once (line 70) | def forward_once(self, x):
    method forward (line 84) | def forward(self, x, y, require_grad=False, batch_average=False):
  function prepare_image (line 117) | def prepare_image(image, resize=True):

FILE: SRGAN/VmambaIR/archs/MambaSISR6_arch.py
  class SelectiveScanFn (line 24) | class SelectiveScanFn(torch.autograd.Function):
    method forward (line 27) | def forward(ctx, u, delta, A, B, C, D=None, delta_bias=None, delta_sof...
    method backward (line 64) | def backward(ctx, dout, *args):
  function selective_scan_fn_v1 (line 91) | def selective_scan_fn_v1(u, delta, A, B, C, D=None, delta_bias=None, del...
  function flops_selective_scan_fn (line 101) | def flops_selective_scan_fn(B=1, L=256, D=768, N=16, with_D=True, with_Z...
  function print_jit_input_names (line 124) | def print_jit_input_names(inputs):
  function selective_scan_flop_jit (line 133) | def selective_scan_flop_jit(inputs, outputs):
  function to_3d (line 144) | def to_3d(x):
  function to_4d (line 147) | def to_4d(x,h,w):
  class BiasFree_LayerNorm (line 150) | class BiasFree_LayerNorm(nn.Module):
    method __init__ (line 151) | def __init__(self, normalized_shape):
    method forward (line 162) | def forward(self, x):
  class WithBias_LayerNorm (line 166) | class WithBias_LayerNorm(nn.Module):
    method __init__ (line 167) | def __init__(self, normalized_shape):
    method forward (line 179) | def forward(self, x):
  class LayerNorm (line 185) | class LayerNorm(nn.Module):
    method __init__ (line 186) | def __init__(self, dim, LayerNorm_type):
    method forward (line 193) | def forward(self, x):
  class FeedForward (line 201) | class FeedForward(nn.Module):
    method __init__ (line 202) | def __init__(self, dim, ffn_expansion_factor, bias):
    method forward (line 213) | def forward(self, x):
  class SS2D_1 (line 222) | class SS2D_1(nn.Module):
    method __init__ (line 223) | def __init__(
    method dt_init (line 338) | def dt_init(dt_rank, d_inner, dt_scale=1.0, dt_init="random", dt_min=0...
    method A_log_init (line 364) | def A_log_init(d_state, d_inner, copies=-1, device=None, merge=True):
    method D_init (line 382) | def D_init(d_inner, copies=-1, device=None, merge=True):
    method forward_corev1 (line 395) | def forward_corev1(self, x: torch.Tensor):
    method cforward_corev1 (line 438) | def cforward_corev1(self, xc: torch.Tensor):
    method forward (line 486) | def forward(self, x: torch.Tensor, **kwargs):
  class MamberBlock (line 502) | class MamberBlock(nn.Module):
    method __init__ (line 503) | def __init__(self, dim, num_heads, ffn_expansion_factor, bias, LayerNo...
    method forward (line 511) | def forward(self, x):
  class OverlapPatchEmbed (line 520) | class OverlapPatchEmbed(nn.Module):
    method __init__ (line 521) | def __init__(self, in_c=3, embed_dim=48, bias=False):
    method forward (line 526) | def forward(self, x):
  class Downsample (line 535) | class Downsample(nn.Module):
    method __init__ (line 536) | def __init__(self, n_feat):
    method forward (line 542) | def forward(self, x):
  class Upsample (line 545) | class Upsample(nn.Module):
    method __init__ (line 546) | def __init__(self, n_feat):
    method forward (line 552) | def forward(self, x):
  class MambaSISR6 (line 558) | class MambaSISR6(nn.Module):
    method __init__ (line 559) | def __init__(self,
    method forward (line 610) | def forward(self, inp_img):
    method flops (line 646) | def flops(self, shape=(3, 64, 64)):

FILE: SRGAN/VmambaIR/archs/attention.py
  class QKVAttentionLegacy (line 4) | class QKVAttentionLegacy(nn.Module):
    method __init__ (line 9) | def __init__(self, n_heads):
    method forward (line 14) | def forward(self, qkv):
  class QKVAttention (line 32) | class QKVAttention(nn.Module):
    method __init__ (line 37) | def __init__(self, n_heads):
    method forward (line 42) | def forward(self, qkv):
  class AttentionBlock (line 62) | class AttentionBlock(nn.Module):
    method __init__ (line 63) | def __init__(
    method forward (line 88) | def forward(self, x):

FILE: SRGAN/VmambaIR/archs/common.py
  function default_conv (line 7) | def default_conv(in_channels, out_channels, kernel_size, bias=True):
  class ResBlock (line 10) | class ResBlock(nn.Module):
    method __init__ (line 11) | def __init__(
    method forward (line 27) | def forward(self, x):
  class MeanShift (line 33) | class MeanShift(nn.Conv2d):
    method __init__ (line 34) | def __init__(self, rgb_range, rgb_mean, rgb_std, sign=-1):
  class Upsampler (line 45) | class Upsampler(nn.Sequential):
    method __init__ (line 46) | def __init__(self, conv, scale, n_feat, act=False, bias=True):

FILE: SRGAN/VmambaIR/archs/discriminator_arch.py
  class UNetDiscriminatorSN (line 8) | class UNetDiscriminatorSN(nn.Module):
    method __init__ (line 19) | def __init__(self, num_in_ch, num_feat=64, skip_connection=True):
    method forward (line 38) | def forward(self, x):

FILE: SRGAN/VmambaIR/archs/srvgg_arch.py
  class SRVGGNetCompact (line 7) | class SRVGGNetCompact(nn.Module):
    method __init__ (line 22) | def __init__(self, num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=16...
    method forward (line 60) | def forward(self, x):

FILE: SRGAN/VmambaIR/data/data_util.py
  function read_img_seq (line 12) | def read_img_seq(path, require_mod_crop=False, scale=1):
  function generate_frame_indices (line 36) | def generate_frame_indices(crt_idx,
  function paired_paths_from_lmdb (line 92) | def paired_paths_from_lmdb(folders, keys):
  function paired_paths_from_meta_info_file (line 158) | def paired_paths_from_meta_info_file(folders, keys, meta_info_file,
  function paired_paths_from_folder (line 208) | def paired_paths_from_folder(folders, keys, filename_tmpl):
  function paired_DP_paths_from_folder (line 253) | def paired_DP_paths_from_folder(folders, keys, filename_tmpl):
  function paths_from_folder (line 307) | def paths_from_folder(folder):
  function paths_from_lmdb (line 322) | def paths_from_lmdb(folder):
  function generate_gaussian_kernel (line 338) | def generate_gaussian_kernel(kernel_size=13, sigma=1.6):
  function duf_downsample (line 356) | def duf_downsample(x, kernel_size=13, scale=4):

FILE: SRGAN/VmambaIR/data/deblur_paired_dataset.py
  class DeblurPairedDataset (line 17) | class DeblurPairedDataset(data.Dataset):
    method __init__ (line 46) | def __init__(self, opt):
    method __getitem__ (line 79) | def __getitem__(self, index):
    method __len__ (line 132) | def __len__(self):
  class Dataset_GaussianDenoising (line 135) | class Dataset_GaussianDenoising(data.Dataset):
    method __init__ (line 163) | def __init__(self, opt):
    method __getitem__ (line 199) | def __getitem__(self, index):
    method __len__ (line 274) | def __len__(self):
  class Dataset_DefocusDeblur_DualPixel_16bit (line 277) | class Dataset_DefocusDeblur_DualPixel_16bit(data.Dataset):
    method __init__ (line 278) | def __init__(self, opt):
    method __getitem__ (line 300) | def __getitem__(self, index):
    method __len__ (line 363) | def __len__(self):

FILE: SRGAN/VmambaIR/data/diffir_dataset.py
  class DiffIRGANDataset (line 17) | class DiffIRGANDataset(data.Dataset):
    method __init__ (line 35) | def __init__(self, opt):
    method __getitem__ (line 57) | def __getitem__(self, index):
    method __len__ (line 108) | def __len__(self):

FILE: SRGAN/VmambaIR/data/diffir_paired_dataset.py
  class DiffIRGANPairedDataset (line 11) | class DiffIRGANPairedDataset(data.Dataset):
    method __init__ (line 41) | def __init__(self, opt):
    method __getitem__ (line 75) | def __getitem__(self, index):
    method __len__ (line 107) | def __len__(self):

FILE: SRGAN/VmambaIR/data/gaussiandenoising_paired_dataset.py
  class GaussianDenoisingPairedDataset (line 18) | class GaussianDenoisingPairedDataset(data.Dataset):
    method __init__ (line 46) | def __init__(self, opt):
    method __getitem__ (line 82) | def __getitem__(self, index):
    method __len__ (line 158) | def __len__(self):
  class Dataset_DefocusDeblur_DualPixel_16bit (line 161) | class Dataset_DefocusDeblur_DualPixel_16bit(data.Dataset):
    method __init__ (line 162) | def __init__(self, opt):
    method __getitem__ (line 184) | def __getitem__(self, index):
    method __len__ (line 247) | def __len__(self):

FILE: SRGAN/VmambaIR/data/transforms.py
  function mod_crop (line 5) | def mod_crop(img, scale):
  function paired_random_crop (line 24) | def paired_random_crop(img_gts, img_lqs, lq_patch_size, scale, gt_path):
  function paired_random_crop_DP (line 85) | def paired_random_crop_DP(img_lqLs, img_lqRs, img_gts, gt_patch_size, sc...
  function augment (line 136) | def augment(imgs, hflip=True, rotation=True, flows=None, return_status=F...
  function img_rotate (line 203) | def img_rotate(img, angle, center=None, scale=1.0):
  function data_augmentation (line 223) | def data_augmentation(image, mode):
  function random_augmentation (line 270) | def random_augmentation(*args):

FILE: SRGAN/VmambaIR/losses/my_loss.py
  class KDLoss (line 8) | class KDLoss(nn.Module):
    method __init__ (line 14) | def __init__(self, loss_weight=1.0, temperature = 0.15):
    method forward (line 20) | def forward(self, S1_fea, S2_fea):

FILE: SRGAN/VmambaIR/models/MambaSISR2_model.py
  class MambaSISRModel2 (line 16) | class MambaSISRModel2(SRModel):
    method __init__ (line 24) | def __init__(self, opt):
    method setup_schedulers (line 28) | def setup_schedulers(self):
    method feed_data (line 77) | def feed_data(self, data):
    method nondist_validation (line 81) | def nondist_validation(self, dataloader, current_iter, tb_logger, save...
    method pad_test (line 87) | def pad_test(self, window_size):
    method test (line 99) | def test(self):
    method optimize_parameters (line 195) | def optimize_parameters(self, current_iter):

FILE: SRGAN/VmambaIR/models/MambaSISRGAN_model.py
  class MambaSISRGANModel (line 19) | class MambaSISRGANModel(SRGANModel):
    method __init__ (line 27) | def __init__(self, opt):
    method init_training_settings (line 54) | def init_training_settings(self):
    method feed_data (line 65) | def feed_data(self, data):
    method nondist_validation (line 70) | def nondist_validation(self, dataloader, current_iter, tb_logger, save...
    method pad_test (line 76) | def pad_test(self, window_size):
    method test (line 88) | def test(self):
    method optimize_parameters (line 110) | def optimize_parameters(self, current_iter):

FILE: SRGAN/VmambaIR/models/MambaSISR_model.py
  class MambaSISRModel (line 16) | class MambaSISRModel(SRModel):
    method __init__ (line 24) | def __init__(self, opt):
    method setup_schedulers (line 28) | def setup_schedulers(self):
    method feed_data (line 77) | def feed_data(self, data):
    method nondist_validation (line 81) | def nondist_validation(self, dataloader, current_iter, tb_logger, save...
    method pad_test (line 87) | def pad_test(self, window_size):
    method test (line 99) | def test(self):
    method optimize_parameters (line 120) | def optimize_parameters(self, current_iter):

FILE: SRGAN/VmambaIR/models/lr_scheduler.py
  class MultiStepRestartLR (line 7) | class MultiStepRestartLR(_LRScheduler):
    method __init__ (line 20) | def __init__(self,
    method get_lr (line 35) | def get_lr(self):
  class LinearLR (line 49) | class LinearLR(_LRScheduler):
    method __init__ (line 59) | def __init__(self,
    method get_lr (line 66) | def get_lr(self):
  class VibrateLR (line 72) | class VibrateLR(_LRScheduler):
    method __init__ (line 82) | def __init__(self,
    method get_lr (line 89) | def get_lr(self):
  function get_position_from_periods (line 115) | def get_position_from_periods(iteration, cumulative_period):
  class CosineAnnealingRestartLR (line 136) | class CosineAnnealingRestartLR(_LRScheduler):
    method __init__ (line 156) | def __init__(self,
    method get_lr (line 172) | def get_lr(self):
  class CosineAnnealingRestartCyclicLR (line 186) | class CosineAnnealingRestartCyclicLR(_LRScheduler):
    method __init__ (line 203) | def __init__(self,
    method get_lr (line 219) | def get_lr(self):

FILE: SRGAN/VmambaIR/train_pipeline.py
  function init_tb_loggers (line 18) | def init_tb_loggers(opt):
  function create_train_val_dataloader (line 30) | def create_train_val_dataloader(opt, logger):
  function load_resume_state (line 69) | def load_resume_state(opt):
  function train_pipeline (line 92) | def train_pipeline(root_path):

FILE: SRGAN/VmambaIR/utils.py
  class RealESRGANer (line 14) | class RealESRGANer():
    method __init__ (line 29) | def __init__(self,
    method pre_process (line 68) | def pre_process(self, img):
    method process (line 93) | def process(self):
    method tile_process (line 97) | def tile_process(self):
    method post_process (line 162) | def post_process(self):
    method enhance (line 174) | def enhance(self, img, outscale=None, alpha_upsampler='realesrgan'):
  class PrefetchReader (line 246) | class PrefetchReader(threading.Thread):
    method __init__ (line 254) | def __init__(self, img_list, num_prefetch_queue):
    method run (line 259) | def run(self):
    method __next__ (line 266) | def __next__(self):
    method __iter__ (line 272) | def __iter__(self):
  class IOConsumer (line 276) | class IOConsumer(threading.Thread):
    method __init__ (line 278) | def __init__(self, opt, que, qid):
    method run (line 284) | def run(self):

FILE: SRGAN/VmambaIR/utils/bundle_submissions.py
  function bundle_submissions_raw (line 13) | def bundle_submissions_raw(submission_folder,session):
  function bundle_submissions_srgb (line 46) | def bundle_submissions_srgb(submission_folder,session):
  function bundle_submissions_srgb_v1 (line 79) | def bundle_submissions_srgb_v1(submission_folder,session):

FILE: SRGAN/VmambaIR/utils/create_lmdb.py
  function prepare_keys (line 7) | def prepare_keys(folder_path, suffix='png'):
  function create_lmdb_for_reds (line 24) | def create_lmdb_for_reds():
  function create_lmdb_for_gopro (line 46) | def create_lmdb_for_gopro():
  function create_lmdb_for_rain13k (line 71) | def create_lmdb_for_rain13k():
  function create_lmdb_for_SIDD (line 84) | def create_lmdb_for_SIDD():

FILE: SRGAN/VmambaIR/utils/dist_util.py
  function init_dist (line 10) | def init_dist(launcher, backend='nccl', **kwargs):
  function _init_dist_pytorch (line 21) | def _init_dist_pytorch(backend, **kwargs):
  function _init_dist_slurm (line 28) | def _init_dist_slurm(backend, port=None):
  function get_dist_info (line 61) | def get_dist_info():
  function master_only (line 75) | def master_only(func):

FILE: SRGAN/VmambaIR/utils/download_util.py
  function download_file_from_google_drive (line 8) | def download_file_from_google_drive(file_id, save_path):
  function get_confirm_token (line 41) | def get_confirm_token(response):
  function save_response_content (line 48) | def save_response_content(response,

FILE: SRGAN/VmambaIR/utils/face_util.py
  class FaceRestorationHelper (line 16) | class FaceRestorationHelper(object):
    method __init__ (line 19) | def __init__(self, upscale_factor, face_size=512):
    method init_dlib (line 41) | def init_dlib(self, detection_path, landmark5_path, landmark68_path):
    method free_dlib_gpu_memory (line 47) | def free_dlib_gpu_memory(self):
    method read_input_image (line 52) | def read_input_image(self, img_path):
    method detect_faces (line 56) | def detect_faces(self,
    method get_face_landmarks_5 (line 89) | def get_face_landmarks_5(self):
    method get_face_landmarks_68 (line 96) | def get_face_landmarks_68(self):
    method warp_crop_faces (line 132) | def warp_crop_faces(self,
    method add_restored_face (line 170) | def add_restored_face(self, face):
    method paste_faces_to_input_image (line 173) | def paste_faces_to_input_image(self, save_path):
    method clean_all (line 211) | def clean_all(self):

FILE: SRGAN/VmambaIR/utils/file_client.py
  class BaseStorageBackend (line 5) | class BaseStorageBackend(metaclass=ABCMeta):
    method get (line 14) | def get(self, filepath):
    method get_text (line 18) | def get_text(self, filepath):
  class MemcachedBackend (line 22) | class MemcachedBackend(BaseStorageBackend):
    method __init__ (line 32) | def __init__(self, server_list_cfg, client_cfg, sys_path=None):
    method get (line 49) | def get(self, filepath):
    method get_text (line 56) | def get_text(self, filepath):
  class HardDiskBackend (line 60) | class HardDiskBackend(BaseStorageBackend):
    method get (line 63) | def get(self, filepath):
    method get_text (line 69) | def get_text(self, filepath):
  class LmdbBackend (line 76) | class LmdbBackend(BaseStorageBackend):
    method __init__ (line 96) | def __init__(self,
    method get (line 131) | def get(self, filepath, client_key):
    method get_text (line 146) | def get_text(self, filepath):
  class FileClient (line 150) | class FileClient(object):
    method __init__ (line 169) | def __init__(self, backend='disk', **kwargs):
    method get (line 177) | def get(self, filepath, client_key='default'):
    method get_text (line 185) | def get_text(self, filepath):

FILE: SRGAN/VmambaIR/utils/flow_util.py
  function flowread (line 7) | def flowread(flow_path, quantize=False, concat_axis=0, *args, **kwargs):
  function flowwrite (line 47) | def flowwrite(flow, filename, quantize=False, concat_axis=0, *args, **kw...
  function quantize_flow (line 78) | def quantize_flow(flow, max_val=0.02, norm=True):
  function dequantize_flow (line 106) | def dequantize_flow(dx, dy, max_val=0.02, denorm=True):
  function quantize (line 130) | def quantize(arr, min_val, max_val, levels, dtype=np.int64):
  function dequantize (line 157) | def dequantize(arr, min_val, max_val, levels, dtype=np.float64):

FILE: SRGAN/VmambaIR/utils/img_util.py
  function img2tensor (line 9) | def img2tensor(imgs, bgr2rgb=True, float32=True):
  function tensor2img (line 36) | def tensor2img(tensor, rgb2bgr=True, out_type=np.uint8, min_max=(0, 1)):
  function imfrombytes (line 101) | def imfrombytes(content, flag='color', float32=False):
  function imfrombytesDP (line 127) | def imfrombytesDP(content, flag='color', float32=False):
  function padding (line 148) | def padding(img_lq, img_gt, gt_size):
  function padding_DP (line 166) | def padding_DP(img_lqL, img_lqR, img_gt, gt_size):
  function imwrite (line 181) | def imwrite(img, file_path, params=None, auto_mkdir=True):
  function crop_border (line 200) | def crop_border(imgs, crop_border):

FILE: SRGAN/VmambaIR/utils/lmdb_util.py
  function make_lmdb_from_imgs (line 9) | def make_lmdb_from_imgs(data_path,
  function read_img_worker (line 139) | def read_img_worker(path, key, compress_level):
  class LmdbMaker (line 164) | class LmdbMaker():
    method __init__ (line 175) | def __init__(self,
    method put (line 194) | def put(self, img_byte, key, img_shape):
    method close (line 205) | def close(self):

FILE: SRGAN/VmambaIR/utils/logger.py
  class MessageLogger (line 10) | class MessageLogger():
    method __init__ (line 23) | def __init__(self, opt, start_iter=1, tb_logger=None):
    method __call__ (line 34) | def __call__(self, log_vars):
  function init_tb_logger (line 81) | def init_tb_logger(log_dir):
  function init_wandb_logger (line 88) | def init_wandb_logger(opt):
  function get_root_logger (line 108) | def get_root_logger(logger_name='basicsr', log_level=logging.INFO, log_f...
  function get_env_info (line 150) | def get_env_info():

FILE: SRGAN/VmambaIR/utils/matlab_functions.py
  function cubic (line 6) | def cubic(x):
  function calculate_weights_indices (line 17) | def calculate_weights_indices(in_length, out_length, scale, kernel,
  function imresize (line 88) | def imresize(img, scale, antialiasing=True):
  function rgb2ycbcr (line 173) | def rgb2ycbcr(img, y_only=False):
  function bgr2ycbcr (line 207) | def bgr2ycbcr(img, y_only=False):
  function ycbcr2rgb (line 241) | def ycbcr2rgb(img):
  function ycbcr2bgr (line 273) | def ycbcr2bgr(img):
  function _convert_input_type_range (line 305) | def _convert_input_type_range(img):
  function _convert_output_type_range (line 333) | def _convert_output_type_range(img, dst_type):

FILE: SRGAN/VmambaIR/utils/misc.py
  function set_random_seed (line 12) | def set_random_seed(seed):
  function get_time_str (line 21) | def get_time_str():
  function mkdir_and_rename (line 25) | def mkdir_and_rename(path):
  function make_exp_dirs (line 39) | def make_exp_dirs(opt):
  function scandir (line 53) | def scandir(dir_path, suffix=None, recursive=False, full_path=False):
  function scandir_SIDD (line 95) | def scandir_SIDD(dir_path, keywords=None, recursive=False, full_path=Fal...
  function check_resume (line 137) | def check_resume(opt, resume_iter):
  function sizeof_fmt (line 166) | def sizeof_fmt(size, suffix='B'):

FILE: SRGAN/VmambaIR/utils/options.py
  function ordered_yaml (line 6) | def ordered_yaml():
  function parse (line 31) | def parse(opt_path, is_train=True):
  function dict2str (line 92) | def dict2str(opt, indent_level=1):

FILE: SRGAN/ldm/classifier.py
  function disabled_train (line 22) | def disabled_train(self, mode=True):
  class NoisyLatentImageClassifier (line 28) | class NoisyLatentImageClassifier(pl.LightningModule):
    method __init__ (line 30) | def __init__(self,
    method init_from_ckpt (line 70) | def init_from_ckpt(self, path, ignore_keys=list(), only_model=False):
    method load_diffusion (line 88) | def load_diffusion(self):
    method load_classifier (line 95) | def load_classifier(self, ckpt_path, pool):
    method get_x_noisy (line 110) | def get_x_noisy(self, x, t, noise=None):
    method forward (line 120) | def forward(self, x_noisy, t, *args, **kwargs):
    method get_input (line 124) | def get_input(self, batch, k):
    method get_conditioning (line 133) | def get_conditioning(self, batch, k=None):
    method compute_top_k (line 150) | def compute_top_k(self, logits, labels, k, reduction="mean"):
    method on_train_epoch_start (line 157) | def on_train_epoch_start(self):
    method write_logs (line 162) | def write_logs(self, loss, logits, targets):
    method shared_step (line 179) | def shared_step(self, batch, t=None):
    method training_step (line 198) | def training_step(self, batch, batch_idx):
    method reset_noise_accs (line 202) | def reset_noise_accs(self):
    method on_validation_start (line 206) | def on_validation_start(self):
    method validation_step (line 210) | def validation_step(self, batch, batch_idx):
    method configure_optimizers (line 220) | def configure_optimizers(self):
    method log_images (line 238) | def log_images(self, batch, N=8, *args, **kwargs):

FILE: SRGAN/ldm/lr_scheduler.py
  class LambdaWarmUpCosineScheduler (line 4) | class LambdaWarmUpCosineScheduler:
    method __init__ (line 8) | def __init__(self, warm_up_steps, lr_min, lr_max, lr_start, max_decay_...
    method schedule (line 17) | def schedule(self, n, **kwargs):
    method __call__ (line 32) | def __call__(self, n, **kwargs):
  class LambdaWarmUpCosineScheduler2 (line 36) | class LambdaWarmUpCosineScheduler2:
    method __init__ (line 41) | def __init__(self, warm_up_steps, f_min, f_max, f_start, cycle_lengths...
    method find_in_interval (line 52) | def find_in_interval(self, n):
    method schedule (line 59) | def schedule(self, n, **kwargs):
    method __call__ (line 77) | def __call__(self, n, **kwargs):
  class LambdaLinearScheduler (line 81) | class LambdaLinearScheduler(LambdaWarmUpCosineScheduler2):
    method schedule (line 83) | def schedule(self, n, **kwargs):

FILE: SRGAN/ldm/util.py
  function log_txt_as_img (line 17) | def log_txt_as_img(wh, xc, size=10):
  function ismap (line 41) | def ismap(x):
  function isimage (line 47) | def isimage(x):
  function exists (line 53) | def exists(x):
  function default (line 57) | def default(val, d):
  function mean_flat (line 63) | def mean_flat(tensor):
  function count_params (line 71) | def count_params(model, verbose=False):
  function instantiate_from_config (line 78) | def instantiate_from_config(config):
  function get_obj_from_str (line 88) | def get_obj_from_str(string, reload=False):
  function _do_parallel_data_prefetch (line 96) | def _do_parallel_data_prefetch(func, Q, data, idx, idx_to_fn=False):
  function parallel_data_prefetch (line 108) | def parallel_data_prefetch(

FILE: SRGAN/ldm/util2.py
  function make_beta_schedule (line 21) | def make_beta_schedule(schedule, n_timestep, linear_start=1e-4, linear_e...
  function make_ddim_timesteps (line 46) | def make_ddim_timesteps(ddim_discr_method, num_ddim_timesteps, num_ddpm_...
  function make_ddim_sampling_parameters (line 63) | def make_ddim_sampling_parameters(alphacums, ddim_timesteps, eta, verbos...
  function betas_for_alpha_bar (line 77) | def betas_for_alpha_bar(num_diffusion_timesteps, alpha_bar, max_beta=0.9...
  function extract_into_tensor (line 96) | def extract_into_tensor(a, t, x_shape):
  function checkpoint (line 102) | def checkpoint(func, inputs, params, flag):
  class CheckpointFunction (line 119) | class CheckpointFunction(torch.autograd.Function):
    method forward (line 121) | def forward(ctx, run_function, length, *args):
    method backward (line 131) | def backward(ctx, *output_grads):
  function timestep_embedding (line 151) | def timestep_embedding(timesteps, dim, max_period=10000, repeat_only=Fal...
  function zero_module (line 174) | def zero_module(module):
  function scale_module (line 183) | def scale_module(module, scale):
  function mean_flat (line 192) | def mean_flat(tensor):
  function normalization (line 199) | def normalization(channels):
  class SiLU (line 209) | class SiLU(nn.Module):
    method forward (line 210) | def forward(self, x):
  class GroupNorm32 (line 214) | class GroupNorm32(nn.GroupNorm):
    method forward (line 215) | def forward(self, x):
  function conv_nd (line 218) | def conv_nd(dims, *args, **kwargs):
  function linear (line 231) | def linear(*args, **kwargs):
  function avg_pool_nd (line 238) | def avg_pool_nd(dims, *args, **kwargs):
  class HybridConditioner (line 251) | class HybridConditioner(nn.Module):
    method __init__ (line 253) | def __init__(self, c_concat_config, c_crossattn_config):
    method forward (line 258) | def forward(self, c_concat, c_crossattn):
  function noise_like (line 264) | def noise_like(shape, device, repeat=False):

FILE: SRGAN/scripts/extract_subimages.py
  function main (line 12) | def main(args):
  function extract_subimages (line 43) | def extract_subimages(opt):
  function worker (line 74) | def worker(path, opt):

FILE: SRGAN/scripts/extract_subimages_DF2K.py
  function main (line 12) | def main(args):
  function extract_subimages (line 43) | def extract_subimages(opt):
  function worker (line 74) | def worker(path, opt):

FILE: SRGAN/scripts/generate_meta_info.py
  function main (line 7) | def main(args):

FILE: SRGAN/scripts/generate_meta_info_DF2K.py
  function main (line 7) | def main(args):

FILE: SRGAN/scripts/generate_meta_info_OST.py
  function main (line 7) | def main(args):

FILE: SRGAN/scripts/generate_meta_info_pairdata.py
  function main (line 6) | def main(args):

FILE: SRGAN/scripts/generate_multiscale_DF2K.py
  function main (line 7) | def main(args):

FILE: SRGAN/scripts/pytorch2onnx.py
  function main (line 7) | def main(args):

FILE: SRGAN/setup.py
  function readme (line 12) | def readme():
  function get_git_hash (line 18) | def get_git_hash():
  function get_hash (line 43) | def get_hash():
  function write_version_py (line 52) | def write_version_py():
  function get_version (line 69) | def get_version():
  function get_requirements (line 75) | def get_requirements(filename='requirements.txt'):
Condensed preview — 304 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,448K chars).
[
  {
    "path": ".gitignore",
    "chars": 483,
    "preview": "# global\n**/__pycache__\n**/_ignore\n**/.dist_test\n**/.pytest_cache\n**/*.egg-info\n**/*.TAG\n**/dist\n**/*.so\n*.so\n**/build\n*"
  },
  {
    "path": "Deraining/Deraining/Datasets/README.md",
    "chars": 632,
    "preview": "For training and testing, your directory structure should look like this\n  \n `Datasets` <br/>\n `├──train`  <br/>\n     `└"
  },
  {
    "path": "Deraining/Deraining/Metric/PSNR.py",
    "chars": 2127,
    "preview": "import cv2\nimport glob\nimport numpy as np\nimport os.path as osp\nfrom torchvision.transforms.functional import normalize\n"
  },
  {
    "path": "Deraining/Deraining/Options/Deraining_mamber28.yml",
    "chars": 3070,
    "preview": "# general settings\nname: Deraining_mamber28\nmodel_type: ImageCleanModel\nscale: 1\nnum_gpu: 8  # set num_gpu: 0 for cpu mo"
  },
  {
    "path": "Deraining/Deraining/Options/Deraining_mamber32.yml",
    "chars": 3173,
    "preview": "# general settings\nname: Deraining_mamber32\nmodel_type: ImageCleanModel\nscale: 1\nnum_gpu: 8  # set num_gpu: 0 for cpu mo"
  },
  {
    "path": "Deraining/Deraining/Options/Deraining_mamber33.yml",
    "chars": 3071,
    "preview": "# general settings\nname: Deraining_mamber33\nmodel_type: ImageCleanModel\nscale: 1\nnum_gpu: 8  # set num_gpu: 0 for cpu mo"
  },
  {
    "path": "Deraining/Deraining/Options/Deraining_mamber34.yml",
    "chars": 3071,
    "preview": "# general settings\nname: Deraining_mamber34\nmodel_type: ImageCleanModel\nscale: 1\nnum_gpu: 8  # set num_gpu: 0 for cpu mo"
  },
  {
    "path": "Deraining/Deraining/README.md",
    "chars": 880,
    "preview": "\n## Training\n\n1. To download Rain13K training and testing data, run\n```\npython download_data.py --data train-test\n```\n\n2"
  },
  {
    "path": "Deraining/Deraining/download_data.py",
    "chars": 1617,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/Deraining/evaluate_PSNR_SSIM.m",
    "chars": 8120,
    "preview": "%% Restormer: Efficient Transformer for High-Resolution Image Restoration\n%% Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/Deraining/test.py",
    "chars": 3046,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/Deraining/utils.py",
    "chars": 2988,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/Deraining_test.sh",
    "chars": 60,
    "preview": "CUDA_VISIBLE_DEVICES=2 \\\npython3 ./basicsr/test_deraining.py"
  },
  {
    "path": "Deraining/Deraining_train.sh",
    "chars": 56,
    "preview": "bash ./train.sh Deraining/Options/Deraining_mamber34.yml"
  },
  {
    "path": "Deraining/INSTALL.md",
    "chars": 1289,
    "preview": "# Installation\n\nThis repository is built in PyTorch 1.8.1 and tested on Ubuntu 16.04 environment (Python3.7, CUDA10.2, c"
  },
  {
    "path": "Deraining/LICENSE.md",
    "chars": 1349,
    "preview": "## ACADEMIC PUBLIC LICENSE\n\n### Permissions\n:heavy_check_mark: Non-Commercial use\n:heavy_check_mark: Modification\n:heavy"
  },
  {
    "path": "Deraining/VERSION",
    "chars": 6,
    "preview": "1.2.0\n"
  },
  {
    "path": "Deraining/basicsr/data/__init__.py",
    "chars": 4592,
    "preview": "import importlib\nimport numpy as np\nimport random\nimport torch\nimport torch.utils.data\nfrom functools import partial\nfro"
  },
  {
    "path": "Deraining/basicsr/data/data_sampler.py",
    "chars": 1652,
    "preview": "import math\nimport torch\nfrom torch.utils.data.sampler import Sampler\n\n\nclass EnlargedSampler(Sampler):\n    \"\"\"Sampler t"
  },
  {
    "path": "Deraining/basicsr/data/data_util.py",
    "chars": 14522,
    "preview": "import cv2\ncv2.setNumThreads(1)\nimport numpy as np\nimport torch\nfrom os import path as osp\nfrom torch.nn import function"
  },
  {
    "path": "Deraining/basicsr/data/ffhq_dataset.py",
    "chars": 2353,
    "preview": "from os import path as osp\nfrom torch.utils import data as data\nfrom torchvision.transforms.functional import normalize\n"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_DIV2K800sub_GT.txt",
    "chars": 847392,
    "preview": "0001_s001.png (480,480,3)\n0001_s002.png (480,480,3)\n0001_s003.png (480,480,3)\n0001_s004.png (480,480,3)\n0001_s005.png (4"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_REDS4_test_GT.txt",
    "chars": 84,
    "preview": "000 100 (720,1280,3)\n011 100 (720,1280,3)\n015 100 (720,1280,3)\n020 100 (720,1280,3)\n"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_REDS_GT.txt",
    "chars": 5670,
    "preview": "000 100 (720,1280,3)\n001 100 (720,1280,3)\n002 100 (720,1280,3)\n003 100 (720,1280,3)\n004 100 (720,1280,3)\n005 100 (720,12"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_REDSofficial4_test_GT.txt",
    "chars": 84,
    "preview": "240 100 (720,1280,3)\n241 100 (720,1280,3)\n246 100 (720,1280,3)\n257 100 (720,1280,3)\n"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_REDSval_official_test_GT.txt",
    "chars": 630,
    "preview": "240 100 (720,1280,3)\n241 100 (720,1280,3)\n242 100 (720,1280,3)\n243 100 (720,1280,3)\n244 100 (720,1280,3)\n245 100 (720,12"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_Vimeo90K_test_GT.txt",
    "chars": 195600,
    "preview": "00001/0266 7 (256,448,3)\n00001/0268 7 (256,448,3)\n00001/0275 7 (256,448,3)\n00001/0278 7 (256,448,3)\n00001/0285 7 (256,44"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_Vimeo90K_test_fast_GT.txt",
    "chars": 30625,
    "preview": "00001/0625 7 (256,448,3)\n00001/0632 7 (256,448,3)\n00001/0807 7 (256,448,3)\n00001/0832 7 (256,448,3)\n00001/0834 7 (256,44"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_Vimeo90K_test_medium_GT.txt",
    "chars": 124425,
    "preview": "00001/0285 7 (256,448,3)\n00001/0619 7 (256,448,3)\n00001/0622 7 (256,448,3)\n00001/0628 7 (256,448,3)\n00001/0629 7 (256,44"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_Vimeo90K_test_slow_GT.txt",
    "chars": 40325,
    "preview": "00001/0266 7 (256,448,3)\n00001/0268 7 (256,448,3)\n00001/0275 7 (256,448,3)\n00001/0278 7 (256,448,3)\n00001/0287 7 (256,44"
  },
  {
    "path": "Deraining/basicsr/data/meta_info/meta_info_Vimeo90K_train_GT.txt",
    "chars": 1615300,
    "preview": "00001/0001 7 (256,448,3)\n00001/0002 7 (256,448,3)\n00001/0003 7 (256,448,3)\n00001/0004 7 (256,448,3)\n00001/0005 7 (256,44"
  },
  {
    "path": "Deraining/basicsr/data/paired_image_dataset.py",
    "chars": 14198,
    "preview": "from torch.utils import data as data\nfrom torchvision.transforms.functional import normalize\n\nfrom data.data_util import"
  },
  {
    "path": "Deraining/basicsr/data/prefetch_dataloader.py",
    "chars": 3156,
    "preview": "import queue as Queue\nimport threading\nimport torch\nfrom torch.utils.data import DataLoader\n\n\nclass PrefetchGenerator(th"
  },
  {
    "path": "Deraining/basicsr/data/reds_dataset.py",
    "chars": 9786,
    "preview": "import numpy as np\nimport random\nimport torch\nfrom pathlib import Path\nfrom torch.utils import data as data\n\nfrom data.t"
  },
  {
    "path": "Deraining/basicsr/data/single_image_dataset.py",
    "chars": 2538,
    "preview": "from os import path as osp\nfrom torch.utils import data as data\nfrom torchvision.transforms.functional import normalize\n"
  },
  {
    "path": "Deraining/basicsr/data/transforms.py",
    "chars": 8944,
    "preview": "import cv2\nimport random\nimport numpy as np\n\ndef mod_crop(img, scale):\n    \"\"\"Mod crop images, used during testing.\n\n   "
  },
  {
    "path": "Deraining/basicsr/data/video_test_dataset.py",
    "chars": 12613,
    "preview": "import glob\nimport torch\nfrom os import path as osp\nfrom torch.utils import data as data\n\nfrom data.data_util import (du"
  },
  {
    "path": "Deraining/basicsr/data/vimeo90k_dataset.py",
    "chars": 4595,
    "preview": "import random\nimport torch\nfrom pathlib import Path\nfrom torch.utils import data as data\n\nfrom data.transforms import au"
  },
  {
    "path": "Deraining/basicsr/metrics/__init__.py",
    "chars": 153,
    "preview": "from .niqe import calculate_niqe\nfrom .psnr_ssim import calculate_psnr, calculate_ssim\n\n__all__ = ['calculate_psnr', 'ca"
  },
  {
    "path": "Deraining/basicsr/metrics/fid.py",
    "chars": 3489,
    "preview": "import numpy as np\nimport torch\nimport torch.nn as nn\nfrom scipy import linalg\nfrom tqdm import tqdm\n\nfrom models.archs."
  },
  {
    "path": "Deraining/basicsr/metrics/metric_util.py",
    "chars": 1305,
    "preview": "import numpy as np\n\nfrom utils.matlab_functions import bgr2ycbcr\n\n\ndef reorder_image(img, input_order='HWC'):\n    \"\"\"Reo"
  },
  {
    "path": "Deraining/basicsr/metrics/niqe.py",
    "chars": 8317,
    "preview": "import cv2\nimport math\nimport numpy as np\nfrom scipy.ndimage.filters import convolve\nfrom scipy.special import gamma\n\nfr"
  },
  {
    "path": "Deraining/basicsr/metrics/psnr_ssim.py",
    "chars": 10369,
    "preview": "import cv2\nimport numpy as np\n\nfrom metrics.metric_util import reorder_image, to_y_channel\nimport skimage.metrics\nimport"
  },
  {
    "path": "Deraining/basicsr/models/__init__.py",
    "chars": 1129,
    "preview": "import importlib\nfrom os import path as osp\n\nfrom utils import get_root_logger, scandir\n\n# automatically scan and import"
  },
  {
    "path": "Deraining/basicsr/models/archs/__init__.py",
    "chars": 1216,
    "preview": "import importlib\nfrom os import path as osp\n\nfrom utils import scandir\n\n# automatically scan and import arch modules\n# s"
  },
  {
    "path": "Deraining/basicsr/models/archs/arch_util.py",
    "chars": 8808,
    "preview": "import math\nimport torch\nfrom torch import nn as nn\nfrom torch.nn import functional as F\nfrom torch.nn import init as in"
  },
  {
    "path": "Deraining/basicsr/models/archs/common.py",
    "chars": 1976,
    "preview": "import math\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n\ndef default_conv(in_channels, out_chann"
  },
  {
    "path": "Deraining/basicsr/models/archs/mamber32_arch.py",
    "chars": 25645,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/basicsr/models/archs/mamber33_arch.py",
    "chars": 25312,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/basicsr/models/archs/restormer_arch.py",
    "chars": 12336,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/basicsr/models/base_model.py",
    "chars": 14744,
    "preview": "import logging\nimport os\nimport torch\nfrom collections import OrderedDict\nfrom copy import deepcopy\nfrom torch.nn.parall"
  },
  {
    "path": "Deraining/basicsr/models/image_restoration_model.py",
    "chars": 12258,
    "preview": "import importlib\nimport torch\nfrom collections import OrderedDict\nfrom copy import deepcopy\nfrom os import path as osp\nf"
  },
  {
    "path": "Deraining/basicsr/models/losses/__init__.py",
    "chars": 136,
    "preview": "from .losses import (L1Loss, MSELoss, PSNRLoss, CharbonnierLoss)\n\n__all__ = [\n    'L1Loss', 'MSELoss', 'PSNRLoss', 'Char"
  },
  {
    "path": "Deraining/basicsr/models/losses/loss_util.py",
    "chars": 2903,
    "preview": "import functools\nfrom torch.nn import functional as F\n\n\ndef reduce_loss(loss, reduction):\n    \"\"\"Reduce loss as specifie"
  },
  {
    "path": "Deraining/basicsr/models/losses/losses.py",
    "chars": 4144,
    "preview": "import torch\nfrom torch import nn as nn\nfrom torch.nn import functional as F\nimport numpy as np\n\nfrom models.losses.loss"
  },
  {
    "path": "Deraining/basicsr/models/lr_scheduler.py",
    "chars": 8238,
    "preview": "import math\nfrom collections import Counter\nfrom torch.optim.lr_scheduler import _LRScheduler\nimport torch\n\n\nclass Multi"
  },
  {
    "path": "Deraining/basicsr/test.py",
    "chars": 1995,
    "preview": "import logging\nimport torch\nfrom os import path as osp\n\nfrom data import create_dataloader, create_dataset\nfrom models i"
  },
  {
    "path": "Deraining/basicsr/test_deraining.py",
    "chars": 3150,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/basicsr/train.py",
    "chars": 12200,
    "preview": "import argparse\nimport datetime\nimport logging\nimport math\nimport random\nimport time\nimport torch\nfrom os import path as"
  },
  {
    "path": "Deraining/basicsr/utils/__init__.py",
    "chars": 1107,
    "preview": "from .file_client import FileClient\nfrom .img_util import crop_border, imfrombytes, img2tensor, imwrite, tensor2img, pad"
  },
  {
    "path": "Deraining/basicsr/utils/bundle_submissions.py",
    "chars": 3587,
    "preview": " # Author: Tobias Plötz, TU Darmstadt (tobias.ploetz@visinf.tu-darmstadt.de)\n\n # This file is part of the implementation"
  },
  {
    "path": "Deraining/basicsr/utils/create_lmdb.py",
    "chars": 4976,
    "preview": "import argparse\nfrom os import path as osp\n\nfrom utils import scandir\nfrom utils.lmdb_util import make_lmdb_from_imgs\n\nd"
  },
  {
    "path": "Deraining/basicsr/utils/dist_util.py",
    "chars": 2617,
    "preview": "# Modified from https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/dist_utils.py  # noqa: E501\nimport functools\n"
  },
  {
    "path": "Deraining/basicsr/utils/download_util.py",
    "chars": 2124,
    "preview": "import math\nimport requests\nfrom tqdm import tqdm\n\nfrom .misc import sizeof_fmt\n\n\ndef download_file_from_google_drive(fi"
  },
  {
    "path": "Deraining/basicsr/utils/face_util.py",
    "chars": 9580,
    "preview": "import cv2\nimport numpy as np\nimport os\nimport torch\nfrom skimage import transform as trans\n\nfrom utils import imwrite\n\n"
  },
  {
    "path": "Deraining/basicsr/utils/file_client.py",
    "chars": 6364,
    "preview": "# Modified from https://github.com/open-mmlab/mmcv/blob/master/mmcv/fileio/file_client.py  # noqa: E501\nfrom abc import "
  },
  {
    "path": "Deraining/basicsr/utils/flow_util.py",
    "chars": 6335,
    "preview": "# Modified from https://github.com/open-mmlab/mmcv/blob/master/mmcv/video/optflow.py  # noqa: E501\nimport cv2\nimport num"
  },
  {
    "path": "Deraining/basicsr/utils/img_util.py",
    "chars": 7478,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport torch\nfrom torchvision.utils import make_grid\n\n\ndef img2tenso"
  },
  {
    "path": "Deraining/basicsr/utils/lmdb_util.py",
    "chars": 7268,
    "preview": "import cv2\nimport lmdb\nimport sys\nfrom multiprocessing import Pool\nfrom os import path as osp\nfrom tqdm import tqdm\n\n\nde"
  },
  {
    "path": "Deraining/basicsr/utils/logger.py",
    "chars": 6254,
    "preview": "import datetime\nimport logging\nimport time\n\nfrom .dist_util import get_dist_info, master_only\n\ninitialized_logger = {}\n\n"
  },
  {
    "path": "Deraining/basicsr/utils/matlab_functions.py",
    "chars": 13747,
    "preview": "import math\nimport numpy as np\nimport torch\n\n\ndef cubic(x):\n    \"\"\"cubic function used for calculate_weights_indices.\"\"\""
  },
  {
    "path": "Deraining/basicsr/utils/misc.py",
    "chars": 6037,
    "preview": "import numpy as np\nimport os\nimport random\nimport time\nimport torch\nfrom os import path as osp\n\nfrom .dist_util import m"
  },
  {
    "path": "Deraining/basicsr/utils/options.py",
    "chars": 3669,
    "preview": "import yaml\nfrom collections import OrderedDict\nfrom os import path as osp\n\n\ndef ordered_yaml():\n    \"\"\"Support OrderedD"
  },
  {
    "path": "Deraining/basicsr/utils2.py",
    "chars": 2988,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "Deraining/basicsr/version.py",
    "chars": 137,
    "preview": "# GENERATED VERSION FILE\n# TIME: Tue Jun 18 21:15:31 2024\n__version__ = '1.2.0+ad047fd'\nshort_version = '1.2.0'\nversion_"
  },
  {
    "path": "Deraining/pip.sh",
    "chars": 189,
    "preview": "pip3 install matplotlib scikit-learn scikit-image opencv-python yacs joblib natsort h5py tqdm\npip3 install einops gdown "
  },
  {
    "path": "Deraining/setup.cfg",
    "chars": 558,
    "preview": "[flake8]\nignore =\n    # line break before binary operator (W503)\n    W503,\n    # line break after binary operator (W504)"
  },
  {
    "path": "Deraining/setup.py",
    "chars": 5399,
    "preview": "#!/usr/bin/env python\n\nfrom setuptools import find_packages, setup\n\nimport os\nimport subprocess\nimport sys\nimport time\ni"
  },
  {
    "path": "Deraining/train.sh",
    "chars": 154,
    "preview": "#!/usr/bin/env bash\n\nCONFIG=$1\n\npython3 -m torch.distributed.launch --nproc_per_node=8 --master_port=4321 basicsr/train."
  },
  {
    "path": "Mamba/.gitignore",
    "chars": 380,
    "preview": "# global\n**/__pycache__\n**/_ignore\n**/.dist_test\n**/.pytest_cache\n**/*.egg-info\n**/*.TAG\n**/dist\n**/*.so\n*.so\n**/build\n*"
  },
  {
    "path": "Mamba/kernels/selective_scan/README.md",
    "chars": 3196,
    "preview": "# mamba-mini\nAn efficient implementation of selective scan in one file, works with both cpu and gpu, with corresponding "
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cub_extra.cuh",
    "chars": 1502,
    "preview": "// WarpMask is copied from /usr/local/cuda-12.1/include/cub/util_ptx.cuh\n// PowerOfTwo is copied from /usr/local/cuda-12"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan.cpp",
    "chars": 14878,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_bwd_kernel.cuh",
    "chars": 18185,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_bwd.cu",
    "chars": 543,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_core_fwd.cu",
    "chars": 546,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cus/selective_scan_fwd_kernel.cuh",
    "chars": 10929,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_bwd_kernel_ndstate.cuh",
    "chars": 17415,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_bwd.cu",
    "chars": 551,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_core_fwd.cu",
    "chars": 554,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_fwd_kernel_ndstate.cuh",
    "chars": 10494,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_ndstate.cpp",
    "chars": 14172,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusndstate/selective_scan_ndstate.h",
    "chars": 2277,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_bwd_kernel_nrow.cuh",
    "chars": 21250,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd.cu",
    "chars": 548,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd2.cu",
    "chars": 548,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd3.cu",
    "chars": 547,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_bwd4.cu",
    "chars": 547,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd.cu",
    "chars": 551,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd2.cu",
    "chars": 551,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd3.cu",
    "chars": 551,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_core_fwd4.cu",
    "chars": 551,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_fwd_kernel_nrow.cuh",
    "chars": 12740,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusnrow/selective_scan_nrow.cpp",
    "chars": 15509,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_bwd_kernel_oflex.cuh",
    "chars": 19316,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_bwd.cu",
    "chars": 802,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_core_fwd.cu",
    "chars": 807,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_fwd_kernel_oflex.cuh",
    "chars": 11867,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/cusoflex/selective_scan_oflex.cpp",
    "chars": 15412,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/reverse_scan.cuh",
    "chars": 18069,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/selective_scan.h",
    "chars": 2462,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/selective_scan_common.h",
    "chars": 8445,
    "preview": "/******************************************************************************\n * Copyright (c) 2023, Tri Dao.\n *******"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/static_switch.h",
    "chars": 1278,
    "preview": "// Inspired by https://github.com/NVIDIA/DALI/blob/main/include/dali/core/static_switch.h\n// and https://github.com/pyto"
  },
  {
    "path": "Mamba/kernels/selective_scan/csrc/selective_scan/uninitialized_copy.cuh",
    "chars": 2646,
    "preview": "/******************************************************************************\n * Copyright (c) 2011-2022, NVIDIA CORPO"
  },
  {
    "path": "Mamba/kernels/selective_scan/setup.py",
    "chars": 6101,
    "preview": "# Modified by $@#Anonymous#@$ #20240123\n# Copyright (c) 2023, Albert Gu, Tri Dao.\nimport sys\nimport warnings\nimport os\ni"
  },
  {
    "path": "Mamba/kernels/selective_scan/test_selective_scan.py",
    "chars": 22114,
    "preview": "# Modified by $@#Anonymous#@$ #20240123\n# Copyright (C) 2023, Tri Dao, Albert Gu.\n\nimport math\nimport torch\nimport torch"
  },
  {
    "path": "README.md",
    "chars": 6758,
    "preview": "<div align=\"center\">\n<p align=\"center\"> <img src=\"figs/logo.png\" width=\"200px\"> </p>\n</div>\n\n# VmambaIR: Visual State Sp"
  },
  {
    "path": "RealSR/.gitignore",
    "chars": 1912,
    "preview": "# ignored folders\ndatasets/*\nexperiments/*\nresults/*\ntb_logger/*\nwandb/*\ntmp/*\nrealesrgan/weights/*\n\nversion.py\n\n# Byte-"
  },
  {
    "path": "RealSR/Metric/DISTS/DISTS_pytorch/DISTS_pt.py",
    "chars": 8604,
    "preview": "# This is a pytoch implementation of DISTS metric.\n# Requirements: python >= 3.6, pytorch >= 1.0\n\nimport numpy as np\nimp"
  },
  {
    "path": "RealSR/Metric/DISTS/DISTS_tensorflow/DISTS_tf.py",
    "chars": 5335,
    "preview": "# This is a tensorflow implementation of DISTS metric.\n# Requirements: python >= 3.6, tensorflow-gpu >= 1.15\n\nimport ten"
  },
  {
    "path": "RealSR/Metric/DISTS/LICENSE",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2020 Keyan Ding\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "RealSR/Metric/DISTS/requirements.txt",
    "chars": 10,
    "preview": "torch>=1.0"
  },
  {
    "path": "RealSR/Metric/LPIPS.py",
    "chars": 1639,
    "preview": "import cv2\nimport glob\nimport numpy as np\nimport os.path as osp\nfrom torchvision.transforms.functional import normalize\n"
  },
  {
    "path": "RealSR/Metric/PSNR.py",
    "chars": 1470,
    "preview": "import cv2\nimport glob\nimport numpy as np\nimport os.path as osp\nfrom torchvision.transforms.functional import normalize\n"
  },
  {
    "path": "RealSR/Metric/dists.py",
    "chars": 6232,
    "preview": "# This is a pytoch implementation of DISTS metric.\n# Requirements: python >= 3.6, pytorch >= 1.0\n\nimport numpy as np\nimp"
  },
  {
    "path": "RealSR/Metric/pip.sh",
    "chars": 184,
    "preview": "pip install lpips --index-url http://pypi.douban.com/simple --trusted-host pypi.douban.com\npip install basicsr --index-u"
  },
  {
    "path": "RealSR/VERSION",
    "chars": 8,
    "preview": "0.2.5.0\n"
  },
  {
    "path": "RealSR/VmambaIR/__init__.py",
    "chars": 144,
    "preview": "# flake8: noqa\nfrom .losses import *\nfrom .archs import *\nfrom .data import *\nfrom .models import *\nfrom .utils import *"
  },
  {
    "path": "RealSR/VmambaIR/archs/MambaRealSR11_arch.py",
    "chars": 37737,
    "preview": "## Restormer: Efficient Transformer for High-Resolution Image Restoration\n## Syed Waqas Zamir, Aditya Arora, Salman Khan"
  },
  {
    "path": "RealSR/VmambaIR/archs/__init__.py",
    "chars": 498,
    "preview": "import importlib\nfrom basicsr.utils import scandir\nfrom os import path as osp\n\n# automatically scan and import arch modu"
  },
  {
    "path": "RealSR/VmambaIR/archs/attention.py",
    "chars": 3371,
    "preview": "import torch.nn as nn\nimport math\nimport torch as th\nclass QKVAttentionLegacy(nn.Module):\n    \"\"\"\n    A module which per"
  },
  {
    "path": "RealSR/VmambaIR/archs/common.py",
    "chars": 1976,
    "preview": "import math\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n\ndef default_conv(in_channels, out_chann"
  },
  {
    "path": "RealSR/VmambaIR/archs/discriminator_arch.py",
    "chars": 3020,
    "preview": "from basicsr.utils.registry import ARCH_REGISTRY\nfrom torch import nn as nn\nfrom torch.nn import functional as F\nfrom to"
  },
  {
    "path": "RealSR/VmambaIR/archs/srvgg_arch.py",
    "chars": 2722,
    "preview": "from basicsr.utils.registry import ARCH_REGISTRY\nfrom torch import nn as nn\nfrom torch.nn import functional as F\n\n\n@ARCH"
  },
  {
    "path": "RealSR/VmambaIR/data/__init__.py",
    "chars": 517,
    "preview": "import importlib\nfrom basicsr.utils import scandir\nfrom os import path as osp\n\n# automatically scan and import dataset m"
  },
  {
    "path": "RealSR/VmambaIR/data/data_util.py",
    "chars": 14540,
    "preview": "import cv2\ncv2.setNumThreads(1)\nimport numpy as np\nimport torch\nfrom os import path as osp\nfrom torch.nn import function"
  },
  {
    "path": "RealSR/VmambaIR/data/deblur_paired_dataset.py",
    "chars": 14305,
    "preview": "from torch.utils import data as data\nfrom torchvision.transforms.functional import normalize\n\nfrom VmambaIR.data.data_ut"
  },
  {
    "path": "RealSR/VmambaIR/data/diffir_dataset.py",
    "chars": 4769,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport os.path as osp\nimport random\nimport time\nimport torch\nfrom ba"
  },
  {
    "path": "RealSR/VmambaIR/data/diffir_paired_dataset.py",
    "chars": 5013,
    "preview": "import os\nfrom basicsr.data.data_util import paired_paths_from_folder, paired_paths_from_lmdb\nfrom basicsr.data.transfor"
  },
  {
    "path": "RealSR/VmambaIR/data/gaussiandenoising_paired_dataset.py",
    "chars": 9673,
    "preview": "from torch.utils import data as data\nfrom torchvision.transforms.functional import normalize\n\nfrom VmambaIR.data.data_ut"
  },
  {
    "path": "RealSR/VmambaIR/data/realesrgan400_dataset.py",
    "chars": 8729,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport os.path as osp\nimport random\nimport time\nimport torch\nfrom ba"
  },
  {
    "path": "RealSR/VmambaIR/data/realesrgan_dataset.py",
    "chars": 8723,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport os.path as osp\nimport random\nimport time\nimport torch\nfrom ba"
  },
  {
    "path": "RealSR/VmambaIR/data/realesrgan_memery_dataset.py",
    "chars": 8737,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport os.path as osp\nimport random\nimport time\nimport torch\nfrom ba"
  },
  {
    "path": "RealSR/VmambaIR/data/realesrgan_paired_dataset.py",
    "chars": 5014,
    "preview": "import os\nfrom basicsr.data.data_util import paired_paths_from_folder, paired_paths_from_lmdb\nfrom basicsr.data.transfor"
  },
  {
    "path": "RealSR/VmambaIR/data/transforms.py",
    "chars": 8944,
    "preview": "import cv2\nimport random\nimport numpy as np\n\ndef mod_crop(img, scale):\n    \"\"\"Mod crop images, used during testing.\n\n   "
  },
  {
    "path": "RealSR/VmambaIR/losses/__init__.py",
    "chars": 499,
    "preview": "import importlib\nfrom basicsr.utils import scandir\nfrom os import path as osp\n\n# automatically scan and import arch modu"
  },
  {
    "path": "RealSR/VmambaIR/losses/my_loss.py",
    "chars": 1265,
    "preview": "import torch\nfrom torch import nn as nn\nfrom torch.nn import functional as F\nfrom basicsr.utils.registry import LOSS_REG"
  },
  {
    "path": "RealSR/VmambaIR/models/MambaRealSRGAN_model.py",
    "chars": 15826,
    "preview": "import numpy as np\nimport random\nimport torch\nfrom basicsr.data.degradations import random_add_gaussian_noise_pt, random"
  },
  {
    "path": "RealSR/VmambaIR/models/MambaRealSRGANtest_model.py",
    "chars": 15838,
    "preview": "import numpy as np\nimport random\nimport torch\nfrom basicsr.data.degradations import random_add_gaussian_noise_pt, random"
  },
  {
    "path": "RealSR/VmambaIR/models/MambaRealSR_model.py",
    "chars": 14931,
    "preview": "import numpy as np\nimport random\nimport torch\nfrom basicsr.data.degradations import random_add_gaussian_noise_pt, random"
  },
  {
    "path": "RealSR/VmambaIR/models/__init__.py",
    "chars": 508,
    "preview": "import importlib\nfrom basicsr.utils import scandir\nfrom os import path as osp\n\n# automatically scan and import model mod"
  },
  {
    "path": "RealSR/VmambaIR/models/lr_scheduler.py",
    "chars": 8238,
    "preview": "import math\nfrom collections import Counter\nfrom torch.optim.lr_scheduler import _LRScheduler\nimport torch\n\n\nclass Multi"
  },
  {
    "path": "RealSR/VmambaIR/test.py",
    "chars": 380,
    "preview": "# flake8: noqa\nimport sys\nimport os.path as osp\n\nroot_path = osp.abspath(osp.join(__file__, osp.pardir, osp.pardir))\nsys"
  },
  {
    "path": "RealSR/VmambaIR/train.py",
    "chars": 467,
    "preview": "# flake8: noqa\nimport sys\nimport os.path as osp\n\nroot_path = osp.abspath(osp.join(__file__, osp.pardir, osp.pardir))\nsys"
  },
  {
    "path": "RealSR/VmambaIR/train_pipeline.py",
    "chars": 10429,
    "preview": "import datetime\nimport logging\nimport math\nimport time\nimport torch\nfrom os import path as osp\n\nfrom basicsr.data import"
  },
  {
    "path": "RealSR/VmambaIR/utils/__init__.py",
    "chars": 1107,
    "preview": "from .file_client import FileClient\nfrom .img_util import crop_border, imfrombytes, img2tensor, imwrite, tensor2img, pad"
  },
  {
    "path": "RealSR/VmambaIR/utils/bundle_submissions.py",
    "chars": 3587,
    "preview": " # Author: Tobias Plötz, TU Darmstadt (tobias.ploetz@visinf.tu-darmstadt.de)\n\n # This file is part of the implementation"
  },
  {
    "path": "RealSR/VmambaIR/utils/create_lmdb.py",
    "chars": 4994,
    "preview": "import argparse\nfrom os import path as osp\n\nfrom VmambaIR.utils import scandir\nfrom VmambaIR.utils.lmdb_util import make"
  },
  {
    "path": "RealSR/VmambaIR/utils/dist_util.py",
    "chars": 2617,
    "preview": "# Modified from https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/dist_utils.py  # noqa: E501\nimport functools\n"
  },
  {
    "path": "RealSR/VmambaIR/utils/download_util.py",
    "chars": 2124,
    "preview": "import math\nimport requests\nfrom tqdm import tqdm\n\nfrom .misc import sizeof_fmt\n\n\ndef download_file_from_google_drive(fi"
  },
  {
    "path": "RealSR/VmambaIR/utils/face_util.py",
    "chars": 9589,
    "preview": "import cv2\nimport numpy as np\nimport os\nimport torch\nfrom skimage import transform as trans\n\nfrom VmambaIR.utils import "
  },
  {
    "path": "RealSR/VmambaIR/utils/file_client.py",
    "chars": 6364,
    "preview": "# Modified from https://github.com/open-mmlab/mmcv/blob/master/mmcv/fileio/file_client.py  # noqa: E501\nfrom abc import "
  },
  {
    "path": "RealSR/VmambaIR/utils/flow_util.py",
    "chars": 6335,
    "preview": "# Modified from https://github.com/open-mmlab/mmcv/blob/master/mmcv/video/optflow.py  # noqa: E501\nimport cv2\nimport num"
  },
  {
    "path": "RealSR/VmambaIR/utils/img_util.py",
    "chars": 7478,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport torch\nfrom torchvision.utils import make_grid\n\n\ndef img2tenso"
  },
  {
    "path": "RealSR/VmambaIR/utils/lmdb_util.py",
    "chars": 7268,
    "preview": "import cv2\nimport lmdb\nimport sys\nfrom multiprocessing import Pool\nfrom os import path as osp\nfrom tqdm import tqdm\n\n\nde"
  },
  {
    "path": "RealSR/VmambaIR/utils/logger.py",
    "chars": 6262,
    "preview": "import datetime\nimport logging\nimport time\n\nfrom .dist_util import get_dist_info, master_only\n\ninitialized_logger = {}\n\n"
  },
  {
    "path": "RealSR/VmambaIR/utils/matlab_functions.py",
    "chars": 13747,
    "preview": "import math\nimport numpy as np\nimport torch\n\n\ndef cubic(x):\n    \"\"\"cubic function used for calculate_weights_indices.\"\"\""
  },
  {
    "path": "RealSR/VmambaIR/utils/misc.py",
    "chars": 6037,
    "preview": "import numpy as np\nimport os\nimport random\nimport time\nimport torch\nfrom os import path as osp\n\nfrom .dist_util import m"
  },
  {
    "path": "RealSR/VmambaIR/utils/options.py",
    "chars": 3669,
    "preview": "import yaml\nfrom collections import OrderedDict\nfrom os import path as osp\n\n\ndef ordered_yaml():\n    \"\"\"Support OrderedD"
  },
  {
    "path": "RealSR/VmambaIR/utils.py",
    "chars": 11827,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport queue\nimport threading\nimport torch\nfrom basicsr.utils.downlo"
  },
  {
    "path": "RealSR/VmambaIR/weights/README.md",
    "chars": 54,
    "preview": "# Weights\n\nPut the downloaded weights to this folder.\n"
  },
  {
    "path": "RealSR/inference.py",
    "chars": 2439,
    "preview": "import cv2\nimport math\nimport numpy as np\nimport os\nimport os.path as osp\nimport random\nimport time\nimport torch\nfrom ba"
  },
  {
    "path": "RealSR/ldm/classifier.py",
    "chars": 10276,
    "preview": "import os\nimport torch\nimport pytorch_lightning as pl\nfrom omegaconf import OmegaConf\nfrom torch.nn import functional as"
  },
  {
    "path": "RealSR/ldm/lr_scheduler.py",
    "chars": 3882,
    "preview": "import numpy as np\n\n\nclass LambdaWarmUpCosineScheduler:\n    \"\"\"\n    note: use with a base_lr of 1.0\n    \"\"\"\n    def __in"
  },
  {
    "path": "RealSR/ldm/util.py",
    "chars": 5857,
    "preview": "import importlib\n\nimport torch\nimport numpy as np\nfrom collections import abc\nfrom einops import rearrange\nfrom functool"
  },
  {
    "path": "RealSR/ldm/util2.py",
    "chars": 9561,
    "preview": "# adopted from\n# https://github.com/openai/improved-diffusion/blob/main/improved_diffusion/gaussian_diffusion.py\n# and\n#"
  },
  {
    "path": "RealSR/metric.sh",
    "chars": 705,
    "preview": "\n#folder_gt=/mnt/bn/shiyuan-arnold/dataset/NTIRE2020/track1-valid-gt\n#folder_restored=/mnt/bn/shiyuan-arnold/code/Vmamba"
  },
  {
    "path": "RealSR/options/mambaSR11GAN_x4.yml",
    "chars": 4382,
    "preview": "# general settings\nname: MambaRealSR11GAN\nmodel_type: MambaRealSRGAN\nscale: 4\nnum_gpu: auto  # auto: can infer from your"
  },
  {
    "path": "RealSR/options/mambaSR11_x4.yml",
    "chars": 3425,
    "preview": "# general settings\nname: MambaRealSR11\nmodel_type: MambaRealSR\nscale: 4\nnum_gpu: auto  # auto: can infer from your visib"
  },
  {
    "path": "RealSR/options/mambaSR11m_x4.yml",
    "chars": 3411,
    "preview": "# general settings\nname: MambaRealSR11m\nmodel_type: MambaRealSR\nscale: 4\nnum_gpu: auto  # auto: can infer from your visi"
  },
  {
    "path": "RealSR/options/test_mambaSR11GAN_x4.yml",
    "chars": 1216,
    "preview": "# general settings\nname: test_mambaSR11GAN2\nmodel_type: MambaRealSRGANtest\nscale: 4\nnum_gpu: auto  # auto: can infer fro"
  },
  {
    "path": "RealSR/pip.sh",
    "chars": 283,
    "preview": "sudo apt-get update\nsudo apt install tmux\nsudo apt install libgl1-mesa-glx\npip3 install basicsr \npip3 install -r require"
  },
  {
    "path": "RealSR/requirements.txt",
    "chars": 105,
    "preview": "basicsr>=1.3.3.11\nfacexlib>=0.2.0.3\ngfpgan>=0.2.1\nnumpy\nopencv-python\nPillow\ntorch>=1.7\ntorchvision\ntqdm\n"
  },
  {
    "path": "RealSR/scripts/Metric/DISTS/DISTS_pytorch/DISTS_pt.py",
    "chars": 8604,
    "preview": "# This is a pytoch implementation of DISTS metric.\n# Requirements: python >= 3.6, pytorch >= 1.0\n\nimport numpy as np\nimp"
  },
  {
    "path": "RealSR/scripts/Metric/DISTS/DISTS_tensorflow/DISTS_tf.py",
    "chars": 5335,
    "preview": "# This is a tensorflow implementation of DISTS metric.\n# Requirements: python >= 3.6, tensorflow-gpu >= 1.15\n\nimport ten"
  },
  {
    "path": "RealSR/scripts/Metric/DISTS/LICENSE",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2020 Keyan Ding\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "RealSR/scripts/Metric/DISTS/requirements.txt",
    "chars": 10,
    "preview": "torch>=1.0"
  },
  {
    "path": "RealSR/scripts/Metric/LPIPS.py",
    "chars": 1639,
    "preview": "import cv2\nimport glob\nimport numpy as np\nimport os.path as osp\nfrom torchvision.transforms.functional import normalize\n"
  },
  {
    "path": "RealSR/scripts/Metric/PSNR.py",
    "chars": 1470,
    "preview": "import cv2\nimport glob\nimport numpy as np\nimport os.path as osp\nfrom torchvision.transforms.functional import normalize\n"
  },
  {
    "path": "RealSR/scripts/Metric/dists.py",
    "chars": 6232,
    "preview": "# This is a pytoch implementation of DISTS metric.\n# Requirements: python >= 3.6, pytorch >= 1.0\n\nimport numpy as np\nimp"
  },
  {
    "path": "RealSR/scripts/Metric/pip.sh",
    "chars": 184,
    "preview": "pip install lpips --index-url http://pypi.douban.com/simple --trusted-host pypi.douban.com\npip install basicsr --index-u"
  },
  {
    "path": "RealSR/scripts/extract_subimages.py",
    "chars": 5116,
    "preview": "import argparse\nimport cv2\nimport numpy as np\nimport os\nimport sys\nfrom basicsr.utils import scandir\nfrom multiprocessin"
  },
  {
    "path": "RealSR/scripts/extract_subimages_DF2K.py",
    "chars": 5092,
    "preview": "import argparse\nimport cv2\nimport numpy as np\nimport os\nimport sys\nfrom basicsr.utils import scandir\nfrom multiprocessin"
  },
  {
    "path": "RealSR/scripts/generate_meta_info.py",
    "chars": 2114,
    "preview": "import argparse\nimport cv2\nimport glob\nimport os\n\n\ndef main(args):\n    txt_file = open(args.meta_info, 'w')\n    for fold"
  },
  {
    "path": "RealSR/scripts/generate_meta_info_DF2K.py",
    "chars": 2221,
    "preview": "import argparse\nimport cv2\nimport glob\nimport os\n\n\ndef main(args):\n    txt_file = open(args.meta_info, 'w')\n    for fold"
  },
  {
    "path": "RealSR/scripts/generate_meta_info_DF2K_memo.py",
    "chars": 2221,
    "preview": "import argparse\nimport cv2\nimport glob\nimport os\n\n\ndef main(args):\n    txt_file = open(args.meta_info, 'w')\n    for fold"
  },
  {
    "path": "RealSR/scripts/generate_meta_info_OST.py",
    "chars": 2118,
    "preview": "import argparse\nimport cv2\nimport glob\nimport os\n\n\ndef main(args):\n    txt_file = open(args.meta_info, 'w')\n    for fold"
  },
  {
    "path": "RealSR/scripts/generate_meta_info_pairdata.py",
    "chars": 1987,
    "preview": "import argparse\nimport glob\nimport os\n\n\ndef main(args):\n    txt_file = open(args.meta_info, 'w')\n    # sca images\n    im"
  },
  {
    "path": "RealSR/scripts/generate_multiscale_DF2K.py",
    "chars": 1777,
    "preview": "import argparse\nimport glob\nimport os\nfrom PIL import Image\n\n\ndef main(args):\n    # For DF2K, we consider the following "
  },
  {
    "path": "RealSR/scripts/options/mambaSR11GAN_x4.yml",
    "chars": 4382,
    "preview": "# general settings\nname: MambaRealSR11GAN\nmodel_type: MambaRealSRGAN\nscale: 4\nnum_gpu: auto  # auto: can infer from your"
  }
]

// ... and 104 more files (download for full content)

About this extraction

This page contains the full source code of the AlphacatPlus/VmambaIR GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 304 files (4.1 MB), approximately 1.1M tokens, and a symbol index with 1327 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!