Full Code of babakcode/flutter_gemini for AI

master a08d004b0d58 cached
245 files
634.2 KB
206.7k tokens
246 symbols
1 requests
Download .txt
Showing preview only (703K chars total). Download the full file or copy to clipboard to get everything.
Repository: babakcode/flutter_gemini
Branch: master
Commit: a08d004b0d58
Files: 245
Total size: 634.2 KB

Directory structure:
gitextract_vpbqk1zj/

├── .gitignore
├── .metadata
├── CHANGELOG.md
├── LICENSE
├── README.md
├── analysis_options.yaml
├── assets/
│   └── json_models/
│       ├── embeding_response.json
│       ├── embedings_response.json
│       ├── gemini_model.json
│       ├── gemini_response.json
│       └── generation_config.json
├── example/
│   ├── .gitignore
│   ├── .metadata
│   ├── README.md
│   ├── analysis_options.yaml
│   ├── android/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── debug/
│   │   │       │   └── AndroidManifest.xml
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   ├── kotlin/
│   │   │       │   │   └── com/
│   │   │       │   │       └── example/
│   │   │       │   │           └── example/
│   │   │       │   │               └── MainActivity.kt
│   │   │       │   └── res/
│   │   │       │       ├── drawable/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── drawable-v21/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── values/
│   │   │       │       │   └── styles.xml
│   │   │       │       └── values-night/
│   │   │       │           └── styles.xml
│   │   │       └── profile/
│   │   │           └── AndroidManifest.xml
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   └── settings.gradle
│   ├── ios/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── AppFrameworkInfo.plist
│   │   │   ├── Debug.xcconfig
│   │   │   └── Release.xcconfig
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── LaunchImage.imageset/
│   │   │   │       ├── Contents.json
│   │   │   │       └── README.md
│   │   │   ├── Base.lproj/
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Info.plist
│   │   │   └── Runner-Bridging-Header.h
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata/
│   │   │   │       ├── IDEWorkspaceChecks.plist
│   │   │   │       └── WorkspaceSettings.xcsettings
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       ├── IDEWorkspaceChecks.plist
│   │   │       └── WorkspaceSettings.xcsettings
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── lib/
│   │   ├── main.dart
│   │   └── widgets/
│   │       ├── chat_input_box.dart
│   │       └── item_image_view.dart
│   ├── linux/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── flutter/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── generated_plugin_registrant.cc
│   │   │   ├── generated_plugin_registrant.h
│   │   │   └── generated_plugins.cmake
│   │   ├── main.cc
│   │   ├── my_application.cc
│   │   └── my_application.h
│   ├── macos/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── Flutter-Debug.xcconfig
│   │   │   ├── Flutter-Release.xcconfig
│   │   │   └── GeneratedPluginRegistrant.swift
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   └── AppIcon.appiconset/
│   │   │   │       └── Contents.json
│   │   │   ├── Base.lproj/
│   │   │   │   └── MainMenu.xib
│   │   │   ├── Configs/
│   │   │   │   ├── AppInfo.xcconfig
│   │   │   │   ├── Debug.xcconfig
│   │   │   │   ├── Release.xcconfig
│   │   │   │   └── Warnings.xcconfig
│   │   │   ├── DebugProfile.entitlements
│   │   │   ├── Info.plist
│   │   │   ├── MainFlutterWindow.swift
│   │   │   └── Release.entitlements
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   └── xcshareddata/
│   │   │   │       └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── pubspec.yaml
│   ├── test/
│   │   └── widget_test.dart
│   ├── web/
│   │   ├── index.html
│   │   └── manifest.json
│   └── windows/
│       ├── .gitignore
│       ├── CMakeLists.txt
│       ├── flutter/
│       │   ├── CMakeLists.txt
│       │   ├── generated_plugin_registrant.cc
│       │   ├── generated_plugin_registrant.h
│       │   └── generated_plugins.cmake
│       └── runner/
│           ├── CMakeLists.txt
│           ├── Runner.rc
│           ├── flutter_window.cpp
│           ├── flutter_window.h
│           ├── main.cpp
│           ├── resource.h
│           ├── runner.exe.manifest
│           ├── utils.cpp
│           ├── utils.h
│           ├── win32_window.cpp
│           └── win32_window.h
├── example_old/
│   ├── .gitignore
│   ├── .metadata
│   ├── README.md
│   ├── analysis_options.yaml
│   ├── android/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── debug/
│   │   │       │   └── AndroidManifest.xml
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   ├── kotlin/
│   │   │       │   │   └── com/
│   │   │       │   │       └── example/
│   │   │       │   │           └── example/
│   │   │       │   │               └── MainActivity.kt
│   │   │       │   └── res/
│   │   │       │       ├── drawable/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── drawable-v21/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── values/
│   │   │       │       │   └── styles.xml
│   │   │       │       └── values-night/
│   │   │       │           └── styles.xml
│   │   │       └── profile/
│   │   │           └── AndroidManifest.xml
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   └── settings.gradle
│   ├── assets/
│   │   └── lottie/
│   │       └── ai.json
│   ├── ios/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── AppFrameworkInfo.plist
│   │   │   ├── Debug.xcconfig
│   │   │   └── Release.xcconfig
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── LaunchImage.imageset/
│   │   │   │       ├── Contents.json
│   │   │   │       └── README.md
│   │   │   ├── Base.lproj/
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Info.plist
│   │   │   └── Runner-Bridging-Header.h
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata/
│   │   │   │       ├── IDEWorkspaceChecks.plist
│   │   │   │       └── WorkspaceSettings.xcsettings
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       ├── IDEWorkspaceChecks.plist
│   │   │       └── WorkspaceSettings.xcsettings
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── lib/
│   │   ├── main.dart
│   │   ├── sections/
│   │   │   ├── chat.dart
│   │   │   ├── chat_stream.dart
│   │   │   ├── embed_batch_contents.dart
│   │   │   ├── embed_content.dart
│   │   │   ├── response_widget_stream.dart
│   │   │   ├── stream.dart
│   │   │   ├── text_and_image.dart
│   │   │   └── text_only.dart
│   │   └── widgets/
│   │       ├── chat_input_box.dart
│   │       └── item_image_view.dart
│   ├── linux/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── flutter/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── generated_plugin_registrant.cc
│   │   │   ├── generated_plugin_registrant.h
│   │   │   └── generated_plugins.cmake
│   │   ├── main.cc
│   │   ├── my_application.cc
│   │   └── my_application.h
│   ├── macos/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── Flutter-Debug.xcconfig
│   │   │   ├── Flutter-Release.xcconfig
│   │   │   └── GeneratedPluginRegistrant.swift
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   └── AppIcon.appiconset/
│   │   │   │       └── Contents.json
│   │   │   ├── Base.lproj/
│   │   │   │   └── MainMenu.xib
│   │   │   ├── Configs/
│   │   │   │   ├── AppInfo.xcconfig
│   │   │   │   ├── Debug.xcconfig
│   │   │   │   ├── Release.xcconfig
│   │   │   │   └── Warnings.xcconfig
│   │   │   ├── DebugProfile.entitlements
│   │   │   ├── Info.plist
│   │   │   ├── MainFlutterWindow.swift
│   │   │   └── Release.entitlements
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   └── xcshareddata/
│   │   │   │       └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── pubspec.yaml
│   ├── test/
│   │   └── widget_test.dart
│   ├── web/
│   │   ├── index.html
│   │   └── manifest.json
│   └── windows/
│       ├── .gitignore
│       ├── CMakeLists.txt
│       ├── flutter/
│       │   ├── CMakeLists.txt
│       │   ├── generated_plugin_registrant.cc
│       │   ├── generated_plugin_registrant.h
│       │   └── generated_plugins.cmake
│       └── runner/
│           ├── CMakeLists.txt
│           ├── Runner.rc
│           ├── flutter_window.cpp
│           ├── flutter_window.h
│           ├── main.cpp
│           ├── resource.h
│           ├── runner.exe.manifest
│           ├── utils.cpp
│           ├── utils.h
│           ├── win32_window.cpp
│           └── win32_window.h
├── lib/
│   ├── flutter_gemini.dart
│   └── src/
│       ├── config/
│       │   └── constants.dart
│       ├── implement/
│       │   ├── gemini_implement.dart
│       │   └── gemini_service.dart
│       ├── init.dart
│       ├── models/
│       │   ├── candidates/
│       │   │   └── candidates.dart
│       │   ├── content/
│       │   │   └── content.dart
│       │   ├── gemini_file/
│       │   │   └── gemini_file_part.dart
│       │   ├── gemini_model/
│       │   │   └── gemini_model.dart
│       │   ├── gemini_response/
│       │   │   └── gemini_response.dart
│       │   ├── gemini_safety/
│       │   │   ├── gemini_safety.dart
│       │   │   ├── gemini_safety_category.dart
│       │   │   └── gemini_safety_threshold.dart
│       │   ├── generation_config/
│       │   │   └── generation_config.dart
│       │   ├── part/
│       │   │   ├── file_data_part.dart
│       │   │   ├── file_part.dart
│       │   │   ├── inline_data.dart
│       │   │   ├── inline_part.dart
│       │   │   ├── part.dart
│       │   │   └── text_part.dart
│       │   ├── parts/
│       │   │   └── parts.dart
│       │   ├── prompt_feedback/
│       │   │   └── prompt_feedback.dart
│       │   └── safety_ratings/
│       │       └── safety_ratings.dart
│       ├── repository/
│       │   ├── api_interface.dart
│       │   └── gemini_interface.dart
│       └── utils/
│           ├── candidate_extension.dart
│           ├── gemini_data_builder.dart
│           ├── gemini_exception.dart
│           ├── gemini_exception_handler_mixin.dart
│           ├── gemini_model_manager.dart
│           ├── gemini_request_handler.dart
│           └── gemini_response_parser.dart
├── pubspec.yaml
└── test/
    ├── features/
    │   ├── chat_test.dart
    │   ├── count_tokens_test.dart
    │   ├── info_test.dart
    │   ├── list_models_test.dart
    │   └── text_test.dart
    └── flutter_gemini_test.dart

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

================================================
FILE: .gitignore
================================================
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

*.env

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/

# Flutter/Dart/Pub related
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
/pubspec.lock
**/doc/api/
.dart_tool/
.packages
build/


================================================
FILE: .metadata
================================================
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
  revision: "2f708eb8396e362e280fac22cf171c2cb467343c"
  channel: "stable"

project_type: package


================================================
FILE: CHANGELOG.md
================================================
# 3.0.0
* ## new Feature
1. Now you can use this package as a **dart** pkg.
2. prompt
3. promptStream

## 2.0.5
* ## Fixed
* `gemini-pro-vision` is depreciated, changed to `gemini-1.5-flash`

## 2.0.4-dev.1
* ## new feature
* reInitialize
* add mime type from Uint8List

## 2.0.3
* ## new feature
* GeminiException( message , statusCode)

## 2.0.1
* ## new feature
* Decode utf-8
* streamChat

## 2.0.0
* work for lower Dart SDK version

## 2.0.0-dev-1

* ## Add new crucial features
* ##### streamGenerateContent
* The model usually gives a response once it finishes generating the entire output. To speed up interactions, you can opt not to wait for the complete result and instead use streaming to manage partial results.
* ##### batchEmbedContents
* ##### embedContent
* Embedding is a method that transforms information, like text, into a list of floating-point numbers in an array. Gemini enables the representation of text, such as words or sentences, in a vectorized form. This facilitates the comparison of embeddings, allowing for the identification of similarities between texts through mathematical techniques like cosine similarity. For instance, texts with similar subject matter or sentiment should exhibit similar embeddings.
* ## Updates
* #### textAndImage
* Convert the image property to the `images`
```diff
- image: file.readAsBytesSync(), /// image
+ images: [file.readAsBytesSync()] /// list of images
```

## 1.0.1

* update pubspec

## 1.0.0

* first publish


================================================
FILE: LICENSE
================================================
BSD 3-Clause License

Copyright (c) 2023, Babak Gahremanzadeh (BabakCode)

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its
   contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

================================================
FILE: README.md
================================================
# Flutter Gemini

Google Gemini is a set of cutting-edge large language models (LLMs) designed to be the driving force behind Google's future AI initiatives.

![gemini_github_cover](https://github.com/babakcode/flutter_gemini/assets/31356659/104a436c-cc1e-4523-aeeb-edfb50f87346)

This package provides a powerful bridge between your Flutter application and Google's revolutionary Gemini AI. It empowers you to seamlessly integrate Gemini's capabilities into your app, unlocking possibilities for building innovative, intelligent, and engaging experiences that redefine user interaction.

## Features

- Set up your API key [scroll](#getting-started)
- Initialize Gemini [scroll](#initialize-gemini)
- Content-based APIs [scroll](#content-based-apis)
  - promptStream [scroll](#prompt-stream)
  - prompt [scroll](#prompt)
  - Multi-turn conversations (chat) [scroll](#multi-turn-conversations-chat)
  - Count tokens [scroll](#count-tokens)
  - Model info [scroll](#model-info)
  - List models [scroll](#list-models)
  - EmbedContents and batchEmbedContents [scroll](#embedcontents-and-batchembedcontents)
- Advanced Usage [scroll](#advanced-usage)
  - Safety settings [scroll](#safety-settings)
  - Generation configuration [scroll](#generation-configuration)
- Legacy APIs [scroll](#legacy-apis)
  - Stream Generate Content [scroll](#stream-generate-content)
  - Text-only input [scroll](#text-only-input)
  - Text-and-image input [scroll](#text-and-image-input)
    

## Getting started

To use the Gemini API, you'll need an API key. If you don't already have one, create a key in Google AI Studio. [Get an API key](https://ai.google.dev/).

[//]: # (### online demo)

[//]: # ()
[//]: # ([https://babakcode.github.io/flutter_gemini](https://babakcode.github.io/flutter_gemini))

## Initialize Gemini

For initialization, you must call the init constructor for Flutter Gemini in the main function.

```dart
const apiKey = '--- Your Gemini Api Key ---';

void main() {

  /// Add this line
  Gemini.init(apiKey: apiKey);

  runApp(const MyApp());
}
```

Now you can create an instance

## Content-based APIs

### Prompt Stream

Offers a powerful method `promptStream` that allows developers to interact with
a stream of data in a flexible and efficient way. One of the key features of this package is
the ability to use different types of `Part` classes,
enabling the transmission of various forms of data.

**Usage Example**
To use the promptStream method, you can pass an array of Part objects, where each Part can represent different types of data. For instance, a simple request to ask a question could look like this:

```dart
Gemini.instance.promptStream(parts: [
  Part.text('Write a story about a magic backpack'),
]).listen((value) {
  print(value?.output);
});
```

#### Available Part Types

1. `Part.text` | `TextPart`: For sending text data.
2. `Part.inline` | `InlinePart`: For sending raw byte data.
3. `Part.file` | `FilePart`: For sending uploaded file to Gemini cloud ( will be updated )
4. ...
5. ( Others will be added ASAP )

These `Part` types are abstracted into a base class, providing flexibility to add more data types in the future. This modular design ensures that users can easily extend the package to accommodate their specific needs, whether it's for text, files, or binary data.

By using these different `Part` classes, you can tailor the behavior of the `promptStream` method to meet your application's specific requirements.

### Prompt

You can send a question or request and get an immediate response using the `prompt` method. This method works with various `Part` types to allow flexible input, such as text, videos, or audios.

**Usage Example**

The following example shows how to use the `Flutter_Gemini` package with the `Future` approach to send a text request and handle the response:

```dart
Gemini.instance.prompt(parts: [
  Part.text('Write a story about a magic backpack'),
]).then((value) {
  print(value?.output);
}).catchError((e) {
  print('error ${e}');
});
```

*Explanation*:

* The `prompt` method takes a list of `Part` objects, such as `Part.text` ( `TextPart` ), to define the request.
* The response is processed once it is available, and you can access the result via value?.output.
* Errors can be handled using catchError.


This method provides a straightforward way to handle asynchronous tasks without dealing with streams.

#### Multi-turn conversations (chat)

Using Gemini, you can build freeform conversations across multiple turns.

```dart
  final gemini = Gemini.instance;

  gemini.chat([
    Content(parts: [
      Part.text('Write the first line of a story about a magic backpack.')],
        role: 'user'),
    Content(parts: [ 
      Part.text('In the bustling city of Meadow brook, lived a young girl named Sophie. She was a bright and curious soul with an imaginative mind.')],
        role: 'model'),
    Content(parts: [ 
      Part.text('Can you set it in a quiet village in 1600s France?')], 
        role: 'user'),
    ])
        .then((value) => log(value?.output ?? 'without output'))
        .catchError((e) => log('chat', error: e));
```


![Flutter gemini Text and Image example gif](https://miro.medium.com/v2/resize:fit:828/format:webp/1*MoVz4Z5KpxVUocEHLmzDew.gif "Flutter_Gemini example")


#### Count tokens

When using long prompts, it might be useful to count tokens before sending any content to the model.

```dart
final gemini = Gemini.instance;

gemini.countTokens("Write a story about a magic backpack.")
    .then((value) => print(value)) /// output like: `6` or `null`
    .catchError((e) => log('countTokens', error: e));
```

#### Model info

If you `GET` a model's URL, the API uses the `get` method to return information about that model such as version, display name, input token limit, etc.

```dart
final gemini = Gemini.instance;

gemini.info(model: 'gemini-pro')
    .then((info) => print(info))
    .catchError((e) => log('info', error: e));
```

#### List models

If you `GET` the `models` directory, it uses the `list` method to list all of the models available through the API, including both the Gemini and PaLM family models.

```dart
final gemini = Gemini.instance;

gemini.listModels()
    .then((models) => print(models)) /// list
    .catchError((e) => log('listModels', error: e));
```

#### embedContents and batchEmbedContents

Embedding is a method that transforms information, like text, into a list of floating-point numbers in an array. Gemini enables the representation of text, such as words or sentences, in a vectorized form. This facilitates the comparison of embeddings, allowing for the identification of similarities between texts through mathematical techniques like cosine similarity. For instance, texts with similar subject matter or sentiment should exhibit similar embeddings.

```dart
/// `embedContents`
gemini.embedContent('text').then((value) {
  print(value); /// output like: [ 1.3231, 1.33421, -0.123123 ]
});

/// `batchEmbedContents`
gemini.batchEmbedContents(['text 1', 'text 2']).then((value) {
  print(value); /// output like: [ [ 1.3231, 1.33421, -0.123123 ] ]
});
```

## Advanced Usage

The following sections discuss advanced use cases and lower-level details of the Flutter SDK for the Gemini API.

#### Safety settings

The `safety_settings` argument lets you configure what the model blocks and allows in both prompts and responses.

```dart
gemini.streamGenerateContent('Utilizing Google Ads in Flutter',
          safetySettings: [
            SafetySetting(
              category: SafetyCategory.harassment,
              threshold: SafetyThreshold.blockLowAndAbove,
            ),
            SafetySetting(
              category: SafetyCategory.hateSpeech,
              threshold: SafetyThreshold.blockOnlyHigh,
            )
          ])
        .listen((value) {})
        .onError((e) {});
```

#### Generation configuration

The `generation_config` argument allows you to modify the generation parameters.

```dart
gemini.streamGenerateContent('Utilizing Google Ads in Flutter',
          generationConfig: GenerationConfig(
            temperature: 0.75,
            maxOutputTokens: 512,
          ))
      .listen((value) {})
      .onError((e) {});
```

## Legacy APIs


#### Stream Generate Content

The model usually gives a response once it finishes generating the entire output. To speed up interactions, you can opt not to wait for the complete result and instead use streaming to manage partial results.

```dart
final gemini = Gemini.instance;

gemini.streamGenerateContent('Utilizing Google Ads in Flutter')
  .listen((value) {
    print(value.output);
  }).onError((e) {
    log('streamGenerateContent exception', error: e);
  });
```
![Flutter gemini stream generates content](https://github.com/babakcode/flutter_gemini/assets/31356659/0a6f6eaa-684c-4708-b395-16176c7b0180)
![Flutter Gemini stream](https://github.com/babakcode/flutter_gemini/assets/31356659/cabe2392-d584-4bbb-b5a9-a86db6b2d7f1)

#### Text-only input

This feature lets you perform natural language processing (NLP) tasks such as text completion and summarization.

```dart
final gemini = Gemini.instance;

gemini.text("Write a story about a magic backpack.")
  .then((value) => print( value?.output )) /// or value?.content?.parts?.last.text
  .catchError((e) => print(e));
```

![Flutter gemini Text only example gif](https://miro.medium.com/v2/resize:fit:828/format:webp/1*41dnttHItU2v4hobJ_DGSA.gif "Flutter_Gemini example")

#### Text-and-image input

If the input contains both text and image, You can send a text prompt with an image to the gemini-1.5-flash model to perform a vision-related task. For example, captioning an image or identifying what's in an image.

```dart
  final gemini = Gemini.instance;

  final file = File('assets/img.png');
  gemini.textAndImage(
        text: "What is this picture?", /// text
        images: [file.readAsBytesSync()] /// list of images
      )
      .then((value) => log(value?.content?.parts?.last.text ?? ''))
      .catchError((e) => log('textAndImageInput', error: e));
```

###### Note that, there are changes on properties

```diff
- image: file.readAsBytesSync(), /// image
+ images: [file.readAsBytesSync()] /// list of images
```

![Flutter gemini Text and Image example gif](https://miro.medium.com/v2/resize:fit:828/format:webp/1*3JEeJaBRSpif6hOl2pt3RA.gif "Flutter_Gemini example")


================================================
FILE: analysis_options.yaml
================================================
include: package:flutter_lints/flutter.yaml

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
analyzer:
  errors:
    invalid_annotation_target: ignore

================================================
FILE: assets/json_models/embeding_response.json
================================================
{
  "embedding": {
    "values": [
      0.008624583,
      -0.030451821,
      -0.042496547,
      -0.029230341,
      0.05486475,
      0.006694871,
      0.004025645,
      -0.007294857,
      0.0057651913,
      0.037203953,
      0.08070716,
      0.032692064,
      0.0015699493,
      -0.038671605,
      -0.021397846,
      0.040436137,
      0.040364444,
      0.023915485,
      0.03318194,
      -0.052099578,
      0.007753789,
      -0.0028750803,
      -0.0038559572,
      -0.03839587,
      0.031610277,
      -0.0024588231,
      0.05350601,
      -0.035613116,
      -0.035775036,
      0.045701347,
      -0.030365199,
      -0.014816799,
      -0.040846597,
      -0.014294212,
      0.008432598,
      -0.07015665,
      -0.005973285,
      0.020774437,
      -0.019995548,
      0.027437009,
      -0.0143762855,
      0.0071297227,
      -0.048812605,
      0.0017134936,
      0.016833002,
      -0.04341425,
      -0.01071614,
      0.029540878,
      0.00026989548,
      -0.07512045,
      -0.0063251033,
      0.017243758,
      0.0030855879,
      -0.03900979,
      0.0062045115,
      -0.03762957,
      -0.0002221458,
      0.0033970037,
      -0.018224807,
      0.020233013,
      -0.009443185,
      0.016834496,
      -0.039400727,
      0.025765473,
      0.0064459303,
      -0.0010064961,
      -0.023396038,
      0.04714727,
      0.04311917,
      0.011308989,
      -0.013833369,
      -0.06827331,
      0.023071568,
      -0.03515085,
      -0.06426478,
      -0.07674637,
      0.011010596,
      0.014995057,
      -0.009893141,
      0.0226066,
      -0.023858562,
      -0.04174958,
      0.00030446844,
      -0.029835863,
      -0.049982175,
      0.030680457,
      -0.0037228062,
      0.007982671,
      0.015907364,
      0.059540056,
      -0.0698364,
      0.01905883,
      0.026681246,
      -0.029017935,
      0.009239862,
      0.07437943,
      -0.018931432,
      -0.014418681,
      -0.015227716,
      -0.016991543,
      -0.020227646,
      -0.030113006,
      -0.036909197,
      0.0491838,
      0.03691079,
      0.020114211,
      0.020616315,
      0.035417195,
      0.017378854,
      0.0017591371,
      -0.052360915,
      -0.007504276,
      -0.02162204,
      -0.04277857,
      -0.030450603,
      -0.008929546,
      0.022382222,
      0.028581386,
      0.031293616,
      -0.017000198,
      0.04805261,
      -0.030170312,
      0.016913159,
      -0.0008443405,
      0.017210385,
      0.01790196,
      0.025434153,
      0.014020954,
      0.0463916,
      0.055676837,
      -0.014117397,
      -0.06040255,
      0.033837322,
      -0.0008005907,
      -0.00060394837,
      0.035327226,
      0.036272198,
      -0.03526632,
      0.008720279,
      -0.01767251,
      0.030635742,
      0.03079541,
      -0.011152445,
      0.008129438,
      -0.004437317,
      0.06261552,
      -0.011166501,
      -0.00792765,
      0.0626778,
      -0.03808373,
      0.0010393296,
      0.0012560948,
      -0.05420512,
      -0.001696204,
      0.0057959175,
      0.021863215,
      -0.0057427636,
      -0.005779428,
      0.009948935,
      -0.024309319,
      0.03490945,
      0.05541324,
      0.010009066,
      -0.00690594,
      -0.017368019,
      -0.0020743837,
      0.016718129,
      -0.021815343,
      0.016868921,
      -0.016602708,
      -0.012883013,
      -0.049588937,
      -0.034187913,
      -0.034272812,
      -0.005009027,
      -0.06445695,
      0.0061878716,
      -0.025500957,
      -0.0136196995,
      0.009936822,
      -0.07557129,
      0.0019269945,
      0.007851136,
      -0.0005730017,
      0.015097395,
      -0.02793086,
      0.07649703,
      -0.011246095,
      -0.00988598,
      -0.0095420005,
      -0.010617724,
      -0.02795932,
      -0.0074260943,
      -0.0011066246,
      0.030510733,
      0.04752876,
      0.0040175403,
      0.029044962,
      0.047818206,
      -0.018723032,
      -0.0415435,
      0.0996901,
      0.006733833,
      0.026475549,
      0.028504595,
      0.039723564,
      0.10685063,
      -0.09093502,
      -0.040105067,
      -0.010830562,
      -0.016954549,
      0.040276904,
      -0.06309,
      0.0122314235,
      0.04197765,
      0.021913808,
      0.024538448,
      0.03143963,
      0.035233174,
      -0.049595617,
      0.031046454,
      0.012546503,
      -0.063403584,
      0.029301276,
      0.009593253,
      0.08471234,
      -0.052641954,
      0.06801721,
      -0.010078849,
      -0.03664156,
      -1.225098e-05,
      0.014980443,
      -0.015443251,
      -0.063587464,
      0.0649348,
      0.03656039,
      0.00012944145,
      0.04090392,
      -0.067475125,
      0.042220943,
      -0.049328692,
      0.00013846974,
      0.030628476,
      -0.0044686855,
      -0.06414449,
      -0.0035188058,
      -0.021508386,
      0.014263058,
      0.0023899209,
      0.0044664415,
      0.011860193,
      -0.05595765,
      0.03968002,
      0.026143683,
      -0.04310548,
      0.019457595,
      -0.036821175,
      -0.004706372,
      -0.008448093,
      0.0095680095,
      0.02663876,
      -0.017718185,
      0.0521761,
      -0.05751985,
      -0.03382739,
      -5.254058e-05,
      -0.007237099,
      -0.03678753,
      0.0004373296,
      0.068935804,
      0.024607658,
      -0.07383697,
      0.0745026,
      -0.020278804,
      -0.02233648,
      -0.043527547,
      -0.0005897141,
      -0.008819973,
      0.05522694,
      -0.041430607,
      0.01485464,
      0.03093516,
      0.027958557,
      -0.041524798,
      -0.04165515,
      -0.032893553,
      -0.03968652,
      -0.053652477,
      0.017770097,
      0.009334136,
      -0.05586768,
      -0.028391907,
      -0.032775786,
      -0.048513874,
      -0.053598277,
      0.026337227,
      -0.016223265,
      0.051107723,
      0.043397397,
      -0.011614245,
      -0.051782615,
      -0.0044690934,
      0.036513854,
      -0.059794012,
      0.021193227,
      0.022977995,
      -0.037308924,
      -0.04654618,
      0.039977968,
      0.0070000333,
      0.010082792,
      -0.041809354,
      -0.06859667,
      0.03696839,
      0.08448864,
      0.036238268,
      -0.040010847,
      0.014791712,
      -0.071675524,
      0.038495533,
      -0.025405306,
      0.119683675,
      0.053742535,
      -0.05001289,
      0.013715115,
      0.020359106,
      -0.011968625,
      0.080088414,
      -0.036633175,
      0.0514321,
      -0.092830576,
      -0.011293311,
      -0.011462946,
      -0.005365982,
      0.0068834354,
      0.0033007269,
      -0.061453447,
      -0.0018337568,
      -0.03999207,
      -0.0020025445,
      0.030325854,
      -0.028261486,
      -0.0024511546,
      -0.04857929,
      -0.005050297,
      -0.013459029,
      -0.014253672,
      0.03093196,
      0.02680012,
      -0.023344921,
      0.029151637,
      0.06343295,
      -0.020851089,
      -0.013067708,
      -0.047613945,
      -0.019634524,
      0.04799423,
      -0.0030165066,
      0.023077987,
      -0.018307852,
      -0.02367432,
      0.04621804,
      -0.00904888,
      -0.004921491,
      -0.011499991,
      -0.03138275,
      0.00737706,
      -0.030905176,
      0.0045861388,
      0.022925997,
      -0.016103206,
      -0.037664305,
      -0.009711344,
      -0.041544404,
      -0.019569533,
      -0.039040513,
      -0.023987805,
      -0.020657333,
      -0.019713132,
      0.012216924,
      -0.028459836,
      -0.007854262,
      0.03432555,
      0.018948609,
      0.032789946,
      -0.002173598,
      0.072268486,
      0.044727862,
      -0.0047442573,
      0.026857385,
      -0.004011348,
      -0.035373602,
      0.064441904,
      0.06910071,
      -0.011144723,
      -0.02612964,
      -0.00051150133,
      -0.058811516,
      0.016943831,
      -0.013993827,
      -0.011681567,
      -0.0486106,
      -0.010806049,
      -0.009677699,
      -0.0075841006,
      -0.013452097,
      0.050830264,
      0.0069918637,
      -0.028301245,
      -0.0226844,
      0.020452417,
      0.038501225,
      0.027227988,
      -0.09067933,
      -0.03149255,
      -0.02733588,
      0.062468164,
      -0.011298025,
      0.00020811577,
      0.02480444,
      0.030436065,
      -0.01722424,
      0.015863098,
      0.021556586,
      -0.035869934,
      -0.0105872825,
      -0.012277281,
      -0.050149817,
      7.532577e-05,
      0.014090748,
      0.0022058648,
      -0.0077205827,
      0.01042793,
      -0.036767684,
      -0.019879367,
      -0.015746206,
      0.017803842,
      0.012614761,
      -0.00880104,
      -0.02583725,
      0.021856116,
      -0.035151184,
      0.0795235,
      0.003733422,
      -0.042395752,
      -0.030227657,
      0.017081745,
      -0.064787105,
      0.047976263,
      -0.06614391,
      0.046755534,
      -0.09351948,
      -0.017798718,
      -0.06981937,
      -0.048591003,
      -0.036941074,
      -0.0063392953,
      0.0723561,
      -0.050979175,
      0.024858551,
      0.022146545,
      -0.04561866,
      -0.05629803,
      -0.03543026,
      0.01992356,
      -0.02645938,
      0.015476739,
      0.006532406,
      0.016006118,
      0.021703305,
      -0.008074443,
      -0.013993359,
      0.025270082,
      0.054084614,
      -0.03723426,
      0.00922647,
      -0.060977213,
      0.022743328,
      0.0005817427,
      -0.043921262,
      0.0162521,
      -0.046245884,
      0.02920244,
      0.0137127,
      -0.0004419291,
      0.0062954514,
      0.0075316126,
      -0.018215746,
      -0.047283698,
      0.06998149,
      -0.033327773,
      -0.0004236732,
      -0.0031994286,
      -0.007056563,
      -0.043460306,
      0.0015354953,
      -0.01488144,
      -0.032937713,
      0.009287482,
      0.014544634,
      0.034704477,
      -0.038788475,
      0.0057188864,
      -0.041650325,
      0.058672834,
      -0.037773453,
      0.042793583,
      0.068971485,
      -0.060984336,
      -0.003988655,
      -0.0028867219,
      0.0067583215,
      -0.018067246,
      -0.0239257,
      0.021824041,
      -0.002594604,
      0.019783823,
      0.010555229,
      0.03585786,
      -0.054828122,
      0.056835514,
      0.0039436664,
      -0.029769812,
      0.01487401,
      0.018713957,
      -0.04180365,
      0.065259494,
      -0.006946442,
      -0.008461352,
      -0.041328337,
      0.016176524,
      0.06900452,
      -0.08757591,
      -0.026511896,
      -0.021864926,
      -0.045825586,
      -0.0029127926,
      -0.036086105,
      0.049907155,
      -0.03262437,
      0.008395844,
      0.014912004,
      0.016121961,
      0.038142838,
      -0.019255152,
      -0.032568473,
      0.029633947,
      -0.05650531,
      0.01703388,
      -0.0049108807,
      -0.033846553,
      -0.032649934,
      0.034349475,
      -0.052442193,
      0.035418052,
      -0.025731172,
      -0.028500304,
      -0.022009343,
      0.0073188776,
      -0.02605774,
      -0.011230884,
      -0.016760005,
      -0.026268288,
      -0.030098971,
      0.009599001,
      -0.012166129,
      -0.047288176,
      -0.0026035684,
      0.046940323,
      0.017147271,
      -0.03532738,
      -0.004257927,
      0.023836099,
      -0.013437756,
      0.038638394,
      -0.04540704,
      -0.0070548924,
      -0.000996806,
      -0.007153008,
      0.03372742,
      0.00090462615,
      0.022542186,
      0.056735456,
      0.042577762,
      -0.034696132,
      0.042536404,
      0.021590313,
      0.0077237147,
      0.024994696,
      0.029911542,
      -0.021255728,
      0.030441552,
      -0.0483429,
      0.04303822,
      0.0286698,
      -0.0068607414,
      0.036662962,
      -0.0063703014,
      -0.044340007,
      -0.031890824,
      0.00036194356,
      -0.034090873,
      -0.00549679,
      0.009660412,
      0.042241063,
      0.011368424,
      -0.004538653,
      -0.009493857,
      0.0030975502,
      -0.0010478802,
      -0.020607537,
      0.018744059,
      0.015208846,
      -0.021333545,
      0.03751383,
      0.024116268,
      0.07453785,
      -0.041588385,
      -0.03892425,
      -0.05235617,
      -0.040644005,
      0.005042716,
      -0.020569988,
      -0.0129598,
      0.13083012,
      -0.009011917,
      -0.00217832,
      0.0077060633,
      0.058262043,
      0.015077671,
      0.063272804,
      0.1078087,
      0.004448191,
      -0.053923953,
      -0.04362896,
      0.09360521,
      0.0066842767,
      -0.011016014,
      0.044551995,
      0.0015021093,
      -0.052759856,
      -0.009717925,
      0.0034341498,
      0.020852385,
      -0.0078668,
      0.10094906,
      0.07162882,
      -0.0748456,
      -0.027106045,
      0.009101185,
      -0.029127726,
      -0.0017386917,
      -0.023493223,
      -0.027168266,
      -0.020215228,
      0.00041417315,
      -0.033961166,
      -0.011669535,
      -0.0004906546,
      -0.012759002,
      -0.044284903,
      0.04930086,
      0.013013342,
      -0.020515632,
      0.0126403915,
      0.016976478,
      -0.08650424,
      -0.07489142,
      -0.04380144,
      0.052320037,
      -0.06340725,
      0.067897715,
      0.031920537,
      -0.038168993,
      0.036792386,
      0.029663036,
      0.022649394,
      0.05061561,
      0.00934687,
      0.04729442,
      -0.018025605,
      0.019651046,
      -0.0050999606,
      -0.0020830606,
      -0.007575653,
      0.0045946045,
      0.04751231,
      0.007070753,
      -0.035760302,
      0.018472316,
      0.004339673,
      -0.06597283,
      -0.05489254,
      -0.011515522,
      0.090681635,
      0.007154289,
      0.015031737,
      0.008287731,
      0.026016485,
      0.0616728,
      -0.016931107,
      0.018779512,
      -0.032710046,
      -0.010483889,
      0.026504684,
      -0.020419342,
      -0.022554679,
      0.025899567,
      0.045513034,
      0.00026808516,
      0.03389962,
      -0.039920982,
      -0.0038337265,
      0.0014569712,
      -0.009203633,
      -0.011793006,
      0.014427106,
      0.0086658755,
      -0.01721355,
      0.08369377,
      0.05515183,
      0.03119344,
      0.038981467,
      -0.034288254,
      -0.013515418,
      0.06075744,
      -0.0258169,
      0.034621883,
      0.0012731912,
      -0.043584045,
      0.04525766,
      -0.032612998,
      -0.020666298,
      0.07351347,
      -0.050300013,
      0.026697695,
      -0.0022883194,
      0.0155193815,
      -0.017274313,
      -0.0020913866,
      -0.064670034,
      0.018535795,
      -0.010191767,
      0.08379303,
      0.051132496,
      -0.057075754,
      0.049261495,
      -0.011337851,
      -0.054149605,
      0.03255013,
      -0.09124333,
      0.03779213,
      0.06664394,
      0.00040837182,
      0.028164629,
      -0.044449247,
      -0.012616811,
      0.01718758,
      -0.013388284,
      0.036616728,
      -0.009780496,
      0.023196792,
      0.0024103,
      0.0152416425,
      -0.019779433,
      -0.014335527,
      0.031857576,
      0.012219593
    ]
  }
}

================================================
FILE: assets/json_models/embedings_response.json
================================================
{
  "embeddings": [
    {
      "values": [
        0.015434564,
        -0.01298924,
        -0.03278457,
        -0.028112393,
        0.059482034,
        0.0066549815,
        0.00705964,
        -0.018260185,
        -0.007033401,
        0.035155747,
        0.08696386,
        0.03573911,
        -0.005422867,
        -0.042579066,
        -0.026789082,
        0.044408686,
        0.037405815,
        0.024766346,
        0.02860482,
        -0.054175135,
        0.0020146118,
        -0.0009333989,
        -0.006904162,
        -0.029163862,
        0.021856539,
        0.008234055,
        0.051697668,
        -0.027510434,
        -0.033265475,
        0.04367599,
        -0.02746475,
        -0.006686542,
        -0.052241612,
        -0.017983247,
        0.015568448,
        -0.06716233,
        -0.0045682783,
        0.009744952,
        -0.031453557,
        0.03206871,
        -0.011631581,
        0.007513488,
        -0.04575989,
        -0.0048876926,
        0.007850901,
        -0.040422756,
        -0.011942582,
        0.02596849,
        -0.0023374555,
        -0.064529315,
        -0.0049498533,
        0.020897886,
        0.013030305,
        -0.033771504,
        0.010636675,
        -0.03492845,
        -0.0036980575,
        -0.0027421117,
        -0.022764493,
        0.016520545,
        -0.0038496067,
        0.009353446,
        -0.027946725,
        0.016360503,
        -0.00028978643,
        -0.0003598713,
        -0.021505449,
        0.04010767,
        0.044623654,
        0.0040911683,
        -0.0012595936,
        -0.06768728,
        0.022939442,
        -0.03522621,
        -0.07493804,
        -0.072267026,
        0.01903335,
        0.0142016085,
        -0.0014970279,
        0.02977439,
        -0.03163831,
        -0.04231695,
        -0.0053182985,
        -0.031077743,
        -0.050385587,
        0.03709317,
        -0.00728087,
        -0.0060717687,
        0.010334748,
        0.059571065,
        -0.06091379,
        0.0040900186,
        0.023054197,
        -0.023547497,
        0.01351191,
        0.06853871,
        -0.014102313,
        -0.017443523,
        -0.020564517,
        -0.013529423,
        -0.009060168,
        -0.024950726,
        -0.03778613,
        0.052346535,
        0.04078861,
        0.033672366,
        0.019805942,
        0.046406377,
        0.02381622,
        0.0041466807,
        -0.04908229,
        -0.016899314,
        -0.008666749,
        -0.035963874,
        -0.039731916,
        -0.0010175853,
        0.019682892,
        0.039609637,
        0.035238363,
        -0.014650347,
        0.0427963,
        -0.019887595,
        0.023397034,
        0.0027263404,
        0.010051155,
        0.024662556,
        0.026217585,
        0.01810648,
        0.045216892,
        0.055995,
        -0.008993309,
        -0.0591558,
        0.04437932,
        0.00013925001,
        0.011384058,
        0.027704006,
        0.025953474,
        -0.026603224,
        0.013596232,
        -0.030213686,
        0.016922906,
        0.035301685,
        0.002827045,
        0.023405148,
        -0.0015210717,
        0.063860156,
        -0.016276177,
        -0.010651622,
        0.050887305,
        -0.03839675,
        0.011220306,
        0.0041064774,
        -0.056086265,
        0.00084033125,
        0.011776371,
        0.02200351,
        -0.012756443,
        -0.00681502,
        0.01882853,
        -0.024096914,
        0.03276953,
        0.048802204,
        0.006560446,
        -0.0029943213,
        -0.02073496,
        -0.004337539,
        0.012337608,
        -0.022165503,
        0.033460006,
        -0.017985495,
        -0.008597459,
        -0.04362415,
        -0.036465667,
        -0.027657775,
        -0.00710959,
        -0.06939969,
        0.0012120054,
        -0.020809842,
        -0.024050102,
        0.016206726,
        -0.073826425,
        -0.0013746152,
        -0.0024275798,
        0.001351526,
        0.030216707,
        -0.021406554,
        0.086559765,
        -0.0056550875,
        -0.0182909,
        -0.0074581634,
        -0.020410284,
        -0.029720388,
        -0.0003081285,
        0.00071834464,
        0.029664377,
        0.042905703,
        0.002196209,
        0.030331254,
        0.047638908,
        -0.012593589,
        -0.03822794,
        0.09378852,
        0.0054195896,
        0.029715326,
        0.025153734,
        0.031789187,
        0.10947316,
        -0.08935895,
        -0.03792664,
        -0.0116212135,
        -0.020322042,
        0.040967822,
        -0.07355915,
        0.0169395,
        0.0398898,
        0.021025907,
        0.030252483,
        0.032528367,
        0.029642563,
        -0.04737147,
        0.027770473,
        0.009124789,
        -0.053362213,
        0.03725457,
        0.00037645013,
        0.0930869,
        -0.038112756,
        0.06810535,
        -0.0057841074,
        -0.03706526,
        -0.0021398626,
        0.02112997,
        -0.022573467,
        -0.06849294,
        0.06004841,
        0.03138389,
        0.0028580478,
        0.034423392,
        -0.07563793,
        0.03596298,
        -0.043970056,
        -0.0065886388,
        0.028702892,
        -0.0116006285,
        -0.06151251,
        -0.013886372,
        -0.0273985,
        0.012993118,
        -0.002919346,
        0.006990721,
        0.011447861,
        -0.05797139,
        0.042079885,
        0.026239084,
        -0.045260265,
        0.01764967,
        -0.040064972,
        -0.00908093,
        0.0023206118,
        -0.001027772,
        0.029112205,
        -0.021938426,
        0.04604589,
        -0.05257795,
        -0.029146133,
        -0.009205022,
        -0.004605142,
        -0.0391676,
        0.012384472,
        0.056723922,
        0.015407171,
        -0.06663508,
        0.06987251,
        -0.028572813,
        -0.027711805,
        -0.053085327,
        0.0031240152,
        -0.0067495494,
        0.05780741,
        -0.041734383,
        0.014227393,
        0.034962215,
        0.023997705,
        -0.047664586,
        -0.03319448,
        -0.04571977,
        -0.038751386,
        -0.047650762,
        0.015231969,
        0.014707201,
        -0.05145878,
        -0.027558379,
        -0.034420036,
        -0.04735379,
        -0.06061379,
        0.02926993,
        -0.031242808,
        0.05068711,
        0.041653894,
        -0.011260044,
        -0.046160232,
        -0.01575809,
        0.042596053,
        -0.067019396,
        0.021227034,
        0.02264995,
        -0.04479321,
        -0.055649765,
        0.035150662,
        0.014363713,
        0.018040828,
        -0.037481364,
        -0.06936639,
        0.03853942,
        0.080863826,
        0.041077014,
        -0.031959374,
        0.0123597,
        -0.06889688,
        0.03801152,
        -0.017062489,
        0.12375897,
        0.05415808,
        -0.046763197,
        0.0068947705,
        0.02993137,
        -0.00081947306,
        0.07275469,
        -0.028778728,
        0.058432154,
        -0.10775239,
        -0.012029789,
        -0.0173616,
        -0.0073038395,
        0.018833078,
        0.0070315013,
        -0.06334908,
        -0.002197907,
        -0.051006787,
        -0.0014970289,
        0.031644855,
        -0.026159585,
        -0.012268066,
        -0.05239107,
        -0.004444351,
        -0.018770235,
        -0.008498022,
        0.036130067,
        0.021302532,
        -0.021627277,
        0.033854786,
        0.06542918,
        -0.024555854,
        -0.018355347,
        -0.04724724,
        -0.022322481,
        0.051986925,
        -0.0049326974,
        0.027872436,
        -0.022922205,
        -0.023782928,
        0.040236335,
        -0.016250545,
        -0.0015399866,
        -0.0034115806,
        -0.033653833,
        0.0022180737,
        -0.03858561,
        0.0062937397,
        0.029356556,
        -0.007653773,
        -0.03697332,
        -0.011865267,
        -0.0389502,
        -0.02051948,
        -0.04700568,
        -0.01988669,
        -0.022907414,
        -0.020265345,
        0.0217955,
        -0.020815138,
        -0.008075967,
        0.042080384,
        0.024871295,
        0.02288075,
        -0.0062845564,
        0.070156254,
        0.04420677,
        -0.007218798,
        0.024845367,
        -0.0084106745,
        -0.034232143,
        0.06340526,
        0.06934149,
        -0.008653454,
        -0.031547517,
        -0.0021811998,
        -0.056660965,
        0.01289087,
        -0.017565293,
        -0.012472565,
        -0.062865704,
        -0.016882941,
        -0.00886067,
        -0.007546806,
        -0.016651986,
        0.049060285,
        0.00983019,
        -0.021024782,
        -0.029961886,
        0.021969963,
        0.034383174,
        0.029779661,
        -0.08503801,
        -0.035914786,
        -0.023043424,
        0.06259569,
        -0.015958257,
        -0.0023649666,
        0.01726185,
        0.027959429,
        -0.01857089,
        0.018801887,
        0.02139348,
        -0.03584269,
        -0.018912096,
        -0.008950262,
        -0.03968531,
        0.007892896,
        0.027344838,
        0.0016915328,
        -0.02069493,
        0.0134641025,
        -0.0373059,
        -0.018269014,
        -0.020820636,
        0.022916492,
        0.010670274,
        -0.012009122,
        -0.031435724,
        0.016901357,
        -0.033515945,
        0.087834135,
        0.0063107405,
        -0.046204098,
        -0.025559545,
        0.02293791,
        -0.05808372,
        0.053670824,
        -0.06421356,
        0.042490974,
        -0.085585155,
        -0.0198173,
        -0.06684904,
        -0.048170276,
        -0.029904734,
        -0.008417311,
        0.07174241,
        -0.047845766,
        0.021944534,
        0.0077130054,
        -0.046163175,
        -0.055012673,
        -0.041142575,
        0.027070649,
        -0.023477424,
        0.013213996,
        0.0046703713,
        0.030718237,
        0.023010148,
        -0.009387566,
        -0.01857867,
        0.024339002,
        0.061191738,
        -0.03438845,
        0.0051931185,
        -0.05372695,
        0.030411297,
        -0.0070508323,
        -0.032841265,
        0.016757507,
        -0.034371115,
        0.019011062,
        0.023129944,
        0.014389258,
        0.01567308,
        0.00020695015,
        -0.011592477,
        -0.040904265,
        0.06431633,
        -0.032233458,
        0.0056469003,
        0.00038041154,
        -0.001082695,
        -0.040244363,
        0.0014604656,
        -0.01620342,
        -0.029038994,
        0.008450276,
        0.014739196,
        0.03149293,
        -0.043924604,
        0.0023412916,
        -0.048412733,
        0.052497998,
        -0.036233284,
        0.041030962,
        0.065008,
        -0.054590926,
        -0.011887156,
        0.0068416568,
        0.0029963045,
        -0.004484368,
        -0.021062057,
        0.023270817,
        -0.004501138,
        0.022077331,
        0.004033622,
        0.02868228,
        -0.04973768,
        0.06252522,
        0.0065110987,
        -0.025488699,
        0.011081035,
        0.0244184,
        -0.046629567,
        0.06458706,
        -0.00031803272,
        -0.0004243537,
        -0.03205965,
        0.0071170204,
        0.06946705,
        -0.09862297,
        -0.027214553,
        -0.017033806,
        -0.041122854,
        -0.0012122589,
        -0.03455534,
        0.051282685,
        -0.03422633,
        0.008695823,
        0.015176157,
        0.016894938,
        0.03162039,
        -0.025730167,
        -0.037140712,
        0.031545468,
        -0.065957755,
        0.00861595,
        -0.001762296,
        -0.030673394,
        -0.031860042,
        0.027686678,
        -0.049888633,
        0.03841649,
        -0.03171268,
        -0.02880851,
        -0.020134248,
        1.7016679e-05,
        -0.023856943,
        -0.019115094,
        -0.015578116,
        -0.02229345,
        -0.031415414,
        0.017830754,
        -0.00899299,
        -0.047211867,
        -0.0042254888,
        0.050247733,
        0.011978156,
        -0.03280089,
        -0.0019943626,
        0.020434622,
        -0.01406078,
        0.040740646,
        -0.04842172,
        -0.0070891883,
        0.0057456666,
        -0.0035319694,
        0.032241233,
        -0.0049090614,
        0.019266265,
        0.051747773,
        0.050398067,
        -0.041308858,
        0.047446568,
        0.034806274,
        0.01847136,
        0.022865176,
        0.03023712,
        -0.023290439,
        0.035830528,
        -0.04913017,
        0.04964651,
        0.030478269,
        -0.009313284,
        0.036699146,
        0.0014451745,
        -0.03983365,
        -0.03369194,
        -0.00085205655,
        -0.031339888,
        0.0029001401,
        0.004496864,
        0.046755027,
        0.011396131,
        -0.0053634043,
        -0.0129202185,
        0.0032138631,
        -0.005189336,
        -0.031327825,
        0.017196026,
        0.019808073,
        -0.013843882,
        0.036849488,
        0.019533407,
        0.065735646,
        -0.038069274,
        -0.04339442,
        -0.047135584,
        -0.028438373,
        0.006881676,
        -0.017681453,
        -0.015110602,
        0.13880084,
        -0.0068666013,
        3.9237726e-05,
        0.0055779493,
        0.063306384,
        0.0050390773,
        0.06743495,
        0.10649334,
        -0.0019453482,
        -0.0489806,
        -0.041399788,
        0.08586307,
        0.0054414584,
        -0.01258482,
        0.05112526,
        -0.00071916316,
        -0.056181315,
        0.0022912265,
        0.011115143,
        0.018141078,
        0.00033985794,
        0.098164506,
        0.060502175,
        -0.07149124,
        -0.03204869,
        0.006111822,
        -0.02286666,
        -0.008709467,
        -0.013722155,
        -0.03476923,
        -0.018972937,
        0.0086054625,
        -0.041269857,
        -0.020074759,
        -0.0035619093,
        -0.0013392023,
        -0.043434292,
        0.049947318,
        0.018060664,
        -0.018262088,
        0.016828077,
        0.02705727,
        -0.08643556,
        -0.07813209,
        -0.041774075,
        0.05141974,
        -0.06427214,
        0.07198149,
        0.037141692,
        -0.04617939,
        0.03814317,
        0.02491322,
        0.030813579,
        0.042570785,
        0.022012087,
        0.05465109,
        -0.01629217,
        0.022867497,
        -0.0020482477,
        0.00034332648,
        0.008874342,
        0.008132518,
        0.04321023,
        0.00810242,
        -0.03295793,
        0.014587113,
        -0.0066820835,
        -0.066815935,
        -0.058186833,
        -0.0133864675,
        0.08364501,
        0.00810787,
        0.013005243,
        0.012761795,
        0.024867216,
        0.05649599,
        -0.019535208,
        0.012473741,
        -0.026360977,
        -0.010710675,
        0.022782803,
        -0.016623449,
        -0.019948183,
        0.021855352,
        0.042283673,
        0.0009800687,
        0.034794033,
        -0.03932047,
        0.00057145196,
        -0.001981968,
        -0.011611234,
        -0.017059539,
        0.014347867,
        0.009619962,
        -0.019044273,
        0.08592929,
        0.05807836,
        0.043363832,
        0.03973212,
        -0.03548395,
        -0.011271219,
        0.05798954,
        -0.018937308,
        0.03652546,
        0.005414547,
        -0.038912386,
        0.03980492,
        -0.027904814,
        -0.018506937,
        0.07676259,
        -0.05120513,
        0.021827826,
        -0.0066376906,
        0.019047206,
        -0.018292844,
        -0.0031831455,
        -0.07327645,
        0.005534416,
        -0.011769756,
        0.07630418,
        0.049130905,
        -0.05947003,
        0.039399136,
        -0.022844097,
        -0.050723698,
        0.025920898,
        -0.08740344,
        0.035034865,
        0.063338265,
        -0.003078494,
        0.029872345,
        -0.036190104,
        -0.014713493,
        0.024035813,
        -0.0045866803,
        0.037426855,
        -0.0034326292,
        0.02236696,
        0.005200196,
        0.015344163,
        -0.010986347,
        -0.030591838,
        0.026438223,
        0.019473173
      ]
    },
    {
      "values": [
        0.01356372,
        -0.015404424,
        -0.024385026,
        -0.02521474,
        0.056020778,
        0.0027621386,
        0.009466706,
        -0.016455662,
        -0.0026642364,
        0.045416977,
        0.07737776,
        0.023474108,
        -0.013265463,
        -0.033379838,
        -0.023250667,
        0.0404241,
        0.044108745,
        0.030466532,
        0.0346058,
        -0.04831539,
        0.0060302857,
        -0.011384284,
        -0.0069641043,
        -0.033187676,
        0.014762825,
        0.015915839,
        0.04271592,
        -0.033557266,
        -0.036628533,
        0.05265253,
        -0.02858904,
        -0.010423476,
        -0.059224404,
        -0.017850118,
        0.0147795845,
        -0.060867663,
        -0.012638338,
        0.0226087,
        -0.025348067,
        0.024184836,
        -0.0031668593,
        -0.00032854432,
        -0.04270257,
        -0.008000146,
        0.0084081255,
        -0.039849024,
        -0.010142988,
        0.029516181,
        -0.007788936,
        -0.054162074,
        -0.0064261775,
        0.021151388,
        0.017749984,
        -0.03681754,
        0.00058421254,
        -0.029851453,
        -0.010995861,
        6.128468e-05,
        -0.019695455,
        0.011803026,
        -0.0064983,
        0.0061393236,
        -0.037795562,
        0.014119848,
        -0.017901411,
        -0.0017190825,
        -0.009557438,
        0.041075736,
        0.04706685,
        -0.0012074799,
        -0.00441001,
        -0.0623016,
        0.020695373,
        -0.038272448,
        -0.06963989,
        -0.06956885,
        0.010699845,
        0.0136828665,
        0.004747582,
        0.03355303,
        -0.036120158,
        -0.042254962,
        -0.011597675,
        -0.02915027,
        -0.057572965,
        0.03752201,
        -0.0035625338,
        -0.00643609,
        0.0038807034,
        0.07021188,
        -0.06063613,
        0.0058249924,
        0.025465388,
        -0.030649967,
        0.0056611924,
        0.061124038,
        -0.016451944,
        -0.017874911,
        -0.019759964,
        -0.02715586,
        -0.0032868288,
        -0.026126347,
        -0.038634352,
        0.048051205,
        0.05145528,
        0.025497243,
        0.012517605,
        0.039014466,
        0.02194583,
        0.010096146,
        -0.05226388,
        -0.021200478,
        -0.013189387,
        -0.03138918,
        -0.038288396,
        -0.0074681137,
        0.024280315,
        0.049106345,
        0.026179677,
        0.001262872,
        0.04991265,
        -0.025043597,
        0.031398047,
        0.009972107,
        0.011729019,
        0.02925488,
        0.01835483,
        0.02001332,
        0.0338778,
        0.05546092,
        -0.014961561,
        -0.060106006,
        0.03798253,
        0.012184653,
        0.0041337386,
        0.027944017,
        0.024864355,
        -0.019653607,
        0.019782828,
        -0.025586521,
        0.02248693,
        0.05073971,
        0.0072206627,
        0.016619014,
        0.012443707,
        0.06494928,
        -0.024852972,
        0.0023667377,
        0.05175233,
        -0.04017905,
        -0.0031364446,
        0.010388244,
        -0.06084323,
        0.008852871,
        0.0046590664,
        0.022251474,
        -0.008022103,
        -0.012050181,
        0.019489845,
        -0.009677376,
        0.036306664,
        0.04437892,
        0.014288429,
        0.008810291,
        -0.022556063,
        -0.017091554,
        0.011731708,
        -0.012127267,
        0.027785007,
        -0.016332893,
        0.0021587973,
        -0.044240408,
        -0.05060435,
        -0.026971154,
        -0.0014136834,
        -0.07273658,
        -0.0006898712,
        -0.02614714,
        -0.022037672,
        0.021202961,
        -0.066731475,
        -0.009113093,
        -0.015087279,
        0.004571251,
        0.02913901,
        -0.01759423,
        0.09389163,
        0.0014496895,
        -0.026340768,
        -0.009546374,
        -0.008953322,
        -0.0299461,
        -0.0021733476,
        0.009237003,
        0.027435604,
        0.040056195,
        -0.0007877447,
        0.022749603,
        0.049359854,
        0.0006516923,
        -0.04235662,
        0.08982526,
        0.004458284,
        0.03435815,
        0.021263944,
        0.016096625,
        0.110941805,
        -0.0919414,
        -0.040695265,
        -0.013052057,
        -0.01909736,
        0.041470613,
        -0.08069395,
        0.010049185,
        0.042096797,
        0.013407985,
        0.03245518,
        0.027443169,
        0.03171851,
        -0.05779703,
        0.039670397,
        0.009719457,
        -0.05904497,
        0.03655552,
        -0.010600863,
        0.09949096,
        -0.04221709,
        0.062240668,
        0.0018234035,
        -0.03386712,
        0.0033469824,
        0.020604594,
        -0.012946305,
        -0.064378165,
        0.0685243,
        0.034470167,
        0.011540208,
        0.027480396,
        -0.06145429,
        0.04302185,
        -0.046975505,
        -0.0060371137,
        0.032695666,
        -0.0039927727,
        -0.05686104,
        -0.020116458,
        -0.028641123,
        0.01443805,
        -0.0017878783,
        0.011825635,
        0.020087935,
        -0.056023844,
        0.043248348,
        0.026655579,
        -0.044492234,
        0.027739784,
        -0.030246891,
        -0.017539186,
        -0.0037369288,
        -0.001122251,
        0.03227649,
        -0.025506767,
        0.030797727,
        -0.044448316,
        -0.031033086,
        -0.0065762056,
        -0.0001002368,
        -0.038420197,
        0.011661495,
        0.049904194,
        0.01508108,
        -0.06630061,
        0.0720011,
        -0.019743258,
        -0.03085517,
        -0.053071205,
        -0.0048887883,
        0.006163513,
        0.05284148,
        -0.036668327,
        0.012440962,
        0.0310234,
        0.023006696,
        -0.053817812,
        -0.030303776,
        -0.049847156,
        -0.04065002,
        -0.044586767,
        0.021336397,
        0.00656369,
        -0.05017026,
        -0.028608944,
        -0.03773836,
        -0.047717758,
        -0.066378176,
        0.02402577,
        -0.03466922,
        0.05509412,
        0.036861926,
        -0.0043672323,
        -0.031516273,
        -0.014311909,
        0.03396534,
        -0.07394714,
        0.028331613,
        0.022759823,
        -0.038586594,
        -0.058586422,
        0.038826045,
        0.0031400376,
        0.023019718,
        -0.032497875,
        -0.062899314,
        0.02632834,
        0.08524401,
        0.043736473,
        -0.033082936,
        0.019106772,
        -0.0722496,
        0.042763494,
        -0.017649885,
        0.1153493,
        0.057201233,
        -0.03978485,
        0.001057355,
        0.022506345,
        -0.0029862407,
        0.059620123,
        -0.030500274,
        0.060925294,
        -0.10239315,
        -0.003542815,
        -0.013749568,
        -0.006346272,
        0.009422031,
        0.0078093065,
        -0.06997163,
        -0.004796844,
        -0.04747843,
        -0.0048929034,
        0.028995141,
        -0.025196563,
        -0.022965265,
        -0.051262125,
        -0.0019852633,
        -0.016936408,
        -0.010199464,
        0.030324858,
        0.025550786,
        -0.023933737,
        0.04702822,
        0.06558909,
        -0.028368248,
        -0.015577082,
        -0.045044463,
        -0.01769085,
        0.064004615,
        0.00022795201,
        0.025862262,
        -0.023398988,
        -0.014926344,
        0.03227265,
        -0.024534425,
        0.0033752997,
        0.0069177323,
        -0.024588037,
        -0.005460702,
        -0.037742637,
        -0.009900487,
        0.031445473,
        -0.008672958,
        -0.042368412,
        -0.0072578816,
        -0.027424691,
        -0.012582449,
        -0.043364238,
        -0.007925043,
        -0.020546816,
        -0.021816181,
        0.025413103,
        -0.021867784,
        -0.0053979284,
        0.044294596,
        0.025255842,
        0.02116835,
        -0.010366739,
        0.08045021,
        0.030191425,
        -0.0044411574,
        0.023970768,
        -0.012986862,
        -0.029552683,
        0.060271047,
        0.066457435,
        -0.0044147796,
        -0.030289507,
        0.004856033,
        -0.055259652,
        0.017764702,
        -0.026290603,
        -0.012591546,
        -0.066561304,
        -0.015879424,
        -0.0078580985,
        -0.005703886,
        -0.010511072,
        0.04606666,
        0.0037386399,
        -0.02730791,
        -0.035201445,
        0.019405777,
        0.032351755,
        0.026315838,
        -0.08748783,
        -0.036918804,
        -0.024774604,
        0.066779695,
        -0.0131363375,
        -0.006833172,
        0.017548248,
        0.03014901,
        -0.02093669,
        0.01878978,
        0.021724444,
        -0.03306892,
        -0.019861756,
        -0.0070829033,
        -0.041069735,
        0.011550792,
        0.031730793,
        0.0028917727,
        -0.022419961,
        0.012697921,
        -0.041135494,
        -0.022249205,
        -0.016629208,
        0.024063317,
        0.0073686587,
        -0.008933923,
        -0.03529035,
        0.018242205,
        -0.031073414,
        0.08057978,
        0.0040577333,
        -0.056112513,
        -0.016936433,
        0.025750984,
        -0.05475209,
        0.053791735,
        -0.053721294,
        0.035882384,
        -0.08126279,
        -0.011758383,
        -0.06346582,
        -0.050078034,
        -0.030639961,
        -0.004633353,
        0.080669396,
        -0.043005913,
        0.02103406,
        -0.0015595207,
        -0.03500447,
        -0.045123942,
        -0.04953359,
        0.030497903,
        -0.031456508,
        0.014106866,
        0.005134548,
        0.037753444,
        0.028651964,
        -0.006746253,
        -0.019177487,
        0.028623445,
        0.06745052,
        -0.03281817,
        -0.0012672333,
        -0.055997625,
        0.048638437,
        -0.0016127657,
        -0.03976466,
        0.008378926,
        -0.028456045,
        0.014410168,
        0.024373844,
        0.011910943,
        0.021143874,
        -0.00034081505,
        -0.014534269,
        -0.0444327,
        0.058333926,
        -0.033249475,
        -0.00057977246,
        0.0026710927,
        -0.007492691,
        -0.036173522,
        0.007248027,
        -0.015779529,
        -0.03560384,
        0.011918583,
        0.0183401,
        0.030234274,
        -0.053946353,
        -0.006542068,
        -0.047652304,
        0.047707286,
        -0.038783114,
        0.042693816,
        0.05343127,
        -0.050019767,
        -0.012727848,
        -0.0023097321,
        -0.00086191663,
        -0.0062400047,
        -0.024591254,
        0.017905703,
        -0.008616819,
        0.018215548,
        0.0131902695,
        0.020589437,
        -0.054924298,
        0.066172525,
        -0.0040485417,
        -0.026892958,
        0.017631505,
        0.016223812,
        -0.049125392,
        0.061396062,
        0.0032437919,
        0.0015837993,
        -0.039943047,
        -0.002361447,
        0.079728015,
        -0.110722296,
        -0.033113956,
        -0.01288965,
        -0.044349425,
        0.004499129,
        -0.032621466,
        0.044723663,
        -0.047870632,
        -0.0007317092,
        0.01538546,
        0.021986065,
        0.030877993,
        -0.031387947,
        -0.029872945,
        0.030582039,
        -0.07291621,
        0.005214626,
        -0.013360601,
        -0.043853156,
        -0.039767165,
        0.034152303,
        -0.046673838,
        0.029574968,
        -0.026512172,
        -0.0317489,
        -0.024238389,
        0.0044461484,
        -0.026358137,
        -0.023567649,
        -0.01666851,
        -0.026981127,
        -0.04789262,
        0.015106207,
        -0.016723782,
        -0.04609404,
        -0.0009690891,
        0.047860138,
        0.01965124,
        -0.028853793,
        -0.002161453,
        0.015862888,
        -0.009604859,
        0.032861143,
        -0.049893685,
        -0.009056942,
        0.016058477,
        -0.0047637946,
        0.013499327,
        0.00033124414,
        0.021639997,
        0.036490552,
        0.049734447,
        -0.036388244,
        0.035966754,
        0.036384758,
        0.01848129,
        0.01936548,
        0.041110706,
        -0.020579007,
        0.03972572,
        -0.059500527,
        0.058483753,
        0.02949643,
        -0.0026552908,
        0.015136857,
        0.013967699,
        -0.047753524,
        -0.02643546,
        0.00045268517,
        -0.024045393,
        0.010572156,
        0.0115284445,
        0.045276333,
        0.01477278,
        -0.012260114,
        0.0049116653,
        0.0002624052,
        0.0057428367,
        -0.0357892,
        0.014131505,
        0.017865967,
        0.0018355078,
        0.017066674,
        0.019991226,
        0.059018876,
        -0.04316734,
        -0.040495962,
        -0.04645116,
        -0.032155212,
        0.006855629,
        -0.01709631,
        -0.023068072,
        0.13071896,
        -0.0117750345,
        0.006735388,
        -0.00428147,
        0.05835659,
        0.00323061,
        0.064452596,
        0.107658714,
        0.0011278684,
        -0.047806296,
        -0.039015945,
        0.08841898,
        0.009109056,
        -0.021585098,
        0.04587783,
        0.0028700305,
        -0.061642382,
        -0.008301286,
        0.0021765844,
        0.025058622,
        0.000866256,
        0.09441375,
        0.05135114,
        -0.08111412,
        -0.039409634,
        -0.008433235,
        -0.017753145,
        -0.007967181,
        -0.014075007,
        -0.035151333,
        -0.022514263,
        0.013024374,
        -0.042462803,
        -0.021026863,
        0.0010954188,
        -0.012990658,
        -0.038894013,
        0.041165825,
        0.021401018,
        -0.013273863,
        0.023978205,
        0.0076727653,
        -0.08208279,
        -0.07164294,
        -0.03766139,
        0.05169556,
        -0.06807564,
        0.06667905,
        0.02647171,
        -0.050943747,
        0.050514407,
        0.022056088,
        0.026697334,
        0.030589454,
        0.0309619,
        0.055627897,
        -0.011226073,
        0.018821767,
        0.00032708142,
        0.013927108,
        0.013664332,
        0.023148077,
        0.050223388,
        0.002209411,
        -0.024183843,
        0.005419744,
        -0.009037187,
        -0.07152283,
        -0.067591585,
        0.0018649322,
        0.07864899,
        0.007836,
        0.015458517,
        0.018746221,
        0.031856768,
        0.05003332,
        -0.015312568,
        0.015148811,
        -0.023977624,
        -0.007860894,
        0.03265328,
        -0.010761551,
        -0.0114624165,
        0.022569085,
        0.04449342,
        0.0047867065,
        0.03813074,
        -0.047339167,
        -0.010128946,
        0.008987856,
        -0.011981707,
        -0.025890147,
        0.014876134,
        0.01246338,
        -0.030317992,
        0.08323439,
        0.050378542,
        0.04279509,
        0.047543395,
        -0.03934679,
        -0.009702485,
        0.051246934,
        -0.0115570575,
        0.025082037,
        0.004921027,
        -0.037485305,
        0.0345109,
        -0.017609224,
        -0.017225614,
        0.07838392,
        -0.05333895,
        0.035091214,
        -0.007425883,
        0.028943896,
        -0.012226034,
        -0.0077764336,
        -0.07593833,
        0.01470122,
        -0.0043923827,
        0.07346178,
        0.053343177,
        -0.064307295,
        0.029436173,
        -0.033383552,
        -0.04565939,
        0.0098429825,
        -0.08035119,
        0.03681359,
        0.062023964,
        -0.006151363,
        0.048899304,
        -0.030419897,
        -0.01569126,
        0.019181883,
        0.0032262106,
        0.042655054,
        -0.00029345634,
        0.017023923,
        0.011658963,
        0.0047185197,
        -0.005198279,
        -0.024262719,
        0.030491523,
        0.027719762
      ]
    }
  ]
}

================================================
FILE: assets/json_models/gemini_model.json
================================================
[
  {
    "name": "models/chat-bison-001",
    "version": "001",
    "displayName": "Chat Bison",
    "description": "Chat-optimized generative language model.",
    "inputTokenLimit": 4096,
    "outputTokenLimit": 1024,
    "supportedGenerationMethods": ["generateMessage", "countMessageTokens"],
    "temperature": 0.25,
    "topP": 0.95,
    "topK": 40
  },
  {
    "name": "models/text-bison-001",
    "version": "001",
    "displayName": "Text Bison",
    "description": "Model targeted for text generation.",
    "inputTokenLimit": 8196,
    "outputTokenLimit": 1024,
    "supportedGenerationMethods": [
      "generateText",
      "countTextTokens",
      "createTunedTextModel"
    ],
    "temperature": 0.7,
    "topP": 0.95,
    "topK": 40
  },
  {
    "name": "models/embedding-gecko-001",
    "version": "001",
    "displayName": "Embedding Gecko",
    "description": "Obtain a distributed representation of a text.",
    "inputTokenLimit": 1024,
    "outputTokenLimit": 1,
    "supportedGenerationMethods": ["embedText", "countTextTokens"]
  },
  {
    "name": "models/embedding-gecko-002",
    "version": "002",
    "displayName": "Embedding Gecko 002",
    "description": "Obtain a distributed representation of a text.",
    "inputTokenLimit": 2048,
    "outputTokenLimit": 1,
    "supportedGenerationMethods": ["embedText", "countTextTokens"]
  },
  {
    "name": "models/gemini-pro",
    "version": "001",
    "displayName": "Gemini Pro",
    "description": "The best model for scaling across a wide range of tasks",
    "inputTokenLimit": 30720,
    "outputTokenLimit": 2048,
    "supportedGenerationMethods": ["generateContent", "countTokens"],
    "temperature": 0.9,
    "topP": 1,
    "topK": 1
  },
  {
    "name": "models/gemini-1.5-flash",
    "version": "001",
    "displayName": "Gemini Pro Vision",
    "description":
    "The best image understanding model to handle a broad range of applications",
    "inputTokenLimit": 12288,
    "outputTokenLimit": 4096,
    "supportedGenerationMethods": ["generateContent", "countTokens"],
    "temperature": 0.4,
    "topP": 1,
    "topK": 32
  },
  {
    "name": "models/gemini-ultra",
    "version": "001",
    "displayName": "Gemini Ultra",
    "description": "The most capable model for highly complex tasks",
    "inputTokenLimit": 30720,
    "outputTokenLimit": 2048,
    "supportedGenerationMethods": ["generateContent", "countTokens"],
    "temperature": 0.9,
    "topP": 1,
    "topK": 32
  },
  {
    "name": "models/embedding-001",
    "version": "001",
    "displayName": "Embedding 001",
    "description": "Obtain a distributed representation of a text.",
    "inputTokenLimit": 2048,
    "outputTokenLimit": 1,
    "supportedGenerationMethods": ["embedContent", "countTextTokens"]
  },
  {
    "name": "models/aqa",
    "version": "001",
    "displayName": "Model that performs Attributed Question Answering.",
    "description":
    "Model trained to return answers to questions that are grounded in provided sources, along with estimating answerable probability.",
    "inputTokenLimit": 7168,
    "outputTokenLimit": 1024,
    "supportedGenerationMethods": ["generateAnswer"],
    "temperature": 0.2,
    "topP": 1,
    "topK": 40
  }
]

================================================
FILE: assets/json_models/gemini_response.json
================================================
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Once upon a time, in a small town nestled at the foot of towering mountains, there lived a young girl named Lily. Lily was an adventurous and imaginative child, always dreaming of exploring the world beyond her home. One day, while wandering through the attic of her grandmother's house, she stumbled upon a dusty old backpack tucked away in a forgotten corner. Intrigued, Lily opened the backpack and discovered that it was an enchanted one. Little did she know that this magical backpack would change her life forever.\n\nAs Lily touched the backpack, it shimmered with an otherworldly light. She reached inside and pulled out a map that seemed to shift and change before her eyes, revealing hidden paths and distant lands. Curiosity tugged at her heart, and without hesitation, Lily shouldered the backpack and embarked on her first adventure.\n\nWith each step she took, the backpack adjusted to her needs. When the path grew treacherous, the backpack transformed into sturdy hiking boots, providing her with the confidence to navigate rocky terrains. When a sudden rainstorm poured down, the backpack transformed into a cozy shelter, shielding her from the elements.\n\nAs days turned into weeks, Lily's journey took her through lush forests, across treacherous rivers, and to the summits of towering mountains. The backpack became her loyal companion, guiding her along the way, offering comfort, protection, and inspiration.\n\nAmong her many adventures, Lily encountered a lost fawn that she gently carried in the backpack's transformed cradle. She helped a friendly giant navigate a dense fog by using the backpack's built-in compass. And when faced with a raging river, the backpack magically transformed into a sturdy raft, transporting her safely to the other side.\n\nThrough her travels, Lily discovered the true power of the magic backpack. It wasn't just a magical object but a reflection of her own boundless imagination and tenacity. She realized that the world was hers to explore, and the backpack was a tool to help her reach her full potential.\n\nAs Lily returned home, enriched by her adventures and brimming with stories, she decided to share the magic of the backpack with others. She organized a special adventure club, where children could embark on their own extraordinary journeys using the backpack's transformative powers. Together, they explored hidden worlds, learned valuable lessons, and formed lifelong friendships.\n\nAnd so, the legend of the magic backpack lived on, passed down from generation to generation. It became a reminder that even the simplest objects can hold extraordinary power when combined with imagination, courage, and a sprinkle of magic."
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": [
        {
          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
          "probability": "NEGLIGIBLE"
        },
        {
          "category": "HARM_CATEGORY_HATE_SPEECH",
          "probability": "NEGLIGIBLE"
        },
        {
          "category": "HARM_CATEGORY_HARASSMENT",
          "probability": "NEGLIGIBLE"
        },
        {
          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
          "probability": "NEGLIGIBLE"
        }
      ]
    }
  ],
  "promptFeedback": {
    "safetyRatings": [
      {
        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        "probability": "NEGLIGIBLE"
      },
      {
        "category": "HARM_CATEGORY_HATE_SPEECH",
        "probability": "NEGLIGIBLE"
      },
      {
        "category": "HARM_CATEGORY_HARASSMENT",
        "probability": "NEGLIGIBLE"
      },
      {
        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
        "probability": "NEGLIGIBLE"
      }
    ]
  }
}

================================================
FILE: assets/json_models/generation_config.json
================================================
{
  "stopSequences": [
    "Title"
  ],
  "temperature": 1.0,
  "maxOutputTokens": 800,
  "topP": 0.8,
  "topK": 10
}

================================================
FILE: example/.gitignore
================================================
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/

# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.pub-cache/
.pub/
/build/

# Symbolication related
app.*.symbols

# Obfuscation related
app.*.map.json

# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release


================================================
FILE: example/.metadata
================================================
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
  revision: "2663184aa79047d0a33a14a3b607954f8fdd8730"
  channel: "stable"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
  platforms:
    - platform: root
      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
    - platform: android
      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
    - platform: ios
      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
    - platform: linux
      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
    - platform: macos
      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
    - platform: web
      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
    - platform: windows
      create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
      base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730

  # User provided section

  # List of Local paths (relative to this file) that should be
  # ignored by the migrate tool.
  #
  # Files that are not part of the templates will be ignored by default.
  unmanaged_files:
    - 'lib/main.dart'
    - 'ios/Runner.xcodeproj/project.pbxproj'


================================================
FILE: example/README.md
================================================
# example

A new Flutter project.

## Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)

For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.


================================================
FILE: example/analysis_options.yaml
================================================
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

linter:
  # The lint rules applied to this project can be customized in the
  # section below to disable rules from the `package:flutter_lints/flutter.yaml`
  # included above or to enable additional rules. A list of all available lints
  # and their documentation is published at https://dart.dev/lints.
  #
  # Instead of disabling a lint rule for the entire project in the
  # section below, it can also be suppressed for a single line of code
  # or a specific dart file by using the `// ignore: name_of_lint` and
  # `// ignore_for_file: name_of_lint` syntax on the line or in the file
  # producing the lint.
  rules:
    # avoid_print: false  # Uncomment to disable the `avoid_print` rule
    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options


================================================
FILE: example/android/.gitignore
================================================
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java

# Remember to never publicly share your keystore.
# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks


================================================
FILE: example/android/app/build.gradle
================================================
plugins {
    id "com.android.application"
    id "kotlin-android"
    // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
    id "dev.flutter.flutter-gradle-plugin"
}

android {
    namespace = "com.example.example"
    compileSdk = flutter.compileSdkVersion
    ndkVersion = flutter.ndkVersion

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId = "com.example.example"
        // You can update the following values to match your application needs.
        // For more information, see: https://flutter.dev/to/review-gradle-config.
        minSdk = flutter.minSdkVersion
        targetSdk = flutter.targetSdkVersion
        versionCode = flutter.versionCode
        versionName = flutter.versionName
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig = signingConfigs.debug
        }
    }
}

flutter {
    source = "../.."
}


================================================
FILE: example/android/app/src/debug/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- The INTERNET permission is required for development. Specifically,
         the Flutter tool needs it to communicate with the running application
         to allow setting breakpoints, to provide hot reload, etc.
    -->
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>


================================================
FILE: example/android/app/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application
        android:label="example"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:taskAffinity=""
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
    <!-- Required to query activities that can process text, see:
         https://developer.android.com/training/package-visibility and
         https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.

         In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
    <queries>
        <intent>
            <action android:name="android.intent.action.PROCESS_TEXT"/>
            <data android:mimeType="text/plain"/>
        </intent>
    </queries>
</manifest>


================================================
FILE: example/android/app/src/main/kotlin/com/example/example/MainActivity.kt
================================================
package com.example.example

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity()


================================================
FILE: example/android/app/src/main/res/drawable/launch_background.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />

    <!-- You can insert your own image assets here -->
    <!-- <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/launch_image" />
    </item> -->
</layer-list>


================================================
FILE: example/android/app/src/main/res/drawable-v21/launch_background.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="?android:colorBackground" />

    <!-- You can insert your own image assets here -->
    <!-- <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/launch_image" />
    </item> -->
</layer-list>


================================================
FILE: example/android/app/src/main/res/values/styles.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
    <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <!-- Show a splash screen on the activity. Automatically removed when
             the Flutter engine draws its first frame -->
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    <!-- Theme applied to the Android Window as soon as the process has started.
         This theme determines the color of the Android Window while your
         Flutter UI initializes, as well as behind your Flutter UI while its
         running.

         This Theme is only used starting with V2 of Flutter's Android embedding. -->
    <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <item name="android:windowBackground">?android:colorBackground</item>
    </style>
</resources>


================================================
FILE: example/android/app/src/main/res/values-night/styles.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <!-- Show a splash screen on the activity. Automatically removed when
             the Flutter engine draws its first frame -->
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    <!-- Theme applied to the Android Window as soon as the process has started.
         This theme determines the color of the Android Window while your
         Flutter UI initializes, as well as behind your Flutter UI while its
         running.

         This Theme is only used starting with V2 of Flutter's Android embedding. -->
    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="android:windowBackground">?android:colorBackground</item>
    </style>
</resources>


================================================
FILE: example/android/app/src/profile/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- The INTERNET permission is required for development. Specifically,
         the Flutter tool needs it to communicate with the running application
         to allow setting breakpoints, to provide hot reload, etc.
    -->
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>


================================================
FILE: example/android/build.gradle
================================================
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = "../build"
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(":app")
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}


================================================
FILE: example/android/gradle/wrapper/gradle-wrapper.properties
================================================
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip


================================================
FILE: example/android/gradle.properties
================================================
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true


================================================
FILE: example/android/settings.gradle
================================================
pluginManagement {
    def flutterSdkPath = {
        def properties = new Properties()
        file("local.properties").withInputStream { properties.load(it) }
        def flutterSdkPath = properties.getProperty("flutter.sdk")
        assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
        return flutterSdkPath
    }()

    includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")

    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "8.1.0" apply false
    id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}

include ":app"


================================================
FILE: example/ios/.gitignore
================================================
**/dgph
*.mode1v3
*.mode2v3
*.moved-aside
*.pbxuser
*.perspectivev3
**/*sync/
.sconsign.dblite
.tags*
**/.vagrant/
**/DerivedData/
Icon?
**/Pods/
**/.symlinks/
profile
xcuserdata
**/.generated/
Flutter/App.framework
Flutter/Flutter.framework
Flutter/Flutter.podspec
Flutter/Generated.xcconfig
Flutter/ephemeral/
Flutter/app.flx
Flutter/app.zip
Flutter/flutter_assets/
Flutter/flutter_export_environment.sh
ServiceDefinitions.json
Runner/GeneratedPluginRegistrant.*

# Exceptions to above rules.
!default.mode1v3
!default.mode2v3
!default.pbxuser
!default.perspectivev3


================================================
FILE: example/ios/Flutter/AppFrameworkInfo.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleDevelopmentRegion</key>
  <string>en</string>
  <key>CFBundleExecutable</key>
  <string>App</string>
  <key>CFBundleIdentifier</key>
  <string>io.flutter.flutter.app</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>App</string>
  <key>CFBundlePackageType</key>
  <string>FMWK</string>
  <key>CFBundleShortVersionString</key>
  <string>1.0</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>CFBundleVersion</key>
  <string>1.0</string>
  <key>MinimumOSVersion</key>
  <string>12.0</string>
</dict>
</plist>


================================================
FILE: example/ios/Flutter/Debug.xcconfig
================================================
#include "Generated.xcconfig"


================================================
FILE: example/ios/Flutter/Release.xcconfig
================================================
#include "Generated.xcconfig"


================================================
FILE: example/ios/Runner/AppDelegate.swift
================================================
import Flutter
import UIKit

@main
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}


================================================
FILE: example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "size" : "20x20",
      "idiom" : "iphone",
      "filename" : "Icon-App-20x20@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "20x20",
      "idiom" : "iphone",
      "filename" : "Icon-App-20x20@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "Icon-App-29x29@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "Icon-App-29x29@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "Icon-App-29x29@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "Icon-App-40x40@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "Icon-App-40x40@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "Icon-App-60x60@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "Icon-App-60x60@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "20x20",
      "idiom" : "ipad",
      "filename" : "Icon-App-20x20@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "20x20",
      "idiom" : "ipad",
      "filename" : "Icon-App-20x20@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "Icon-App-29x29@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "Icon-App-29x29@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "Icon-App-40x40@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "Icon-App-40x40@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "Icon-App-76x76@1x.png",
      "scale" : "1x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "Icon-App-76x76@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "83.5x83.5",
      "idiom" : "ipad",
      "filename" : "Icon-App-83.5x83.5@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "1024x1024",
      "idiom" : "ios-marketing",
      "filename" : "Icon-App-1024x1024@1x.png",
      "scale" : "1x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}


================================================
FILE: example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "LaunchImage.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "LaunchImage@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "filename" : "LaunchImage@3x.png",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}


================================================
FILE: example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
================================================
# Launch Screen Assets

You can customize the launch screen with your own desired assets by replacing the image files in this directory.

You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.

================================================
FILE: example/ios/Runner/Base.lproj/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
                            </imageView>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
                        </constraints>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="53" y="375"/>
        </scene>
    </scenes>
    <resources>
        <image name="LaunchImage" width="168" height="185"/>
    </resources>
</document>


================================================
FILE: example/ios/Runner/Base.lproj/Main.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
    </dependencies>
    <scenes>
        <!--Flutter View Controller-->
        <scene sceneID="tne-QT-ifu">
            <objects>
                <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
            </objects>
        </scene>
    </scenes>
</document>


================================================
FILE: example/ios/Runner/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>$(DEVELOPMENT_LANGUAGE)</string>
	<key>CFBundleDisplayName</key>
	<string>Example</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>example</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(FLUTTER_BUILD_NAME)</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>$(FLUTTER_BUILD_NUMBER)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>CADisableMinimumFrameDurationOnPhone</key>
	<true/>
	<key>UIApplicationSupportsIndirectInputEvents</key>
	<true/>
</dict>
</plist>


================================================
FILE: example/ios/Runner/Runner-Bridging-Header.h
================================================
#import "GeneratedPluginRegistrant.h"


================================================
FILE: example/ios/Runner.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 54;
	objects = {

/* Begin PBXBuildFile section */
		1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
		331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
		3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
		74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
		97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
		97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 97C146E61CF9000F007C117D /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 97C146ED1CF9000F007C117D;
			remoteInfo = Runner;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		9705A1C41CF9048500538489 /* Embed Frameworks */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 10;
			files = (
			);
			name = "Embed Frameworks";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
		331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
		331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
		74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
		74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
		97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
		97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
		97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		97C146EB1CF9000F007C117D /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		331C8082294A63A400263BE5 /* RunnerTests */ = {
			isa = PBXGroup;
			children = (
				331C807B294A618700263BE5 /* RunnerTests.swift */,
			);
			path = RunnerTests;
			sourceTree = "<group>";
		};
		9740EEB11CF90186004384FC /* Flutter */ = {
			isa = PBXGroup;
			children = (
				3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
				9740EEB21CF90195004384FC /* Debug.xcconfig */,
				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
				9740EEB31CF90195004384FC /* Generated.xcconfig */,
			);
			name = Flutter;
			sourceTree = "<group>";
		};
		97C146E51CF9000F007C117D = {
			isa = PBXGroup;
			children = (
				9740EEB11CF90186004384FC /* Flutter */,
				97C146F01CF9000F007C117D /* Runner */,
				97C146EF1CF9000F007C117D /* Products */,
				331C8082294A63A400263BE5 /* RunnerTests */,
			);
			sourceTree = "<group>";
		};
		97C146EF1CF9000F007C117D /* Products */ = {
			isa = PBXGroup;
			children = (
				97C146EE1CF9000F007C117D /* Runner.app */,
				331C8081294A63A400263BE5 /* RunnerTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		97C146F01CF9000F007C117D /* Runner */ = {
			isa = PBXGroup;
			children = (
				97C146FA1CF9000F007C117D /* Main.storyboard */,
				97C146FD1CF9000F007C117D /* Assets.xcassets */,
				97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
				97C147021CF9000F007C117D /* Info.plist */,
				1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
				1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
				74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
				74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
			);
			path = Runner;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		331C8080294A63A400263BE5 /* RunnerTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
			buildPhases = (
				331C807D294A63A400263BE5 /* Sources */,
				331C807F294A63A400263BE5 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				331C8086294A63A400263BE5 /* PBXTargetDependency */,
			);
			name = RunnerTests;
			productName = RunnerTests;
			productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		97C146ED1CF9000F007C117D /* Runner */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
			buildPhases = (
				9740EEB61CF901F6004384FC /* Run Script */,
				97C146EA1CF9000F007C117D /* Sources */,
				97C146EB1CF9000F007C117D /* Frameworks */,
				97C146EC1CF9000F007C117D /* Resources */,
				9705A1C41CF9048500538489 /* Embed Frameworks */,
				3B06AD1E1E4923F5004D2608 /* Thin Binary */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = Runner;
			productName = Runner;
			productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		97C146E61CF9000F007C117D /* Project object */ = {
			isa = PBXProject;
			attributes = {
				BuildIndependentTargetsInParallel = YES;
				LastUpgradeCheck = 1510;
				ORGANIZATIONNAME = "";
				TargetAttributes = {
					331C8080294A63A400263BE5 = {
						CreatedOnToolsVersion = 14.0;
						TestTargetID = 97C146ED1CF9000F007C117D;
					};
					97C146ED1CF9000F007C117D = {
						CreatedOnToolsVersion = 7.3.1;
						LastSwiftMigration = 1100;
					};
				};
			};
			buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
			compatibilityVersion = "Xcode 9.3";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 97C146E51CF9000F007C117D;
			productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				97C146ED1CF9000F007C117D /* Runner */,
				331C8080294A63A400263BE5 /* RunnerTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		331C807F294A63A400263BE5 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		97C146EC1CF9000F007C117D /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
				3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
				97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
				97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
			isa = PBXShellScriptBuildPhase;
			alwaysOutOfDate = 1;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
			);
			name = "Thin Binary";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
		};
		9740EEB61CF901F6004384FC /* Run Script */ = {
			isa = PBXShellScriptBuildPhase;
			alwaysOutOfDate = 1;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Run Script";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		331C807D294A63A400263BE5 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		97C146EA1CF9000F007C117D /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
				1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 97C146ED1CF9000F007C117D /* Runner */;
			targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		97C146FA1CF9000F007C117D /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				97C146FB1CF9000F007C117D /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				97C147001CF9000F007C117D /* Base */,
			);
			name = LaunchScreen.storyboard;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		249021D3217E4FDB00AE95B9 /* Profile */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_USER_SCRIPT_SANDBOXING = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				SUPPORTED_PLATFORMS = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Profile;
		};
		249021D4217E4FDB00AE95B9 /* Profile */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
				ENABLE_BITCODE = NO;
				INFOPLIST_FILE = Runner/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
				SWIFT_VERSION = 5.0;
				VERSIONING_SYSTEM = "apple-generic";
			};
			name = Profile;
		};
		331C8088294A63A400263BE5 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CODE_SIGN_STYLE = Automatic;
				CURRENT_PROJECT_VERSION = 1;
				GENERATE_INFOPLIST_FILE = YES;
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 5.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
			};
			name = Debug;
		};
		331C8089294A63A400263BE5 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CODE_SIGN_STYLE = Automatic;
				CURRENT_PROJECT_VERSION = 1;
				GENERATE_INFOPLIST_FILE = YES;
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_VERSION = 5.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
			};
			name = Release;
		};
		331C808A294A63A400263BE5 /* Profile */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CODE_SIGN_STYLE = Automatic;
				CURRENT_PROJECT_VERSION = 1;
				GENERATE_INFOPLIST_FILE = YES;
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_VERSION = 5.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
			};
			name = Profile;
		};
		97C147031CF9000F007C117D /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				ENABLE_USER_SCRIPT_SANDBOXING = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		97C147041CF9000F007C117D /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_USER_SCRIPT_SANDBOXING = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				SUPPORTED_PLATFORMS = iphoneos;
				SWIFT_COMPILATION_MODE = wholemodule;
				SWIFT_OPTIMIZATION_LEVEL = "-O";
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		97C147061CF9000F007C117D /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
				ENABLE_BITCODE = NO;
				INFOPLIST_FILE = Runner/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 5.0;
				VERSIONING_SYSTEM = "apple-generic";
			};
			name = Debug;
		};
		97C147071CF9000F007C117D /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
				ENABLE_BITCODE = NO;
				INFOPLIST_FILE = Runner/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
				SWIFT_VERSION = 5.0;
				VERSIONING_SYSTEM = "apple-generic";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				331C8088294A63A400263BE5 /* Debug */,
				331C8089294A63A400263BE5 /* Release */,
				331C808A294A63A400263BE5 /* Profile */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				97C147031CF9000F007C117D /* Debug */,
				97C147041CF9000F007C117D /* Release */,
				249021D3217E4FDB00AE95B9 /* Profile */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				97C147061CF9000F007C117D /* Debug */,
				97C147071CF9000F007C117D /* Release */,
				249021D4217E4FDB00AE95B9 /* Profile */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 97C146E61CF9000F007C117D /* Project object */;
}


================================================
FILE: example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:">
   </FileRef>
</Workspace>


================================================
FILE: example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IDEDidComputeMac32BitWarning</key>
	<true/>
</dict>
</plist>


================================================
FILE: example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>PreviewsEnabled</key>
	<false/>
</dict>
</plist>


================================================
FILE: example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "1510"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "97C146ED1CF9000F007C117D"
               BuildableName = "Runner.app"
               BlueprintName = "Runner"
               ReferencedContainer = "container:Runner.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
            BuildableName = "Runner.app"
            BlueprintName = "Runner"
            ReferencedContainer = "container:Runner.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <Testables>
         <TestableReference
            skipped = "NO"
            parallelizable = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "331C8080294A63A400263BE5"
               BuildableName = "RunnerTests.xctest"
               BlueprintName = "RunnerTests"
               ReferencedContainer = "container:Runner.xcodeproj">
            </BuildableReference>
         </TestableReference>
      </Testables>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
      <BuildableProductRunnable
         runnableDebuggingMode = "0">
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
            BuildableName = "Runner.app"
            BlueprintName = "Runner"
            ReferencedContainer = "container:Runner.xcodeproj">
         </BuildableReference>
      </BuildableProductRunnable>
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Profile"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <BuildableProductRunnable
         runnableDebuggingMode = "0">
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
            BuildableName = "Runner.app"
            BlueprintName = "Runner"
            ReferencedContainer = "container:Runner.xcodeproj">
         </BuildableReference>
      </BuildableProductRunnable>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: example/ios/Runner.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "group:Runner.xcodeproj">
   </FileRef>
</Workspace>


================================================
FILE: example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IDEDidComputeMac32BitWarning</key>
	<true/>
</dict>
</plist>


================================================
FILE: example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>PreviewsEnabled</key>
	<false/>
</dict>
</plist>


================================================
FILE: example/ios/RunnerTests/RunnerTests.swift
================================================
import Flutter
import UIKit
import XCTest

class RunnerTests: XCTestCase {

  func testExample() {
    // If you add code to the Runner application, consider adding tests here.
    // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
  }

}


================================================
FILE: example/lib/main.dart
================================================
import 'package:flutter_gemini/flutter_gemini.dart';

const apiKey = 'AIza------tMww4--------------';
void main() {
  Gemini.init(apiKey: apiKey, enableDebugging: true);

  Gemini.instance.prompt(parts: [
    Part.text('Write a story about a magic backpack'),
  ]).then((value) {
    print(value?.output);
  });
}


================================================
FILE: example/lib/widgets/chat_input_box.dart
================================================
import 'package:flutter/material.dart';

class ChatInputBox extends StatelessWidget {
  final TextEditingController? controller;
  final VoidCallback? onSend, onClickCamera;

  const ChatInputBox({
    super.key,
    this.controller,
    this.onSend,
    this.onClickCamera,
  });

  @override
  Widget build(BuildContext context) {
    return Card(
      margin: const EdgeInsets.all(8),
      child: Row(
        crossAxisAlignment: CrossAxisAlignment.end,
        children: [
          if (onClickCamera != null)
            Padding(
              padding: const EdgeInsets.all(4.0),
              child: IconButton(
                  onPressed: onClickCamera,
                  color: Theme.of(context).colorScheme.onSecondary,
                  icon: const Icon(Icons.file_copy_rounded)),
            ),
          Expanded(
              child: TextField(
            controller: controller,
            minLines: 1,
            maxLines: 6,
            cursorColor: Theme.of(context).colorScheme.inversePrimary,
            textInputAction: TextInputAction.newline,
            keyboardType: TextInputType.multiline,
            decoration: const InputDecoration(
              contentPadding: EdgeInsets.symmetric(vertical: 10, horizontal: 4),
              hintText: 'Message',
              border: InputBorder.none,
            ),
            onTapOutside: (event) =>
                FocusManager.instance.primaryFocus?.unfocus(),
          )),
          Padding(
            padding: const EdgeInsets.all(4),
            child: FloatingActionButton.small(
              onPressed: onSend,
              child: const Icon(Icons.send_rounded),
            ),
          )
        ],
      ),
    );
  }
}


================================================
FILE: example/lib/widgets/item_image_view.dart
================================================
import 'dart:typed_data';

import 'package:flutter/material.dart';

class ItemImageView extends StatelessWidget {
  final Uint8List bytes;
  const ItemImageView({super.key, required this.bytes});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(4),
      child: ClipRRect(
        borderRadius: BorderRadius.circular(12),
        child: Image.memory(
          bytes,
          width: 110,
          height: 110,
          fit: BoxFit.cover,
        ),
      ),
    );
  }
}


================================================
FILE: example/linux/.gitignore
================================================
flutter/ephemeral


================================================
FILE: example/linux/CMakeLists.txt
================================================
# Project-level configuration.
cmake_minimum_required(VERSION 3.10)
project(runner LANGUAGES CXX)

# The name of the executable created for the application. Change this to change
# the on-disk name of your application.
set(BINARY_NAME "example")
# The unique GTK application identifier for this application. See:
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
set(APPLICATION_ID "com.example.example")

# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake.
cmake_policy(SET CMP0063 NEW)

# Load bundled libraries from the lib/ directory relative to the binary.
set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")

# Root filesystem for cross-building.
if(FLUTTER_TARGET_PLATFORM_SYSROOT)
  set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})
  set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
  set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endif()

# Define build configuration options.
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
  set(CMAKE_BUILD_TYPE "Debug" CACHE
    STRING "Flutter build mode" FORCE)
  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
    "Debug" "Profile" "Release")
endif()

# Compilation settings that should be applied to most targets.
#
# Be cautious about adding new options here, as plugins use this function by
# default. In most cases, you should add new options to specific targets instead
# of modifying this function.
function(APPLY_STANDARD_SETTINGS TARGET)
  target_compile_features(${TARGET} PUBLIC cxx_std_14)
  target_compile_options(${TARGET} PRIVATE -Wall -Werror)
  target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
  target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
endfunction()

# Flutter library and tool build rules.
set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
add_subdirectory(${FLUTTER_MANAGED_DIR})

# System-level dependencies.
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)

add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")

# Define the application target. To change its name, change BINARY_NAME above,
# not the value here, or `flutter run` will no longer work.
#
# Any new source files that you add to the application should be added here.
add_executable(${BINARY_NAME}
  "main.cc"
  "my_application.cc"
  "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
)

# Apply the standard set of build settings. This can be removed for applications
# that need different build settings.
apply_standard_settings(${BINARY_NAME})

# Add dependency libraries. Add any application-specific dependencies here.
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)

# Run the Flutter tool portions of the build. This must not be removed.
add_dependencies(${BINARY_NAME} flutter_assemble)

# Only the install-generated bundle's copy of the executable will launch
# correctly, since the resources must in the right relative locations. To avoid
# people trying to run the unbundled copy, put it in a subdirectory instead of
# the default top-level location.
set_target_properties(${BINARY_NAME}
  PROPERTIES
  RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run"
)


# Generated plugin build rules, which manage building the plugins and adding
# them to the application.
include(flutter/generated_plugins.cmake)


# === Installation ===
# By default, "installing" just makes a relocatable bundle in the build
# directory.
set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
endif()

# Start with a clean build bundle directory every time.
install(CODE "
  file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\")
  " COMPONENT Runtime)

set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")

install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
  COMPONENT Runtime)

install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
  COMPONENT Runtime)

install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
  COMPONENT Runtime)

foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
  install(FILES "${bundled_library}"
    DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
    COMPONENT Runtime)
endforeach(bundled_library)

# Copy the native assets provided by the build.dart from all packages.
set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/")
install(DIRECTORY "${NATIVE_ASSETS_DIR}"
   DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
   COMPONENT Runtime)

# Fully re-copy the assets directory on each build to avoid having stale files
# from a previous install.
set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
install(CODE "
  file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
  " COMPONENT Runtime)
install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
  DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)

# Install the AOT library on non-Debug builds only.
if(NOT CMAKE_BUILD_TYPE MATCHES "Debug")
  install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
    COMPONENT Runtime)
endif()


================================================
FILE: example/linux/flutter/CMakeLists.txt
================================================
# This file controls Flutter-level build steps. It should not be edited.
cmake_minimum_required(VERSION 3.10)

set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")

# Configuration provided via flutter tool.
include(${EPHEMERAL_DIR}/generated_config.cmake)

# TODO: Move the rest of this into files in ephemeral. See
# https://github.com/flutter/flutter/issues/57146.

# Serves the same purpose as list(TRANSFORM ... PREPEND ...),
# which isn't available in 3.10.
function(list_prepend LIST_NAME PREFIX)
    set(NEW_LIST "")
    foreach(element ${${LIST_NAME}})
        list(APPEND NEW_LIST "${PREFIX}${element}")
    endforeach(element)
    set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE)
endfunction()

# === Flutter Library ===
# System-level dependencies.
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)

set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so")

# Published to parent scope for install step.
set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)
set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)
set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE)

list(APPEND FLUTTER_LIBRARY_HEADERS
  "fl_basic_message_channel.h"
  "fl_binary_codec.h"
  "fl_binary_messenger.h"
  "fl_dart_project.h"
  "fl_engine.h"
  "fl_json_message_codec.h"
  "fl_json_method_codec.h"
  "fl_message_codec.h"
  "fl_method_call.h"
  "fl_method_channel.h"
  "fl_method_codec.h"
  "fl_method_response.h"
  "fl_plugin_registrar.h"
  "fl_plugin_registry.h"
  "fl_standard_message_codec.h"
  "fl_standard_method_codec.h"
  "fl_string_codec.h"
  "fl_value.h"
  "fl_view.h"
  "flutter_linux.h"
)
list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/")
add_library(flutter INTERFACE)
target_include_directories(flutter INTERFACE
  "${EPHEMERAL_DIR}"
)
target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}")
target_link_libraries(flutter INTERFACE
  PkgConfig::GTK
  PkgConfig::GLIB
  PkgConfig::GIO
)
add_dependencies(flutter flutter_assemble)

# === Flutter tool backend ===
# _phony_ is a non-existent file to force this command to run every time,
# since currently there's no way to get a full input/output list from the
# flutter tool.
add_custom_command(
  OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}
    ${CMAKE_CURRENT_BINARY_DIR}/_phony_
  COMMAND ${CMAKE_COMMAND} -E env
    ${FLUTTER_TOOL_ENVIRONMENT}
    "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh"
      ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}
  VERBATIM
)
add_custom_target(flutter_assemble DEPENDS
  "${FLUTTER_LIBRARY}"
  ${FLUTTER_LIBRARY_HEADERS}
)


================================================
FILE: example/linux/flutter/generated_plugin_registrant.cc
================================================
//
//  Generated file. Do not edit.
//

// clang-format off

#include "generated_plugin_registrant.h"


void fl_register_plugins(FlPluginRegistry* registry) {
}


================================================
FILE: example/linux/flutter/generated_plugin_registrant.h
================================================
//
//  Generated file. Do not edit.
//

// clang-format off

#ifndef GENERATED_PLUGIN_REGISTRANT_
#define GENERATED_PLUGIN_REGISTRANT_

#include <flutter_linux/flutter_linux.h>

// Registers Flutter plugins.
void fl_register_plugins(FlPluginRegistry* registry);

#endif  // GENERATED_PLUGIN_REGISTRANT_


================================================
FILE: example/linux/flutter/generated_plugins.cmake
================================================
#
# Generated file, do not edit.
#

list(APPEND FLUTTER_PLUGIN_LIST
)

list(APPEND FLUTTER_FFI_PLUGIN_LIST
)

set(PLUGIN_BUNDLED_LIBRARIES)

foreach(plugin ${FLUTTER_PLUGIN_LIST})
  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
  target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
  list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin)

foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)


================================================
FILE: example/linux/main.cc
================================================
#include "my_application.h"

int main(int argc, char** argv) {
  g_autoptr(MyApplication) app = my_application_new();
  return g_application_run(G_APPLICATION(app), argc, argv);
}


================================================
FILE: example/linux/my_application.cc
================================================
#include "my_application.h"

#include <flutter_linux/flutter_linux.h>
#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
#endif

#include "flutter/generated_plugin_registrant.h"

struct _MyApplication {
  GtkApplication parent_instance;
  char** dart_entrypoint_arguments;
};

G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)

// Implements GApplication::activate.
static void my_application_activate(GApplication* application) {
  MyApplication* self = MY_APPLICATION(application);
  GtkWindow* window =
      GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));

  // Use a header bar when running in GNOME as this is the common style used
  // by applications and is the setup most users will be using (e.g. Ubuntu
  // desktop).
  // If running on X and not using GNOME then just use a traditional title bar
  // in case the window manager does more exotic layout, e.g. tiling.
  // If running on Wayland assume the header bar will work (may need changing
  // if future cases occur).
  gboolean use_header_bar = TRUE;
#ifdef GDK_WINDOWING_X11
  GdkScreen* screen = gtk_window_get_screen(window);
  if (GDK_IS_X11_SCREEN(screen)) {
    const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
    if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
      use_header_bar = FALSE;
    }
  }
#endif
  if (use_header_bar) {
    GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
    gtk_widget_show(GTK_WIDGET(header_bar));
    gtk_header_bar_set_title(header_bar, "example");
    gtk_header_bar_set_show_close_button(header_bar, TRUE);
    gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
  } else {
    gtk_window_set_title(window, "example");
  }

  gtk_window_set_default_size(window, 1280, 720);
  gtk_widget_show(GTK_WIDGET(window));

  g_autoptr(FlDartProject) project = fl_dart_project_new();
  fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);

  FlView* view = fl_view_new(project);
  gtk_widget_show(GTK_WIDGET(view));
  gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));

  fl_register_plugins(FL_PLUGIN_REGISTRY(view));

  gtk_widget_grab_focus(GTK_WIDGET(view));
}

// Implements GApplication::local_command_line.
static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
  MyApplication* self = MY_APPLICATION(application);
  // Strip out the first argument as it is the binary name.
  self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);

  g_autoptr(GError) error = nullptr;
  if (!g_application_register(application, nullptr, &error)) {
     g_warning("Failed to register: %s", error->message);
     *exit_status = 1;
     return TRUE;
  }

  g_application_activate(application);
  *exit_status = 0;

  return TRUE;
}

// Implements GApplication::startup.
static void my_application_startup(GApplication* application) {
  //MyApplication* self = MY_APPLICATION(object);

  // Perform any actions required at application startup.

  G_APPLICATION_CLASS(my_application_parent_class)->startup(application);
}

// Implements GApplication::shutdown.
static void my_application_shutdown(GApplication* application) {
  //MyApplication* self = MY_APPLICATION(object);

  // Perform any actions required at application shutdown.

  G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application);
}

// Implements GObject::dispose.
static void my_application_dispose(GObject* object) {
  MyApplication* self = MY_APPLICATION(object);
  g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
  G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
}

static void my_application_class_init(MyApplicationClass* klass) {
  G_APPLICATION_CLASS(klass)->activate = my_application_activate;
  G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
  G_APPLICATION_CLASS(klass)->startup = my_application_startup;
  G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
  G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
}

static void my_application_init(MyApplication* self) {}

MyApplication* my_application_new() {
  return MY_APPLICATION(g_object_new(my_application_get_type(),
                                     "application-id", APPLICATION_ID,
                                     "flags", G_APPLICATION_NON_UNIQUE,
                                     nullptr));
}


================================================
FILE: example/linux/my_application.h
================================================
#ifndef FLUTTER_MY_APPLICATION_H_
#define FLUTTER_MY_APPLICATION_H_

#include <gtk/gtk.h>

G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
                     GtkApplication)

/**
 * my_application_new:
 *
 * Creates a new Flutter-based application.
 *
 * Returns: a new #MyApplication.
 */
MyApplication* my_application_new();

#endif  // FLUTTER_MY_APPLICATION_H_


================================================
FILE: example/macos/.gitignore
================================================
# Flutter-related
**/Flutter/ephemeral/
**/Pods/

# Xcode-related
**/dgph
**/xcuserdata/


================================================
FILE: example/macos/Flutter/Flutter-Debug.xcconfig
================================================
#include "ephemeral/Flutter-Generated.xcconfig"


================================================
FILE: example/macos/Flutter/Flutter-Release.xcconfig
================================================
#include "ephemeral/Flutter-Generated.xcconfig"


================================================
FILE: example/macos/Flutter/GeneratedPluginRegistrant.swift
================================================
//
//  Generated file. Do not edit.
//

import FlutterMacOS
import Foundation


func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
}


================================================
FILE: example/macos/Runner/AppDelegate.swift
================================================
import Cocoa
import FlutterMacOS

@main
class AppDelegate: FlutterAppDelegate {
  override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
    return true
  }
}


================================================
FILE: example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "size" : "16x16",
      "idiom" : "mac",
      "filename" : "app_icon_16.png",
      "scale" : "1x"
    },
    {
      "size" : "16x16",
      "idiom" : "mac",
      "filename" : "app_icon_32.png",
      "scale" : "2x"
    },
    {
      "size" : "32x32",
      "idiom" : "mac",
      "filename" : "app_icon_32.png",
      "scale" : "1x"
    },
    {
      "size" : "32x32",
      "idiom" : "mac",
      "filename" : "app_icon_64.png",
      "scale" : "2x"
    },
    {
      "size" : "128x128",
      "idiom" : "mac",
      "filename" : "app_icon_128.png",
      "scale" : "1x"
    },
    {
      "size" : "128x128",
      "idiom" : "mac",
      "filename" : "app_icon_256.png",
      "scale" : "2x"
    },
    {
      "size" : "256x256",
      "idiom" : "mac",
      "filename" : "app_icon_256.png",
      "scale" : "1x"
    },
    {
      "size" : "256x256",
      "idiom" : "mac",
      "filename" : "app_icon_512.png",
      "scale" : "2x"
    },
    {
      "size" : "512x512",
      "idiom" : "mac",
      "filename" : "app_icon_512.png",
      "scale" : "1x"
    },
    {
      "size" : "512x512",
      "idiom" : "mac",
      "filename" : "app_icon_1024.png",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}


================================================
FILE: example/macos/Runner/Base.lproj/MainMenu.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
    <dependencies>
        <deployment identifier="macosx"/>
        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
            <connections>
                <outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
            </connections>
        </customObject>
        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
        <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Runner" customModuleProvider="target">
            <connections>
                <outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/>
                <outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
            </connections>
        </customObject>
        <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
        <menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
            <items>
                <menuItem title="APP_NAME" id="1Xt-HY-uBw">
                    <modifierMask key="keyEquivalentModifierMask"/>
                    <menu key="submenu" title="APP_NAME" systemMenu="apple" id="uQy-DD-JDr">
                        <items>
                            <menuItem title="About APP_NAME" id="5kV-Vb-QxS">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <connections>
                                    <action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
                                </connections>
                            </menuItem>
                            <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
                            <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
                            <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
                            <menuItem title="Services" id="NMo-om-nkz">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
                            </menuItem>
                            <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
                            <menuItem title="Hide APP_NAME" keyEquivalent="h" id="Olw-nP-bQN">
                                <connections>
                                    <action selector="hide:" target="-1" id="PnN-Uc-m68"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                <connections>
                                    <action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Show All" id="Kd2-mp-pUS">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <connections>
                                    <action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
                                </connections>
                            </menuItem>
                            <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
                            <menuItem title="Quit APP_NAME" keyEquivalent="q" id="4sb-4s-VLi">
                                <connections>
                                    <action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
                                </connections>
                            </menuItem>
                        </items>
                    </menu>
                </menuItem>
                <menuItem title="Edit" id="5QF-Oa-p0T">
                    <modifierMask key="keyEquivalentModifierMask"/>
                    <menu key="submenu" title="Edit" id="W48-6f-4Dl">
                        <items>
                            <menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
                                <connections>
                                    <action selector="undo:" target="-1" id="M6e-cu-g7V"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
                                <connections>
                                    <action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
                                </connections>
                            </menuItem>
                            <menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
                            <menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
                                <connections>
                                    <action selector="cut:" target="-1" id="YJe-68-I9s"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
                                <connections>
                                    <action selector="copy:" target="-1" id="G1f-GL-Joy"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
                                <connections>
                                    <action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                <connections>
                                    <action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Delete" id="pa3-QI-u2k">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <connections>
                                    <action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
                                <connections>
                                    <action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
                                </connections>
                            </menuItem>
                            <menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
                            <menuItem title="Find" id="4EN-yA-p0u">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Find" id="1b7-l0-nxx">
                                    <items>
                                        <menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
                                            <connections>
                                                <action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
                                            <connections>
                                                <action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
                                            <connections>
                                                <action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
                                            <connections>
                                                <action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
                                            <connections>
                                                <action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
                                            <connections>
                                                <action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
                                    <items>
                                        <menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
                                            <connections>
                                                <action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
                                            <connections>
                                                <action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
                                        <menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Substitutions" id="9ic-FL-obx">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
                                    <items>
                                        <menuItem title="Show Substitutions" id="z6F-FW-3nz">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
                                        <menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Smart Quotes" id="hQb-2v-fYv">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Smart Dashes" id="rgM-f4-ycn">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Smart Links" id="cwL-P1-jid">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Data Detectors" id="tRr-pd-1PS">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Text Replacement" id="HFQ-gK-NFA">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Transformations" id="2oI-Rn-ZJC">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Transformations" id="c8a-y6-VQd">
                                    <items>
                                        <menuItem title="Make Upper Case" id="vmV-6d-7jI">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Make Lower Case" id="d9M-CD-aMd">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Capitalize" id="UEZ-Bs-lqG">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                            <menuItem title="Speech" id="xrE-MZ-jX0">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <menu key="submenu" title="Speech" id="3rS-ZA-NoH">
                                    <items>
                                        <menuItem title="Start Speaking" id="Ynk-f8-cLZ">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/>
                                            </connections>
                                        </menuItem>
                                        <menuItem title="Stop Speaking" id="Oyz-dy-DGm">
                                            <modifierMask key="keyEquivalentModifierMask"/>
                                            <connections>
                                                <action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/>
                                            </connections>
                                        </menuItem>
                                    </items>
                                </menu>
                            </menuItem>
                        </items>
                    </menu>
                </menuItem>
                <menuItem title="View" id="H8h-7b-M4v">
                    <modifierMask key="keyEquivalentModifierMask"/>
                    <menu key="submenu" title="View" id="HyV-fh-RgO">
                        <items>
                            <menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
                                <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
                                <connections>
                                    <action selector="toggleFullScreen:" target="-1" id="dU3-MA-1Rq"/>
                                </connections>
                            </menuItem>
                        </items>
                    </menu>
                </menuItem>
                <menuItem title="Window" id="aUF-d1-5bR">
                    <modifierMask key="keyEquivalentModifierMask"/>
                    <menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
                        <items>
                            <menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
                                <connections>
                                    <action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
                                </connections>
                            </menuItem>
                            <menuItem title="Zoom" id="R4o-n2-Eq4">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <connections>
                                    <action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
                                </connections>
                            </menuItem>
                            <menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
                            <menuItem title="Bring All to Front" id="LE2-aR-0XJ">
                                <modifierMask key="keyEquivalentModifierMask"/>
                                <connections>
                                    <action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
                                </connections>
                            </menuItem>
                        </items>
                    </menu>
                </menuItem>
                <menuItem title="Help" id="EPT-qC-fAb">
                    <modifierMask key="keyEquivalentModifierMask"/>
                    <menu key="submenu" title="Help" systemMenu="help" id="rJ0-wn-3NY"/>
                </menuItem>
            </items>
            <point key="canvasLocation" x="142" y="-258"/>
        </menu>
        <window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="Runner" customModuleProvider="target">
            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
            <rect key="contentRect" x="335" y="390" width="800" height="600"/>
            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1577"/>
            <view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
                <rect key="frame" x="0.0" y="0.0" width="800" height="600"/>
                <autoresizingMask key="autoresizingMask"/>
            </view>
        </window>
    </objects>
</document>


================================================
FILE: example/macos/Runner/Configs/AppInfo.xcconfig
================================================
// Application-level settings for the Runner target.
//
// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
// future. If not, the values below would default to using the project name when this becomes a
// 'flutter create' template.

// The application's name. By default this is also the title of the Flutter window.
PRODUCT_NAME = example

// The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = com.example.example

// The copyright displayed in application information
PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved.


================================================
FILE: example/macos/Runner/Configs/Debug.xcconfig
================================================
#include "../../Flutter/Flutter-Debug.xcconfig"
#include "Warnings.xcconfig"


================================================
FILE: example/macos/Runner/Configs/Release.xcconfig
================================================
#include "../../Flutter/Flutter-Release.xcconfig"
#include "Warnings.xcconfig"


================================================
FILE: example/macos/Runner/Configs/Warnings.xcconfig
================================================
WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
GCC_WARN_UNDECLARED_SELECTOR = YES
CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CLANG_WARN_PRAGMA_PACK = YES
CLANG_WARN_STRICT_PROTOTYPES = YES
CLANG_WARN_COMMA = YES
GCC_WARN_STRICT_SELECTOR_MATCH = YES
CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
GCC_WARN_SHADOW = YES
CLANG_WARN_UNREACHABLE_CODE = YES


================================================
FILE: example/macos/Runner/DebugProfile.entitlements
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.security.app-sandbox</key>
	<true/>
	<key>com.apple.security.cs.allow-jit</key>
	<true/>
	<key>com.apple.security.network.server</key>
	<true/>
</dict>
</plist>


================================================
FILE: example/macos/Runner/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>$(DEVELOPMENT_LANGUAGE)</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIconFile</key>
	<string></string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(FLUTTER_BUILD_NAME)</string>
	<key>CFBundleVersion</key>
	<string>$(FLUTTER_BUILD_NUMBER)</string>
	<key>LSMinimumSystemVersion</key>
	<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
	<key>NSHumanReadableCopyright</key>
	<string>$(PRODUCT_COPYRIGHT)</string>
	<key>NSMainNibFile</key>
	<string>MainMenu</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
</dict>
</plist>


================================================
FILE: example/macos/Runner/MainFlutterWindow.swift
================================================
import Cocoa
import FlutterMacOS

class MainFlutterWindow: NSWindow {
  override func awakeFromNib() {
    let flutterViewController = FlutterViewController()
    let windowFrame = self.frame
    self.contentViewController = flutterViewController
    self.setFrame(windowFrame, display: true)

    RegisterGeneratedPlugins(registry: flutterViewController)

    super.awakeFromNib()
  }
}


================================================
FILE: example/macos/Runner/Release.entitlements
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.security.app-sandbox</key>
	<true/>
</dict>
</plist>


================================================
FILE: example/macos/Runner.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 54;
	objects = {

/* Begin PBXAggregateTarget section */
		33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
			isa = PBXAggregateTarget;
			buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
			buildPhases = (
				33CC111E2044C6BF0003C045 /* ShellScript */,
			);
			dependencies = (
			);
			name = "Flutter Assemble";
			productName = FLX;
		};
/* End PBXAggregateTarget section */

/* Begin PBXBuildFile section */
		331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
		335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
		33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
		33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
		33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
		33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 33CC10EC2044A3C60003C045;
			remoteInfo = Runner;
		};
		33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 33CC111A2044C6BA0003C045;
			remoteInfo = FLX;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		33CC110E2044A8840003C045 /* Bundle Framework */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 10;
			files = (
			);
			name = "Bundle Framework";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
		333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
		335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
		33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
		33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
		33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
		33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
		33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
		33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
		33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
		33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
		33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
		33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		331C80D2294CF70F00263BE5 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		33CC10EA2044A3C60003C045 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		331C80D6294CF71000263BE5 /* RunnerTests */ = {
			isa = PBXGroup;
			children = (
				331C80D7294CF71000263BE5 /* RunnerTests.swift */,
			);
			path = RunnerTests;
			sourceTree = "<group>";
		};
		33BA886A226E78AF003329D5 /* Configs */ = {
			isa = PBXGroup;
			children = (
				33E5194F232828860026EE4D /* AppInfo.xcconfig */,
				9740EEB21CF90195004384FC /* Debug.xcconfig */,
				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
				333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
			);
			path = Configs;
			sourceTree = "<group>";
		};
		33CC10E42044A3C60003C045 = {
			isa = PBXGroup;
			children = (
				33FAB671232836740065AC1E /* Runner */,
				33CEB47122A05771004F2AC0 /* Flutter */,
				331C80D6294CF71000263BE5 /* RunnerTests */,
				33CC10EE2044A3C60003C045 /* Products */,
				D73912EC22F37F3D000D13A0 /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		33CC10EE2044A3C60003C045 /* Products */ = {
			isa = PBXGroup;
			children = (
				33CC10ED2044A3C60003C045 /* example.app */,
				331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		33CC11242044D66E0003C045 /* Resources */ = {
			isa = PBXGroup;
			children = (
				33CC10F22044A3C60003C045 /* Assets.xcassets */,
				33CC10F42044A3C60003C045 /* MainMenu.xib */,
				33CC10F72044A3C60003C045 /* Info.plist */,
			);
			name = Resources;
			path = ..;
			sourceTree = "<group>";
		};
		33CEB47122A05771004F2AC0 /* Flutter */ = {
			isa = PBXGroup;
			children = (
				335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
				33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
				33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
				33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
			);
			path = Flutter;
			sourceTree = "<group>";
		};
		33FAB671232836740065AC1E /* Runner */ = {
			isa = PBXGroup;
			children = (
				33CC10F02044A3C60003C045 /* AppDelegate.swift */,
				33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
				33E51913231747F40026EE4D /* DebugProfile.entitlements */,
				33E51914231749380026EE4D /* Release.entitlements */,
				33CC11242044D66E0003C045 /* Resources */,
				33BA886A226E78AF003329D5 /* Configs */,
			);
			path = Runner;
			sourceTree = "<group>";
		};
		D73912EC22F37F3D000D13A0 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		331C80D4294CF70F00263BE5 /* RunnerTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
			buildPhases = (
				331C80D1294CF70F00263BE5 /* Sources */,
				331C80D2294CF70F00263BE5 /* Frameworks */,
				331C80D3294CF70F00263BE5 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				331C80DA294CF71000263BE5 /* PBXTargetDependency */,
			);
			name = RunnerTests;
			productName = RunnerTests;
			productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		33CC10EC2044A3C60003C045 /* Runner */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
			buildPhases = (
				33CC10E92044A3C60003C045 /* Sources */,
				33CC10EA2044A3C60003C045 /* Frameworks */,
				33CC10EB2044A3C60003C045 /* Resources */,
				33CC110E2044A8840003C045 /* Bundle Framework */,
				3399D490228B24CF009A79C7 /* ShellScript */,
			);
			buildRules = (
			);
			dependencies = (
				33CC11202044C79F0003C045 /* PBXTargetDependency */,
			);
			name = Runner;
			productName = Runner;
			productReference = 33CC10ED2044A3C60003C045 /* example.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		33CC10E52044A3C60003C045 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				BuildIndependentTargetsInParallel = YES;
				LastSwiftUpdateCheck = 0920;
				LastUpgradeCheck = 1510;
				ORGANIZATIONNAME = "";
				TargetAttributes = {
					331C80D4294CF70F00263BE5 = {
						CreatedOnToolsVersion = 14.0;
						TestTargetID = 33CC10EC2044A3C60003C045;
					};
					33CC10EC2044A3C60003C045 = {
						CreatedOnToolsVersion = 9.2;
						LastSwiftMigration = 1100;
						ProvisioningStyle = Automatic;
						SystemCapabilities = {
							com.apple.Sandbox = {
								enabled = 1;
							};
						};
					};
					33CC111A2044C6BA0003C045 = {
						CreatedOnToolsVersion = 9.2;
						ProvisioningStyle = Manual;
					};
				};
			};
			buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
			compatibilityVersion = "Xcode 9.3";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 33CC10E42044A3C60003C045;
			productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				33CC10EC2044A3C60003C045 /* Runner */,
				331C80D4294CF70F00263BE5 /* RunnerTests */,
				33CC111A2044C6BA0003C045 /* Flutter Assemble */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		331C80D3294CF70F00263BE5 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		33CC10EB2044A3C60003C045 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
				33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		3399D490228B24CF009A79C7 /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			alwaysOutOfDate = 1;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
		};
		33CC111E2044C6BF0003C045 /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
				Flutter/ephemeral/FlutterInputs.xcfilelist,
			);
			inputPaths = (
				Flutter/ephemeral/tripwire,
			);
			outputFileListPaths = (
				Flutter/ephemeral/FlutterOutputs.xcfilelist,
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		331C80D1294CF70F00263BE5 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		33CC10E92044A3C60003C045 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
				33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
				335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 33CC10EC2044A3C60003C045 /* Runner */;
			targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
		};
		33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
			targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				33CC10F52044A3C60003C045 /* Base */,
			);
			name = MainMenu.xib;
			path = Runner;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		331C80DB294CF71000263BE5 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CURRENT_PROJECT_VERSION = 1;
				GENERATE_INFOPLIST_FILE = YES;
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_VERSION = 5.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example";
			};
			name = Debug;
		};
		331C80DC294CF71000263BE5 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CURRENT_PROJECT_VERSION = 1;
				GENERATE_INFOPLIST_FILE = YES;
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_VERSION = 5.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example";
			};
			name = Release;
		};
		331C80DD294CF71000263BE5 /* Profile */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CURRENT_PROJECT_VERSION = 1;
				GENERATE_INFOPLIST_FILE = YES;
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_VERSION = 5.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example";
			};
			name = Profile;
		};
		338D0CE9231458BD00FA5F75 /* Profile */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CODE_SIGN_IDENTITY = "-";
				COPY_PHASE_STRIP = NO;
				DEAD_CODE_STRIPPING = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_USER_SCRIPT_SANDBOXING = NO;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.14;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = macosx;
				SWIFT_COMPILATION_MODE = wholemodule;
				SWIFT_OPTIMIZATION_LEVEL = "-O";
			};
			name = Profile;
		};
		338D0CEA231458BD00FA5F75 /* Profile */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
				CODE_SIGN_STYLE = Automatic;
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = Runner/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/../Frameworks",
				);
				PROVISIONING_PROFILE_SPECIFIER = "";
				SWIFT_VERSION = 5.0;
			};
			name = Profile;
		};
		338D0CEB231458BD00FA5F75 /* Profile */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_STYLE = Manual;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Profile;
		};
		33CC10F92044A3C60003C045 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
		
Download .txt
gitextract_vpbqk1zj/

├── .gitignore
├── .metadata
├── CHANGELOG.md
├── LICENSE
├── README.md
├── analysis_options.yaml
├── assets/
│   └── json_models/
│       ├── embeding_response.json
│       ├── embedings_response.json
│       ├── gemini_model.json
│       ├── gemini_response.json
│       └── generation_config.json
├── example/
│   ├── .gitignore
│   ├── .metadata
│   ├── README.md
│   ├── analysis_options.yaml
│   ├── android/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── debug/
│   │   │       │   └── AndroidManifest.xml
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   ├── kotlin/
│   │   │       │   │   └── com/
│   │   │       │   │       └── example/
│   │   │       │   │           └── example/
│   │   │       │   │               └── MainActivity.kt
│   │   │       │   └── res/
│   │   │       │       ├── drawable/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── drawable-v21/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── values/
│   │   │       │       │   └── styles.xml
│   │   │       │       └── values-night/
│   │   │       │           └── styles.xml
│   │   │       └── profile/
│   │   │           └── AndroidManifest.xml
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   └── settings.gradle
│   ├── ios/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── AppFrameworkInfo.plist
│   │   │   ├── Debug.xcconfig
│   │   │   └── Release.xcconfig
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── LaunchImage.imageset/
│   │   │   │       ├── Contents.json
│   │   │   │       └── README.md
│   │   │   ├── Base.lproj/
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Info.plist
│   │   │   └── Runner-Bridging-Header.h
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata/
│   │   │   │       ├── IDEWorkspaceChecks.plist
│   │   │   │       └── WorkspaceSettings.xcsettings
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       ├── IDEWorkspaceChecks.plist
│   │   │       └── WorkspaceSettings.xcsettings
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── lib/
│   │   ├── main.dart
│   │   └── widgets/
│   │       ├── chat_input_box.dart
│   │       └── item_image_view.dart
│   ├── linux/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── flutter/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── generated_plugin_registrant.cc
│   │   │   ├── generated_plugin_registrant.h
│   │   │   └── generated_plugins.cmake
│   │   ├── main.cc
│   │   ├── my_application.cc
│   │   └── my_application.h
│   ├── macos/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── Flutter-Debug.xcconfig
│   │   │   ├── Flutter-Release.xcconfig
│   │   │   └── GeneratedPluginRegistrant.swift
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   └── AppIcon.appiconset/
│   │   │   │       └── Contents.json
│   │   │   ├── Base.lproj/
│   │   │   │   └── MainMenu.xib
│   │   │   ├── Configs/
│   │   │   │   ├── AppInfo.xcconfig
│   │   │   │   ├── Debug.xcconfig
│   │   │   │   ├── Release.xcconfig
│   │   │   │   └── Warnings.xcconfig
│   │   │   ├── DebugProfile.entitlements
│   │   │   ├── Info.plist
│   │   │   ├── MainFlutterWindow.swift
│   │   │   └── Release.entitlements
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   └── xcshareddata/
│   │   │   │       └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── pubspec.yaml
│   ├── test/
│   │   └── widget_test.dart
│   ├── web/
│   │   ├── index.html
│   │   └── manifest.json
│   └── windows/
│       ├── .gitignore
│       ├── CMakeLists.txt
│       ├── flutter/
│       │   ├── CMakeLists.txt
│       │   ├── generated_plugin_registrant.cc
│       │   ├── generated_plugin_registrant.h
│       │   └── generated_plugins.cmake
│       └── runner/
│           ├── CMakeLists.txt
│           ├── Runner.rc
│           ├── flutter_window.cpp
│           ├── flutter_window.h
│           ├── main.cpp
│           ├── resource.h
│           ├── runner.exe.manifest
│           ├── utils.cpp
│           ├── utils.h
│           ├── win32_window.cpp
│           └── win32_window.h
├── example_old/
│   ├── .gitignore
│   ├── .metadata
│   ├── README.md
│   ├── analysis_options.yaml
│   ├── android/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── build.gradle
│   │   │   └── src/
│   │   │       ├── debug/
│   │   │       │   └── AndroidManifest.xml
│   │   │       ├── main/
│   │   │       │   ├── AndroidManifest.xml
│   │   │       │   ├── kotlin/
│   │   │       │   │   └── com/
│   │   │       │   │       └── example/
│   │   │       │   │           └── example/
│   │   │       │   │               └── MainActivity.kt
│   │   │       │   └── res/
│   │   │       │       ├── drawable/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── drawable-v21/
│   │   │       │       │   └── launch_background.xml
│   │   │       │       ├── values/
│   │   │       │       │   └── styles.xml
│   │   │       │       └── values-night/
│   │   │       │           └── styles.xml
│   │   │       └── profile/
│   │   │           └── AndroidManifest.xml
│   │   ├── build.gradle
│   │   ├── gradle/
│   │   │   └── wrapper/
│   │   │       └── gradle-wrapper.properties
│   │   ├── gradle.properties
│   │   └── settings.gradle
│   ├── assets/
│   │   └── lottie/
│   │       └── ai.json
│   ├── ios/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── AppFrameworkInfo.plist
│   │   │   ├── Debug.xcconfig
│   │   │   └── Release.xcconfig
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── LaunchImage.imageset/
│   │   │   │       ├── Contents.json
│   │   │   │       └── README.md
│   │   │   ├── Base.lproj/
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Info.plist
│   │   │   └── Runner-Bridging-Header.h
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata/
│   │   │   │       ├── IDEWorkspaceChecks.plist
│   │   │   │       └── WorkspaceSettings.xcsettings
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       ├── IDEWorkspaceChecks.plist
│   │   │       └── WorkspaceSettings.xcsettings
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── lib/
│   │   ├── main.dart
│   │   ├── sections/
│   │   │   ├── chat.dart
│   │   │   ├── chat_stream.dart
│   │   │   ├── embed_batch_contents.dart
│   │   │   ├── embed_content.dart
│   │   │   ├── response_widget_stream.dart
│   │   │   ├── stream.dart
│   │   │   ├── text_and_image.dart
│   │   │   └── text_only.dart
│   │   └── widgets/
│   │       ├── chat_input_box.dart
│   │       └── item_image_view.dart
│   ├── linux/
│   │   ├── .gitignore
│   │   ├── CMakeLists.txt
│   │   ├── flutter/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── generated_plugin_registrant.cc
│   │   │   ├── generated_plugin_registrant.h
│   │   │   └── generated_plugins.cmake
│   │   ├── main.cc
│   │   ├── my_application.cc
│   │   └── my_application.h
│   ├── macos/
│   │   ├── .gitignore
│   │   ├── Flutter/
│   │   │   ├── Flutter-Debug.xcconfig
│   │   │   ├── Flutter-Release.xcconfig
│   │   │   └── GeneratedPluginRegistrant.swift
│   │   ├── Runner/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   └── AppIcon.appiconset/
│   │   │   │       └── Contents.json
│   │   │   ├── Base.lproj/
│   │   │   │   └── MainMenu.xib
│   │   │   ├── Configs/
│   │   │   │   ├── AppInfo.xcconfig
│   │   │   │   ├── Debug.xcconfig
│   │   │   │   ├── Release.xcconfig
│   │   │   │   └── Warnings.xcconfig
│   │   │   ├── DebugProfile.entitlements
│   │   │   ├── Info.plist
│   │   │   ├── MainFlutterWindow.swift
│   │   │   └── Release.entitlements
│   │   ├── Runner.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   └── xcshareddata/
│   │   │   │       └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Runner.xcscheme
│   │   ├── Runner.xcworkspace/
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   └── RunnerTests/
│   │       └── RunnerTests.swift
│   ├── pubspec.yaml
│   ├── test/
│   │   └── widget_test.dart
│   ├── web/
│   │   ├── index.html
│   │   └── manifest.json
│   └── windows/
│       ├── .gitignore
│       ├── CMakeLists.txt
│       ├── flutter/
│       │   ├── CMakeLists.txt
│       │   ├── generated_plugin_registrant.cc
│       │   ├── generated_plugin_registrant.h
│       │   └── generated_plugins.cmake
│       └── runner/
│           ├── CMakeLists.txt
│           ├── Runner.rc
│           ├── flutter_window.cpp
│           ├── flutter_window.h
│           ├── main.cpp
│           ├── resource.h
│           ├── runner.exe.manifest
│           ├── utils.cpp
│           ├── utils.h
│           ├── win32_window.cpp
│           └── win32_window.h
├── lib/
│   ├── flutter_gemini.dart
│   └── src/
│       ├── config/
│       │   └── constants.dart
│       ├── implement/
│       │   ├── gemini_implement.dart
│       │   └── gemini_service.dart
│       ├── init.dart
│       ├── models/
│       │   ├── candidates/
│       │   │   └── candidates.dart
│       │   ├── content/
│       │   │   └── content.dart
│       │   ├── gemini_file/
│       │   │   └── gemini_file_part.dart
│       │   ├── gemini_model/
│       │   │   └── gemini_model.dart
│       │   ├── gemini_response/
│       │   │   └── gemini_response.dart
│       │   ├── gemini_safety/
│       │   │   ├── gemini_safety.dart
│       │   │   ├── gemini_safety_category.dart
│       │   │   └── gemini_safety_threshold.dart
│       │   ├── generation_config/
│       │   │   └── generation_config.dart
│       │   ├── part/
│       │   │   ├── file_data_part.dart
│       │   │   ├── file_part.dart
│       │   │   ├── inline_data.dart
│       │   │   ├── inline_part.dart
│       │   │   ├── part.dart
│       │   │   └── text_part.dart
│       │   ├── parts/
│       │   │   └── parts.dart
│       │   ├── prompt_feedback/
│       │   │   └── prompt_feedback.dart
│       │   └── safety_ratings/
│       │       └── safety_ratings.dart
│       ├── repository/
│       │   ├── api_interface.dart
│       │   └── gemini_interface.dart
│       └── utils/
│           ├── candidate_extension.dart
│           ├── gemini_data_builder.dart
│           ├── gemini_exception.dart
│           ├── gemini_exception_handler_mixin.dart
│           ├── gemini_model_manager.dart
│           ├── gemini_request_handler.dart
│           └── gemini_response_parser.dart
├── pubspec.yaml
└── test/
    ├── features/
    │   ├── chat_test.dart
    │   ├── count_tokens_test.dart
    │   ├── info_test.dart
    │   ├── list_models_test.dart
    │   └── text_test.dart
    └── flutter_gemini_test.dart
Download .txt
SYMBOL INDEX (246 symbols across 72 files)

FILE: example/lib/main.dart
  function main (line 4) | void main()

FILE: example/lib/widgets/chat_input_box.dart
  class ChatInputBox (line 3) | class ChatInputBox extends StatelessWidget {
    method build (line 15) | Widget build(BuildContext context)

FILE: example/lib/widgets/item_image_view.dart
  class ItemImageView (line 5) | class ItemImageView extends StatelessWidget {
    method build (line 10) | Widget build(BuildContext context)

FILE: example/linux/flutter/generated_plugin_registrant.cc
  function fl_register_plugins (line 10) | void fl_register_plugins(FlPluginRegistry* registry) {

FILE: example/linux/main.cc
  function main (line 3) | int main(int argc, char** argv) {

FILE: example/linux/my_application.cc
  type _MyApplication (line 10) | struct _MyApplication {
  function my_application_activate (line 18) | static void my_application_activate(GApplication* application) {
  function gboolean (line 66) | static gboolean my_application_local_command_line(GApplication* applicat...
  function my_application_startup (line 85) | static void my_application_startup(GApplication* application) {
  function my_application_shutdown (line 94) | static void my_application_shutdown(GApplication* application) {
  function my_application_dispose (line 103) | static void my_application_dispose(GObject* object) {
  function my_application_class_init (line 109) | static void my_application_class_init(MyApplicationClass* klass) {
  function my_application_init (line 117) | static void my_application_init(MyApplication* self) {}
  function MyApplication (line 119) | MyApplication* my_application_new() {

FILE: example/test/widget_test.dart
  function main (line 10) | void main()

FILE: example/windows/flutter/generated_plugin_registrant.cc
  function RegisterPlugins (line 10) | void RegisterPlugins(flutter::PluginRegistry* registry) {

FILE: example/windows/runner/flutter_window.cpp
  function LRESULT (line 50) | LRESULT

FILE: example/windows/runner/flutter_window.h
  function class (line 12) | class FlutterWindow : public Win32Window {

FILE: example/windows/runner/main.cpp
  function wWinMain (line 8) | int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,

FILE: example/windows/runner/utils.cpp
  function CreateAndAttachConsole (line 10) | void CreateAndAttachConsole() {
  function GetCommandLineArguments (line 24) | std::vector<std::string> GetCommandLineArguments() {
  function Utf8FromUtf16 (line 44) | std::string Utf8FromUtf16(const wchar_t* utf16_string) {

FILE: example/windows/runner/win32_window.cpp
  function Scale (line 36) | int Scale(int source, double scale_factor) {
  function EnableFullDpiSupportIfAvailable (line 42) | void EnableFullDpiSupportIfAvailable(HWND hwnd) {
  class WindowClassRegistrar (line 59) | class WindowClassRegistrar {
    method WindowClassRegistrar (line 64) | static WindowClassRegistrar* GetInstance() {
    method WindowClassRegistrar (line 80) | WindowClassRegistrar() = default;
  function wchar_t (line 89) | const wchar_t* WindowClassRegistrar::GetWindowClass() {
  function LRESULT (line 157) | LRESULT CALLBACK Win32Window::WndProc(HWND const window,
  function LRESULT (line 176) | LRESULT
  function Win32Window (line 236) | Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept {
  function RECT (line 252) | RECT Win32Window::GetClientArea() {
  function HWND (line 258) | HWND Win32Window::GetHandle() {

FILE: example/windows/runner/win32_window.h
  type Size (line 21) | struct Size {

FILE: example_old/lib/main.dart
  function main (line 12) | void main()
  class MyApp (line 22) | class MyApp extends StatelessWidget {
    method build (line 26) | Widget build(BuildContext context)
  class SectionItem (line 39) | class SectionItem {
  class MyHomePage (line 47) | class MyHomePage extends StatefulWidget {
    method createState (line 51) | State<MyHomePage> createState()
  class _MyHomePageState (line 54) | class _MyHomePageState extends State<MyHomePage> {
    method build (line 70) | Widget build(BuildContext context)

FILE: example_old/lib/sections/chat.dart
  class SectionChat (line 6) | class SectionChat extends StatefulWidget {
    method createState (line 10) | State<SectionChat> createState()
  class _SectionChatState (line 13) | class _SectionChatState extends State<SectionChat> {
    method build (line 24) | Widget build(BuildContext context)
    method chatItem (line 66) | Widget chatItem(BuildContext context, int index)

FILE: example_old/lib/sections/chat_stream.dart
  class SectionStreamChat (line 6) | class SectionStreamChat extends StatefulWidget {
    method createState (line 10) | State<SectionStreamChat> createState()
  class _SectionStreamChatState (line 13) | class _SectionStreamChatState extends State<SectionStreamChat> {
    method build (line 24) | Widget build(BuildContext context)
    method chatItem (line 76) | Widget chatItem(BuildContext context, int index)

FILE: example_old/lib/sections/embed_batch_contents.dart
  class SectionBatchEmbedContents (line 6) | class SectionBatchEmbedContents extends StatefulWidget {
    method createState (line 10) | State<SectionBatchEmbedContents> createState()
  class _SectionTextInputStreamState (line 14) | class _SectionTextInputStreamState extends State<SectionBatchEmbedConten...
    method build (line 26) | Widget build(BuildContext context)

FILE: example_old/lib/sections/embed_content.dart
  class SectionEmbedContent (line 6) | class SectionEmbedContent extends StatefulWidget {
    method createState (line 10) | State<SectionEmbedContent> createState()
  class _SectionEmbedContentState (line 13) | class _SectionEmbedContentState extends State<SectionEmbedContent> {
    method build (line 25) | Widget build(BuildContext context)

FILE: example_old/lib/sections/response_widget_stream.dart
  class ResponseWidgetSection (line 7) | class ResponseWidgetSection extends StatefulWidget {
    method createState (line 11) | State<ResponseWidgetSection> createState()
  class _SectionTextInputStreamState (line 14) | class _SectionTextInputStreamState extends State<ResponseWidgetSection> {
    method build (line 36) | Widget build(BuildContext context)

FILE: example_old/lib/sections/stream.dart
  class SectionTextStreamInput (line 9) | class SectionTextStreamInput extends StatefulWidget {
    method createState (line 13) | State<SectionTextStreamInput> createState()
  class _SectionTextInputStreamState (line 16) | class _SectionTextInputStreamState extends State<SectionTextStreamInput> {
    method build (line 36) | Widget build(BuildContext context)

FILE: example_old/lib/sections/text_and_image.dart
  class SectionTextAndImageInput (line 10) | class SectionTextAndImageInput extends StatefulWidget {
    method createState (line 14) | State<SectionTextAndImageInput> createState()
  class _SectionTextAndImageInputState (line 18) | class _SectionTextAndImageInputState extends State<SectionTextAndImageIn...
    method build (line 32) | Widget build(BuildContext context)

FILE: example_old/lib/sections/text_only.dart
  class SectionTextInput (line 7) | class SectionTextInput extends StatefulWidget {
    method createState (line 11) | State<SectionTextInput> createState()
  class _SectionTextInputState (line 14) | class _SectionTextInputState extends State<SectionTextInput> {
    method build (line 25) | Widget build(BuildContext context)

FILE: example_old/lib/widgets/chat_input_box.dart
  class ChatInputBox (line 3) | class ChatInputBox extends StatelessWidget {
    method build (line 15) | Widget build(BuildContext context)

FILE: example_old/lib/widgets/item_image_view.dart
  class ItemImageView (line 5) | class ItemImageView extends StatelessWidget {
    method build (line 10) | Widget build(BuildContext context)

FILE: example_old/linux/flutter/generated_plugin_registrant.cc
  function fl_register_plugins (line 11) | void fl_register_plugins(FlPluginRegistry* registry) {

FILE: example_old/linux/main.cc
  function main (line 3) | int main(int argc, char** argv) {

FILE: example_old/linux/my_application.cc
  type _MyApplication (line 10) | struct _MyApplication {
  function my_application_activate (line 18) | static void my_application_activate(GApplication* application) {
  function gboolean (line 66) | static gboolean my_application_local_command_line(GApplication* applicat...
  function my_application_dispose (line 85) | static void my_application_dispose(GObject* object) {
  function my_application_class_init (line 91) | static void my_application_class_init(MyApplicationClass* klass) {
  function my_application_init (line 97) | static void my_application_init(MyApplication* self) {}
  function MyApplication (line 99) | MyApplication* my_application_new() {

FILE: example_old/test/widget_test.dart
  function main (line 13) | void main()

FILE: example_old/windows/flutter/generated_plugin_registrant.cc
  function RegisterPlugins (line 11) | void RegisterPlugins(flutter::PluginRegistry* registry) {

FILE: example_old/windows/runner/flutter_window.cpp
  function LRESULT (line 50) | LRESULT

FILE: example_old/windows/runner/flutter_window.h
  function class (line 12) | class FlutterWindow : public Win32Window {

FILE: example_old/windows/runner/main.cpp
  function wWinMain (line 8) | int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,

FILE: example_old/windows/runner/utils.cpp
  function CreateAndAttachConsole (line 10) | void CreateAndAttachConsole() {
  function GetCommandLineArguments (line 24) | std::vector<std::string> GetCommandLineArguments() {
  function Utf8FromUtf16 (line 44) | std::string Utf8FromUtf16(const wchar_t* utf16_string) {

FILE: example_old/windows/runner/win32_window.cpp
  function Scale (line 36) | int Scale(int source, double scale_factor) {
  function EnableFullDpiSupportIfAvailable (line 42) | void EnableFullDpiSupportIfAvailable(HWND hwnd) {
  class WindowClassRegistrar (line 59) | class WindowClassRegistrar {
    method WindowClassRegistrar (line 64) | static WindowClassRegistrar* GetInstance() {
    method WindowClassRegistrar (line 80) | WindowClassRegistrar() = default;
  function wchar_t (line 89) | const wchar_t* WindowClassRegistrar::GetWindowClass() {
  function LRESULT (line 157) | LRESULT CALLBACK Win32Window::WndProc(HWND const window,
  function LRESULT (line 176) | LRESULT
  function Win32Window (line 236) | Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept {
  function RECT (line 252) | RECT Win32Window::GetClientArea() {
  function HWND (line 258) | HWND Win32Window::GetHandle() {

FILE: example_old/windows/runner/win32_window.h
  type Size (line 21) | struct Size {

FILE: lib/src/config/constants.dart
  class Constants (line 3) | class Constants {

FILE: lib/src/implement/gemini_implement.dart
  class GeminiImpl (line 14) | class GeminiImpl implements GeminiInterface {
    method batchEmbedContents (line 32) | Future<List<List<num>?>?> batchEmbedContents(
    method chat (line 49) | Future<Candidates?> chat(
    method countTokens (line 67) | Future<int?> countTokens(
    method embedContent (line 84) | Future<List<num>?> embedContent(
    method info (line 102) | Future<GeminiModel> info({required String model})
    method listModels (line 111) | Future<List<GeminiModel>> listModels()
    method text (line 120) | Future<Candidates?> text(
    method textAndImage (line 139) | Future<Candidates?> textAndImage({
    method prompt (line 157) | Future<Candidates?> prompt({
    method streamChat (line 174) | Stream<Candidates> streamChat(
    method streamGenerateContent (line 190) | Stream<Candidates> streamGenerateContent(
    method promptStream (line 207) | Stream<Candidates?> promptStream({
    method cancelRequest (line 223) | Future<void> cancelRequest()

FILE: lib/src/implement/gemini_service.dart
  class GeminiService (line 11) | class GeminiService extends ApiInterface with GeminiExceptionHandler {
    method post (line 33) | Future<Response> post(
    method get (line 80) | Future<Response> get(String route)
    method cancelRequest (line 92) | Future<void> cancelRequest()

FILE: lib/src/init.dart
  class Gemini (line 33) | class Gemini implements GeminiInterface {
    method chat (line 189) | Future<Candidates?> chat(List<Content> chats,
    method streamChat (line 217) | Stream<Candidates> streamChat(
    method countTokens (line 232) | Future<int?> countTokens(String text,
    method info (line 245) | Future<GeminiModel> info({required String model})
    method listModels (line 251) | Future<List<GeminiModel>> listModels()
    method streamGenerateContent (line 259) | Stream<Candidates> streamGenerateContent(String text,
    method textAndImage (line 274) | Future<Candidates?> textAndImage(
    method text (line 313) | Future<Candidates?> text(String text,
    method batchEmbedContents (line 332) | Future<List<List<num>?>?> batchEmbedContents(List<String> texts,
    method embedContent (line 355) | Future<List<num>?> embedContent(String text,
    method cancelRequest (line 368) | Future<void> cancelRequest()
    method prompt (line 396) | Future<Candidates?> prompt({
    method promptStream (line 435) | Stream<Candidates?> promptStream(

FILE: lib/src/models/candidates/candidates.dart
  class Candidates (line 7) | class Candidates {
    method toJson (line 46) | Map<String, dynamic> toJson(Map<String, dynamic> json)
    method copyWith (line 54) | Candidates copyWith(
    method jsonToList (line 68) | List<Candidates> jsonToList(List list)

FILE: lib/src/models/content/content.dart
  class Content (line 5) | class Content {
    method jsonToList (line 29) | List<Content> jsonToList(List list)
    method toJson (line 33) | Map<String, dynamic> toJson()

FILE: lib/src/models/gemini_file/gemini_file_part.dart
  class GeminiFilePart (line 3) | class GeminiFilePart {
    method toJson (line 73) | Map<String, dynamic> toJson()
    method jsonToList (line 89) | List<GeminiFilePart> jsonToList(List list)

FILE: lib/src/models/gemini_model/gemini_model.dart
  class GeminiModel (line 4) | class GeminiModel {
    method jsonToList (line 53) | List<GeminiModel> jsonToList(List list)
    method toJson (line 74) | Map<String, dynamic> toJson()

FILE: lib/src/models/gemini_response/gemini_response.dart
  class GeminiResponse (line 4) | class GeminiResponse {
    method toJson (line 26) | Map<String, dynamic> toJson()
    method jsonToList (line 32) | List<GeminiResponse> jsonToList(List list)

FILE: lib/src/models/gemini_safety/gemini_safety.dart
  class SafetySetting (line 25) | class SafetySetting {

FILE: lib/src/models/gemini_safety/gemini_safety_category.dart
  type SafetyCategory (line 21) | enum SafetyCategory {

FILE: lib/src/models/gemini_safety/gemini_safety_threshold.dart
  type SafetyThreshold (line 22) | enum SafetyThreshold {

FILE: lib/src/models/generation_config/generation_config.dart
  class GenerationConfig (line 25) | class GenerationConfig {
    method toJson (line 67) | Map<String, dynamic> toJson()
    method jsonToList (line 82) | List<GenerationConfig> jsonToList(List list)

FILE: lib/src/models/part/file_data_part.dart
  class FileDataPart (line 15) | class FileDataPart {
    method toJson (line 41) | Map<String, dynamic> toJson()

FILE: lib/src/models/part/file_part.dart
  class FilePart (line 15) | class FilePart implements Part {
    method jsonToList (line 29) | List<FilePart> jsonToList(List list)
    method toJson (line 39) | Map<String, dynamic> toJson()

FILE: lib/src/models/part/inline_data.dart
  class InlineData (line 16) | class InlineData {
    method toJson (line 57) | Map<String, dynamic> toJson()

FILE: lib/src/models/part/inline_part.dart
  class InlinePart (line 17) | class InlinePart implements Part {
    method jsonToList (line 31) | List<InlinePart> jsonToList(List list)
    method toJson (line 42) | Map<String, dynamic> toJson()

FILE: lib/src/models/part/part.dart
  class Part (line 18) | abstract interface class Part {
    method jsonToList (line 51) | List<Part> jsonToList(List list)
    method toJson (line 56) | Map<String, dynamic> toJson(Part e)

FILE: lib/src/models/part/text_part.dart
  class TextPart (line 14) | class TextPart implements Part {
    method jsonToList (line 29) | List<Part> jsonToList(List list)
    method toJson (line 39) | Map<String, dynamic> toJson()

FILE: lib/src/models/parts/parts.dart
  class Parts (line 25) | @Deprecated('Please use Part instead.')
    method toJson (line 51) | Map<String, dynamic> toJson()
    method jsonToList (line 61) | List<Parts> jsonToList(List list)

FILE: lib/src/models/prompt_feedback/prompt_feedback.dart
  class PromptFeedback (line 20) | class PromptFeedback {
    method toJson (line 49) | Map<String, dynamic> toJson()
    method jsonToList (line 60) | List<PromptFeedback> jsonToList(List list)

FILE: lib/src/models/safety_ratings/safety_ratings.dart
  class SafetyRatings (line 21) | class SafetyRatings {
    method toJson (line 52) | Map<String, dynamic> toJson()
    method jsonToList (line 64) | List<SafetyRatings> jsonToList(List list)

FILE: lib/src/repository/api_interface.dart
  class ApiInterface (line 11) | abstract class ApiInterface {
    method post (line 28) | Future<Response> post(
    method get (line 42) | Future<Response> get(String route)

FILE: lib/src/repository/gemini_interface.dart
  class GeminiInterface (line 5) | abstract class GeminiInterface {
    method listModels (line 9) | Future<List<GeminiModel>> listModels()
    method info (line 14) | Future<GeminiModel> info({required String model})
    method text (line 20) | Future<Candidates?> text(
    method batchEmbedContents (line 36) | Future<List<List<num>?>?> batchEmbedContents(
    method embedContent (line 44) | Future<List<num>?> embedContent(
    method countTokens (line 53) | Future<int?> countTokens(
    method streamGenerateContent (line 65) | Stream<Candidates> streamGenerateContent(
    method streamChat (line 74) | Stream<Candidates> streamChat(
    method chat (line 84) | Future<Candidates?> chat(
    method textAndImage (line 93) | Future<Candidates?> textAndImage({
    method cancelRequest (line 102) | Future<void> cancelRequest()
    method prompt (line 106) | Future<Candidates?> prompt({
    method promptStream (line 115) | Stream<Candidates?> promptStream({

FILE: lib/src/utils/gemini_data_builder.dart
  class GeminiDataBuilder (line 8) | class GeminiDataBuilder {
    method buildTextData (line 9) | Map<String, Object> buildTextData(String text)
    method buildTextAndImageData (line 19) | Map<String, Object> buildTextAndImageData(
    method buildChatData (line 39) | Map<String, Object> buildChatData(
    method buildPromptData (line 54) | Map<String, Object> buildPromptData(List<Part> parts)
    method buildEmbedData (line 60) | Map<String, Object> buildEmbedData(String text)
    method buildBatchEmbedData (line 69) | Map<String, Object> buildBatchEmbedData(List<String> texts)

FILE: lib/src/utils/gemini_exception.dart
  class GeminiException (line 14) | class GeminiException implements Exception {
    method toString (line 34) | String toString()

FILE: lib/src/utils/gemini_exception_handler_mixin.dart
  function handler (line 36) | Future<Response> handler(Future<Response> Function() request)

FILE: lib/src/utils/gemini_model_manager.dart
  class GeminiModelManager (line 9) | class GeminiModelManager {
    method resolveModelName (line 15) | Future<String> resolveModelName({
    method _listModels (line 37) | Future<List<GeminiModel>> _listModels()
    method _findModel (line 43) | String? _findModel(String modelName)
    method _findFallbackModel (line 66) | String _findFallbackModel(String? userModel, String expectedModel)
    method _logModelNotFound (line 81) | void _logModelNotFound(String modelName)
    method _compareModelVersions (line 86) | int _compareModelVersions(GeminiModel a, GeminiModel b)
    method _extractVersion (line 92) | double _extractVersion(String name)
    method _findBestFallback (line 97) | String? _findBestFallback(String? userModel, String expectedModel)
    method _findModelByPatterns (line 112) | String? _findModelByPatterns(List<String> patterns)

FILE: lib/src/utils/gemini_request_handler.dart
  class GeminiRequestHandler (line 7) | class GeminiRequestHandler {
    method executeRequest (line 13) | Future<T> executeRequest<T>({
    method executeStreamRequest (line 31) | Stream<Candidates> executeStreamRequest({
    method _clearTypeProvider (line 51) | void _clearTypeProvider()
    method _setTypeProviderLoading (line 52) | void _setTypeProviderLoading(bool loading)

FILE: lib/src/utils/gemini_response_parser.dart
  class GeminiResponseParser (line 10) | class GeminiResponseParser {
    method parseGenerateResponse (line 13) | Candidates? parseGenerateResponse(Map<String, dynamic> responseData)
    method parseBatchEmbeddingResponse (line 16) | List<List<num>?>? parseBatchEmbeddingResponse(
    method processStreamResponse (line 23) | Stream<Candidates> processStreamResponse(
    method _parseStreamLines (line 49) | Stream<Candidates> _parseStreamLines(String response,
    method _tryParseCandidate (line 66) | Candidates? _tryParseCandidate(String jsonStr)
    method _cleanStreamResponse (line 76) | String _cleanStreamResponse(String response, bool isFirst)

FILE: test/features/chat_test.dart
  function main (line 6) | void main()

FILE: test/features/count_tokens_test.dart
  function main (line 6) | void main()

FILE: test/features/info_test.dart
  function main (line 6) | void main()

FILE: test/features/list_models_test.dart
  function main (line 6) | void main()

FILE: test/features/text_test.dart
  function main (line 6) | void main()

FILE: test/flutter_gemini_test.dart
  function main (line 7) | void main()
Condensed preview — 245 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (719K chars).
[
  {
    "path": ".gitignore",
    "chars": 548,
    "preview": "# Miscellaneous\n*.class\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\nmigrate_working_dir/\n\n# IntelliJ re"
  },
  {
    "path": ".metadata",
    "chars": 313,
    "preview": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrade"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 1484,
    "preview": "# 3.0.0\n* ## new Feature\n1. Now you can use this package as a **dart** pkg.\n2. prompt\n3. promptStream\n\n## 2.0.5\n* ## Fix"
  },
  {
    "path": "LICENSE",
    "chars": 1517,
    "preview": "BSD 3-Clause License\n\nCopyright (c) 2023, Babak Gahremanzadeh (BabakCode)\n\nRedistribution and use in source and binary f"
  },
  {
    "path": "README.md",
    "chars": 10416,
    "preview": "# Flutter Gemini\n\nGoogle Gemini is a set of cutting-edge large language models (LLMs) designed to be the driving force b"
  },
  {
    "path": "analysis_options.yaml",
    "chars": 211,
    "preview": "include: package:flutter_lints/flutter.yaml\n\n# Additional information about this file can be found at\n# https://dart.dev"
  },
  {
    "path": "assets/json_models/embeding_response.json",
    "chars": 14945,
    "preview": "{\n  \"embedding\": {\n    \"values\": [\n      0.008624583,\n      -0.030451821,\n      -0.042496547,\n      -0.029230341,\n      "
  },
  {
    "path": "assets/json_models/embedings_response.json",
    "chars": 32967,
    "preview": "{\n  \"embeddings\": [\n    {\n      \"values\": [\n        0.015434564,\n        -0.01298924,\n        -0.03278457,\n        -0.02"
  },
  {
    "path": "assets/json_models/gemini_model.json",
    "chars": 3224,
    "preview": "[\n  {\n    \"name\": \"models/chat-bison-001\",\n    \"version\": \"001\",\n    \"displayName\": \"Chat Bison\",\n    \"description\": \"Ch"
  },
  {
    "path": "assets/json_models/gemini_response.json",
    "chars": 3867,
    "preview": "{\n  \"candidates\": [\n    {\n      \"content\": {\n        \"parts\": [\n          {\n            \"text\": \"Once upon a time, in a "
  },
  {
    "path": "assets/json_models/generation_config.json",
    "chars": 117,
    "preview": "{\n  \"stopSequences\": [\n    \"Title\"\n  ],\n  \"temperature\": 1.0,\n  \"maxOutputTokens\": 800,\n  \"topP\": 0.8,\n  \"topK\": 10\n}"
  },
  {
    "path": "example/.gitignore",
    "chars": 691,
    "preview": "# Miscellaneous\n*.class\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\nmigrate_working_dir/\n\n# IntelliJ re"
  },
  {
    "path": "example/.metadata",
    "chars": 1706,
    "preview": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrade"
  },
  {
    "path": "example/README.md",
    "chars": 550,
    "preview": "# example\n\nA new Flutter project.\n\n## Getting Started\n\nThis project is a starting point for a Flutter application.\n\nA fe"
  },
  {
    "path": "example/analysis_options.yaml",
    "chars": 1420,
    "preview": "# This file configures the analyzer, which statically analyzes Dart code to\n# check for errors, warnings, and lints.\n#\n#"
  },
  {
    "path": "example/android/.gitignore",
    "chars": 247,
    "preview": "gradle-wrapper.jar\n/.gradle\n/captures/\n/gradlew\n/gradlew.bat\n/local.properties\nGeneratedPluginRegistrant.java\n\n# Remembe"
  },
  {
    "path": "example/android/app/build.gradle",
    "chars": 1362,
    "preview": "plugins {\n    id \"com.android.application\"\n    id \"kotlin-android\"\n    // The Flutter Gradle Plugin must be applied afte"
  },
  {
    "path": "example/android/app/src/debug/AndroidManifest.xml",
    "chars": 378,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for d"
  },
  {
    "path": "example/android/app/src/main/AndroidManifest.xml",
    "chars": 2195,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <application\n        android:label=\"example\"\n "
  },
  {
    "path": "example/android/app/src/main/kotlin/com/example/example/MainActivity.kt",
    "chars": 120,
    "preview": "package com.example.example\n\nimport io.flutter.embedding.android.FlutterActivity\n\nclass MainActivity: FlutterActivity()\n"
  },
  {
    "path": "example/android/app/src/main/res/drawable/launch_background.xml",
    "chars": 434,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmln"
  },
  {
    "path": "example/android/app/src/main/res/drawable-v21/launch_background.xml",
    "chars": 438,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmln"
  },
  {
    "path": "example/android/app/src/main/res/values/styles.xml",
    "chars": 996,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is sta"
  },
  {
    "path": "example/android/app/src/main/res/values-night/styles.xml",
    "chars": 995,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is sta"
  },
  {
    "path": "example/android/app/src/profile/AndroidManifest.xml",
    "chars": 378,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for d"
  },
  {
    "path": "example/android/build.gradle",
    "chars": 322,
    "preview": "allprojects {\n    repositories {\n        google()\n        mavenCentral()\n    }\n}\n\nrootProject.buildDir = \"../build\"\nsubp"
  },
  {
    "path": "example/android/gradle/wrapper/gradle-wrapper.properties",
    "chars": 200,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dist"
  },
  {
    "path": "example/android/gradle.properties",
    "chars": 135,
    "preview": "org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError\nandroid.useAndroidX=true\nandroid.enabl"
  },
  {
    "path": "example/android/settings.gradle",
    "chars": 727,
    "preview": "pluginManagement {\n    def flutterSdkPath = {\n        def properties = new Properties()\n        file(\"local.properties\")"
  },
  {
    "path": "example/ios/.gitignore",
    "chars": 569,
    "preview": "**/dgph\n*.mode1v3\n*.mode2v3\n*.moved-aside\n*.pbxuser\n*.perspectivev3\n**/*sync/\n.sconsign.dblite\n.tags*\n**/.vagrant/\n**/De"
  },
  {
    "path": "example/ios/Flutter/AppFrameworkInfo.plist",
    "chars": 774,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/ios/Flutter/Debug.xcconfig",
    "chars": 30,
    "preview": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example/ios/Flutter/Release.xcconfig",
    "chars": 30,
    "preview": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example/ios/Runner/AppDelegate.swift",
    "chars": 391,
    "preview": "import Flutter\nimport UIKit\n\n@main\n@objc class AppDelegate: FlutterAppDelegate {\n  override func application(\n    _ appl"
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 2519,
    "preview": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n   "
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json",
    "chars": 391,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage.png\",\n      \"scale\" : \"1x\"\n    },\n  "
  },
  {
    "path": "example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md",
    "chars": 336,
    "preview": "# Launch Screen Assets\n\nYou can customize the launch screen with your own desired assets by replacing the image files in"
  },
  {
    "path": "example/ios/Runner/Base.lproj/LaunchScreen.storyboard",
    "chars": 2377,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "example/ios/Runner/Base.lproj/Main.storyboard",
    "chars": 1605,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "example/ios/Runner/Info.plist",
    "chars": 1641,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/ios/Runner/Runner-Bridging-Header.h",
    "chars": 38,
    "preview": "#import \"GeneratedPluginRegistrant.h\"\n"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.pbxproj",
    "chars": 23648,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 226,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "chars": 3647,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1510\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "example/ios/Runner.xcworkspace/contents.xcworkspacedata",
    "chars": 152,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodepr"
  },
  {
    "path": "example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 226,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/ios/RunnerTests/RunnerTests.swift",
    "chars": 285,
    "preview": "import Flutter\nimport UIKit\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you add cod"
  },
  {
    "path": "example/lib/main.dart",
    "chars": 314,
    "preview": "import 'package:flutter_gemini/flutter_gemini.dart';\n\nconst apiKey = 'AIza------tMww4--------------';\nvoid main() {\n  Ge"
  },
  {
    "path": "example/lib/widgets/chat_input_box.dart",
    "chars": 1713,
    "preview": "import 'package:flutter/material.dart';\n\nclass ChatInputBox extends StatelessWidget {\n  final TextEditingController? con"
  },
  {
    "path": "example/lib/widgets/item_image_view.dart",
    "chars": 534,
    "preview": "import 'dart:typed_data';\n\nimport 'package:flutter/material.dart';\n\nclass ItemImageView extends StatelessWidget {\n  fina"
  },
  {
    "path": "example/linux/.gitignore",
    "chars": 18,
    "preview": "flutter/ephemeral\n"
  },
  {
    "path": "example/linux/CMakeLists.txt",
    "chars": 5427,
    "preview": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.10)\nproject(runner LANGUAGES CXX)\n\n# The name of the exe"
  },
  {
    "path": "example/linux/flutter/CMakeLists.txt",
    "chars": 2815,
    "preview": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.10)\n\nset(EPHEM"
  },
  {
    "path": "example/linux/flutter/generated_plugin_registrant.cc",
    "chars": 161,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n\nvoid fl_register"
  },
  {
    "path": "example/linux/flutter/generated_plugin_registrant.h",
    "chars": 303,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUG"
  },
  {
    "path": "example/linux/flutter/generated_plugins.cmake",
    "chars": 739,
    "preview": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n)\n\nlist(APPEND FLUTTER_FFI_PLUGIN_LIST\n)\n\nset(PLUGIN"
  },
  {
    "path": "example/linux/main.cc",
    "chars": 180,
    "preview": "#include \"my_application.h\"\n\nint main(int argc, char** argv) {\n  g_autoptr(MyApplication) app = my_application_new();\n  "
  },
  {
    "path": "example/linux/my_application.cc",
    "chars": 4422,
    "preview": "#include \"my_application.h\"\n\n#include <flutter_linux/flutter_linux.h>\n#ifdef GDK_WINDOWING_X11\n#include <gdk/gdkx.h>\n#en"
  },
  {
    "path": "example/linux/my_application.h",
    "chars": 388,
    "preview": "#ifndef FLUTTER_MY_APPLICATION_H_\n#define FLUTTER_MY_APPLICATION_H_\n\n#include <gtk/gtk.h>\n\nG_DECLARE_FINAL_TYPE(MyApplic"
  },
  {
    "path": "example/macos/.gitignore",
    "chars": 89,
    "preview": "# Flutter-related\n**/Flutter/ephemeral/\n**/Pods/\n\n# Xcode-related\n**/dgph\n**/xcuserdata/\n"
  },
  {
    "path": "example/macos/Flutter/Flutter-Debug.xcconfig",
    "chars": 48,
    "preview": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example/macos/Flutter/Flutter-Release.xcconfig",
    "chars": 48,
    "preview": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example/macos/Flutter/GeneratedPluginRegistrant.swift",
    "chars": 147,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\nimport FlutterMacOS\nimport Foundation\n\n\nfunc RegisterGeneratedPlugins(registry: "
  },
  {
    "path": "example/macos/Runner/AppDelegate.swift",
    "chars": 201,
    "preview": "import Cocoa\nimport FlutterMacOS\n\n@main\nclass AppDelegate: FlutterAppDelegate {\n  override func applicationShouldTermina"
  },
  {
    "path": "example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 1291,
    "preview": "{\n  \"images\" : [\n    {\n      \"size\" : \"16x16\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_16.png\",\n      \"scale"
  },
  {
    "path": "example/macos/Runner/Base.lproj/MainMenu.xib",
    "chars": 23723,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion"
  },
  {
    "path": "example/macos/Runner/Configs/AppInfo.xcconfig",
    "chars": 600,
    "preview": "// Application-level settings for the Runner target.\n//\n// This may be replaced with something auto-generated from metad"
  },
  {
    "path": "example/macos/Runner/Configs/Debug.xcconfig",
    "chars": 77,
    "preview": "#include \"../../Flutter/Flutter-Debug.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example/macos/Runner/Configs/Release.xcconfig",
    "chars": 79,
    "preview": "#include \"../../Flutter/Flutter-Release.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example/macos/Runner/Configs/Warnings.xcconfig",
    "chars": 580,
    "preview": "WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverl"
  },
  {
    "path": "example/macos/Runner/DebugProfile.entitlements",
    "chars": 348,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/macos/Runner/Info.plist",
    "chars": 1060,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/macos/Runner/MainFlutterWindow.swift",
    "chars": 388,
    "preview": "import Cocoa\nimport FlutterMacOS\n\nclass MainFlutterWindow: NSWindow {\n  override func awakeFromNib() {\n    let flutterVi"
  },
  {
    "path": "example/macos/Runner/Release.entitlements",
    "chars": 240,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/macos/Runner.xcodeproj/project.pbxproj",
    "chars": 26346,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXAggregateTarget sec"
  },
  {
    "path": "example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "chars": 3651,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1510\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "example/macos/Runner.xcworkspace/contents.xcworkspacedata",
    "chars": 152,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodepr"
  },
  {
    "path": "example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example/macos/RunnerTests/RunnerTests.swift",
    "chars": 290,
    "preview": "import Cocoa\nimport FlutterMacOS\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you ad"
  },
  {
    "path": "example/pubspec.yaml",
    "chars": 3867,
    "preview": "name: example\ndescription: \"A new Flutter project.\"\n# The following line prevents the package from being accidentally pu"
  },
  {
    "path": "example/test/widget_test.dart",
    "chars": 509,
    "preview": "// This is a basic Flutter widget test.\n//\n// To perform an interaction with a widget in your test, use the WidgetTester"
  },
  {
    "path": "example/web/index.html",
    "chars": 1218,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n  <!--\n    If you are serving your web app in a path other than the root, change the\n    h"
  },
  {
    "path": "example/web/manifest.json",
    "chars": 910,
    "preview": "{\n    \"name\": \"example\",\n    \"short_name\": \"example\",\n    \"start_url\": \".\",\n    \"display\": \"standalone\",\n    \"background"
  },
  {
    "path": "example/windows/.gitignore",
    "chars": 291,
    "preview": "flutter/ephemeral/\n\n# Visual Studio user-specific files.\n*.suo\n*.user\n*.userosscache\n*.sln.docstates\n\n# Visual Studio bu"
  },
  {
    "path": "example/windows/CMakeLists.txt",
    "chars": 4150,
    "preview": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.14)\nproject(example LANGUAGES CXX)\n\n# The name of the ex"
  },
  {
    "path": "example/windows/flutter/CMakeLists.txt",
    "chars": 3742,
    "preview": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.14)\n\nset(EPHEM"
  },
  {
    "path": "example/windows/flutter/generated_plugin_registrant.cc",
    "chars": 164,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n\nvoid RegisterPlu"
  },
  {
    "path": "example/windows/flutter/generated_plugin_registrant.h",
    "chars": 302,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUG"
  },
  {
    "path": "example/windows/flutter/generated_plugins.cmake",
    "chars": 743,
    "preview": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n)\n\nlist(APPEND FLUTTER_FFI_PLUGIN_LIST\n)\n\nset(PLUGIN"
  },
  {
    "path": "example/windows/runner/CMakeLists.txt",
    "chars": 1796,
    "preview": "cmake_minimum_required(VERSION 3.14)\nproject(runner LANGUAGES CXX)\n\n# Define the application target. To change its name,"
  },
  {
    "path": "example/windows/runner/Runner.rc",
    "chars": 3025,
    "preview": "// Microsoft Visual C++ generated resource script.\n//\n#pragma code_page(65001)\n#include \"resource.h\"\n\n#define APSTUDIO_R"
  },
  {
    "path": "example/windows/runner/flutter_window.cpp",
    "chars": 2122,
    "preview": "#include \"flutter_window.h\"\n\n#include <optional>\n\n#include \"flutter/generated_plugin_registrant.h\"\n\nFlutterWindow::Flutt"
  },
  {
    "path": "example/windows/runner/flutter_window.h",
    "chars": 928,
    "preview": "#ifndef RUNNER_FLUTTER_WINDOW_H_\n#define RUNNER_FLUTTER_WINDOW_H_\n\n#include <flutter/dart_project.h>\n#include <flutter/f"
  },
  {
    "path": "example/windows/runner/main.cpp",
    "chars": 1260,
    "preview": "#include <flutter/dart_project.h>\n#include <flutter/flutter_view_controller.h>\n#include <windows.h>\n\n#include \"flutter_w"
  },
  {
    "path": "example/windows/runner/resource.h",
    "chars": 432,
    "preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by Runner.rc\n//\n#define IDI_APP_ICON      "
  },
  {
    "path": "example/windows/runner/runner.exe.manifest",
    "chars": 602,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersi"
  },
  {
    "path": "example/windows/runner/utils.cpp",
    "chars": 1797,
    "preview": "#include \"utils.h\"\n\n#include <flutter_windows.h>\n#include <io.h>\n#include <stdio.h>\n#include <windows.h>\n\n#include <iost"
  },
  {
    "path": "example/windows/runner/utils.h",
    "chars": 672,
    "preview": "#ifndef RUNNER_UTILS_H_\n#define RUNNER_UTILS_H_\n\n#include <string>\n#include <vector>\n\n// Creates a console for the proce"
  },
  {
    "path": "example/windows/runner/win32_window.cpp",
    "chars": 8534,
    "preview": "#include \"win32_window.h\"\n\n#include <dwmapi.h>\n#include <flutter_windows.h>\n\n#include \"resource.h\"\n\nnamespace {\n\n/// Win"
  },
  {
    "path": "example/windows/runner/win32_window.h",
    "chars": 3522,
    "preview": "#ifndef RUNNER_WIN32_WINDOW_H_\n#define RUNNER_WIN32_WINDOW_H_\n\n#include <windows.h>\n\n#include <functional>\n#include <mem"
  },
  {
    "path": "example_old/.gitignore",
    "chars": 712,
    "preview": "# Miscellaneous\n*.class\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\nmigrate_working_dir/\n\n# IntelliJ re"
  },
  {
    "path": "example_old/.metadata",
    "chars": 1706,
    "preview": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrade"
  },
  {
    "path": "example_old/README.md",
    "chars": 550,
    "preview": "# example\n\nA new Flutter project.\n\n## Getting Started\n\nThis project is a starting point for a Flutter application.\n\nA fe"
  },
  {
    "path": "example_old/analysis_options.yaml",
    "chars": 1420,
    "preview": "# This file configures the analyzer, which statically analyzes Dart code to\n# check for errors, warnings, and lints.\n#\n#"
  },
  {
    "path": "example_old/android/.gitignore",
    "chars": 285,
    "preview": "gradle-wrapper.jar\n/.gradle\n/captures/\n/gradlew\n/gradlew.bat\n/local.properties\nGeneratedPluginRegistrant.java\n\n# Remembe"
  },
  {
    "path": "example_old/android/app/build.gradle",
    "chars": 1912,
    "preview": "plugins {\n    id \"com.android.application\"\n    id \"kotlin-android\"\n    id \"dev.flutter.flutter-gradle-plugin\"\n}\n\ndef loc"
  },
  {
    "path": "example_old/android/app/src/debug/AndroidManifest.xml",
    "chars": 378,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for d"
  },
  {
    "path": "example_old/android/app/src/main/AndroidManifest.xml",
    "chars": 1634,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <application\n        android:label=\"example\"\n "
  },
  {
    "path": "example_old/android/app/src/main/kotlin/com/example/example/MainActivity.kt",
    "chars": 124,
    "preview": "package com.example.example\n\nimport io.flutter.embedding.android.FlutterActivity\n\nclass MainActivity: FlutterActivity() "
  },
  {
    "path": "example_old/android/app/src/main/res/drawable/launch_background.xml",
    "chars": 434,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmln"
  },
  {
    "path": "example_old/android/app/src/main/res/drawable-v21/launch_background.xml",
    "chars": 438,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmln"
  },
  {
    "path": "example_old/android/app/src/main/res/values/styles.xml",
    "chars": 996,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is sta"
  },
  {
    "path": "example_old/android/app/src/main/res/values-night/styles.xml",
    "chars": 995,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is sta"
  },
  {
    "path": "example_old/android/app/src/profile/AndroidManifest.xml",
    "chars": 378,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <!-- The INTERNET permission is required for d"
  },
  {
    "path": "example_old/android/build.gradle",
    "chars": 599,
    "preview": "buildscript {\n    ext.kotlin_version = '1.7.10'\n    repositories {\n        google()\n        mavenCentral()\n    }\n\n    de"
  },
  {
    "path": "example_old/android/gradle/wrapper/gradle-wrapper.properties",
    "chars": 200,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dist"
  },
  {
    "path": "example_old/android/gradle.properties",
    "chars": 82,
    "preview": "org.gradle.jvmargs=-Xmx1536M\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n"
  },
  {
    "path": "example_old/android/settings.gradle",
    "chars": 693,
    "preview": "pluginManagement {\n    def flutterSdkPath = {\n        def properties = new Properties()\n        file(\"local.properties\")"
  },
  {
    "path": "example_old/assets/lottie/ai.json",
    "chars": 106710,
    "preview": "{\"nm\":\"Comp 1\",\"ddd\":0,\"h\":600,\"w\":1600,\"meta\":{\"g\":\"LottieFiles AE \"},\"layers\":[{\"ty\":4,\"nm\":\"Shape Layer 4\",\"sr\":1,\"st"
  },
  {
    "path": "example_old/ios/.gitignore",
    "chars": 569,
    "preview": "**/dgph\n*.mode1v3\n*.mode2v3\n*.moved-aside\n*.pbxuser\n*.perspectivev3\n**/*sync/\n.sconsign.dblite\n.tags*\n**/.vagrant/\n**/De"
  },
  {
    "path": "example_old/ios/Flutter/AppFrameworkInfo.plist",
    "chars": 774,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/ios/Flutter/Debug.xcconfig",
    "chars": 30,
    "preview": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/ios/Flutter/Release.xcconfig",
    "chars": 30,
    "preview": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/ios/Runner/AppDelegate.swift",
    "chars": 404,
    "preview": "import UIKit\nimport Flutter\n\n@UIApplicationMain\n@objc class AppDelegate: FlutterAppDelegate {\n  override func applicatio"
  },
  {
    "path": "example_old/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 2519,
    "preview": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n   "
  },
  {
    "path": "example_old/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json",
    "chars": 391,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage.png\",\n      \"scale\" : \"1x\"\n    },\n  "
  },
  {
    "path": "example_old/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md",
    "chars": 336,
    "preview": "# Launch Screen Assets\n\nYou can customize the launch screen with your own desired assets by replacing the image files in"
  },
  {
    "path": "example_old/ios/Runner/Base.lproj/LaunchScreen.storyboard",
    "chars": 2377,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "example_old/ios/Runner/Base.lproj/Main.storyboard",
    "chars": 1605,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "example_old/ios/Runner/Info.plist",
    "chars": 1641,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/ios/Runner/Runner-Bridging-Header.h",
    "chars": 38,
    "preview": "#import \"GeneratedPluginRegistrant.h\"\n"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.pbxproj",
    "chars": 23651,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 226,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "chars": 3647,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1430\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "example_old/ios/Runner.xcworkspace/contents.xcworkspacedata",
    "chars": 152,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodepr"
  },
  {
    "path": "example_old/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 226,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/ios/RunnerTests/RunnerTests.swift",
    "chars": 285,
    "preview": "import Flutter\nimport UIKit\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you add cod"
  },
  {
    "path": "example_old/lib/main.dart",
    "chars": 3035,
    "preview": "import 'package:example/sections/chat.dart';\nimport 'package:example/sections/chat_stream.dart';\nimport 'package:example"
  },
  {
    "path": "example_old/lib/sections/chat.dart",
    "chars": 2768,
    "preview": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_ge"
  },
  {
    "path": "example_old/lib/sections/chat_stream.dart",
    "chars": 3278,
    "preview": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_ge"
  },
  {
    "path": "example_old/lib/sections/embed_batch_contents.dart",
    "chars": 2030,
    "preview": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_ge"
  },
  {
    "path": "example_old/lib/sections/embed_content.dart",
    "chars": 1980,
    "preview": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_ge"
  },
  {
    "path": "example_old/lib/sections/response_widget_stream.dart",
    "chars": 2651,
    "preview": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_ge"
  },
  {
    "path": "example_old/lib/sections/stream.dart",
    "chars": 3562,
    "preview": "import 'dart:typed_data';\nimport 'package:example/widgets/chat_input_box.dart';\nimport 'package:example/widgets/item_ima"
  },
  {
    "path": "example_old/lib/sections/text_and_image.dart",
    "chars": 3436,
    "preview": "import 'dart:typed_data';\n\nimport 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';"
  },
  {
    "path": "example_old/lib/sections/text_only.dart",
    "chars": 1940,
    "preview": "import 'package:example/widgets/chat_input_box.dart';\nimport 'package:flutter/material.dart';\nimport 'package:flutter_ge"
  },
  {
    "path": "example_old/lib/widgets/chat_input_box.dart",
    "chars": 1713,
    "preview": "import 'package:flutter/material.dart';\n\nclass ChatInputBox extends StatelessWidget {\n  final TextEditingController? con"
  },
  {
    "path": "example_old/lib/widgets/item_image_view.dart",
    "chars": 534,
    "preview": "import 'dart:typed_data';\n\nimport 'package:flutter/material.dart';\n\nclass ItemImageView extends StatelessWidget {\n  fina"
  },
  {
    "path": "example_old/linux/.gitignore",
    "chars": 18,
    "preview": "flutter/ephemeral\n"
  },
  {
    "path": "example_old/linux/CMakeLists.txt",
    "chars": 5183,
    "preview": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.10)\nproject(runner LANGUAGES CXX)\n\n# The name of the exe"
  },
  {
    "path": "example_old/linux/flutter/CMakeLists.txt",
    "chars": 2815,
    "preview": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.10)\n\nset(EPHEM"
  },
  {
    "path": "example_old/linux/flutter/generated_plugin_registrant.cc",
    "chars": 440,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n#include <file_se"
  },
  {
    "path": "example_old/linux/flutter/generated_plugin_registrant.h",
    "chars": 303,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUG"
  },
  {
    "path": "example_old/linux/flutter/generated_plugins.cmake",
    "chars": 761,
    "preview": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n  file_selector_linux\n)\n\nlist(APPEND FLUTTER_FFI_PLU"
  },
  {
    "path": "example_old/linux/main.cc",
    "chars": 180,
    "preview": "#include \"my_application.h\"\n\nint main(int argc, char** argv) {\n  g_autoptr(MyApplication) app = my_application_new();\n  "
  },
  {
    "path": "example_old/linux/my_application.cc",
    "chars": 3712,
    "preview": "#include \"my_application.h\"\n\n#include <flutter_linux/flutter_linux.h>\n#ifdef GDK_WINDOWING_X11\n#include <gdk/gdkx.h>\n#en"
  },
  {
    "path": "example_old/linux/my_application.h",
    "chars": 388,
    "preview": "#ifndef FLUTTER_MY_APPLICATION_H_\n#define FLUTTER_MY_APPLICATION_H_\n\n#include <gtk/gtk.h>\n\nG_DECLARE_FINAL_TYPE(MyApplic"
  },
  {
    "path": "example_old/macos/.gitignore",
    "chars": 89,
    "preview": "# Flutter-related\n**/Flutter/ephemeral/\n**/Pods/\n\n# Xcode-related\n**/dgph\n**/xcuserdata/\n"
  },
  {
    "path": "example_old/macos/Flutter/Flutter-Debug.xcconfig",
    "chars": 48,
    "preview": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Flutter/Flutter-Release.xcconfig",
    "chars": 48,
    "preview": "#include \"ephemeral/Flutter-Generated.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Flutter/GeneratedPluginRegistrant.swift",
    "chars": 263,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\nimport FlutterMacOS\nimport Foundation\n\nimport file_selector_macos\n\nfunc Register"
  },
  {
    "path": "example_old/macos/Runner/AppDelegate.swift",
    "chars": 214,
    "preview": "import Cocoa\nimport FlutterMacOS\n\n@NSApplicationMain\nclass AppDelegate: FlutterAppDelegate {\n  override func application"
  },
  {
    "path": "example_old/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 1291,
    "preview": "{\n  \"images\" : [\n    {\n      \"size\" : \"16x16\",\n      \"idiom\" : \"mac\",\n      \"filename\" : \"app_icon_16.png\",\n      \"scale"
  },
  {
    "path": "example_old/macos/Runner/Base.lproj/MainMenu.xib",
    "chars": 23723,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion"
  },
  {
    "path": "example_old/macos/Runner/Configs/AppInfo.xcconfig",
    "chars": 600,
    "preview": "// Application-level settings for the Runner target.\n//\n// This may be replaced with something auto-generated from metad"
  },
  {
    "path": "example_old/macos/Runner/Configs/Debug.xcconfig",
    "chars": 77,
    "preview": "#include \"../../Flutter/Flutter-Debug.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Runner/Configs/Release.xcconfig",
    "chars": 79,
    "preview": "#include \"../../Flutter/Flutter-Release.xcconfig\"\n#include \"Warnings.xcconfig\"\n"
  },
  {
    "path": "example_old/macos/Runner/Configs/Warnings.xcconfig",
    "chars": 580,
    "preview": "WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverl"
  },
  {
    "path": "example_old/macos/Runner/DebugProfile.entitlements",
    "chars": 348,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/macos/Runner/Info.plist",
    "chars": 1060,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/macos/Runner/MainFlutterWindow.swift",
    "chars": 388,
    "preview": "import Cocoa\nimport FlutterMacOS\n\nclass MainFlutterWindow: NSWindow {\n  override func awakeFromNib() {\n    let flutterVi"
  },
  {
    "path": "example_old/macos/Runner/Release.entitlements",
    "chars": 240,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/macos/Runner.xcodeproj/project.pbxproj",
    "chars": 25872,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXAggregateTarget sec"
  },
  {
    "path": "example_old/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "chars": 3651,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1430\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "example_old/macos/Runner.xcworkspace/contents.xcworkspacedata",
    "chars": 152,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodepr"
  },
  {
    "path": "example_old/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "example_old/macos/RunnerTests/RunnerTests.swift",
    "chars": 290,
    "preview": "import FlutterMacOS\nimport Cocoa\nimport XCTest\n\nclass RunnerTests: XCTestCase {\n\n  func testExample() {\n    // If you ad"
  },
  {
    "path": "example_old/pubspec.yaml",
    "chars": 3929,
    "preview": "name: example\ndescription: A new Flutter project.\n# The following line prevents the package from being accidentally publ"
  },
  {
    "path": "example_old/test/widget_test.dart",
    "chars": 1058,
    "preview": "// This is a basic Flutter widget test.\n//\n// To perform an interaction with a widget in your test, use the WidgetTester"
  },
  {
    "path": "example_old/web/index.html",
    "chars": 1968,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n  <!--\n    If you are serving your web app in a path other than the root, change the\n    h"
  },
  {
    "path": "example_old/web/manifest.json",
    "chars": 910,
    "preview": "{\n    \"name\": \"example\",\n    \"short_name\": \"example\",\n    \"start_url\": \".\",\n    \"display\": \"standalone\",\n    \"background"
  },
  {
    "path": "example_old/windows/.gitignore",
    "chars": 291,
    "preview": "flutter/ephemeral/\n\n# Visual Studio user-specific files.\n*.suo\n*.user\n*.userosscache\n*.sln.docstates\n\n# Visual Studio bu"
  },
  {
    "path": "example_old/windows/CMakeLists.txt",
    "chars": 3904,
    "preview": "# Project-level configuration.\ncmake_minimum_required(VERSION 3.14)\nproject(example LANGUAGES CXX)\n\n# The name of the ex"
  },
  {
    "path": "example_old/windows/flutter/CMakeLists.txt",
    "chars": 3562,
    "preview": "# This file controls Flutter-level build steps. It should not be edited.\ncmake_minimum_required(VERSION 3.14)\n\nset(EPHEM"
  },
  {
    "path": "example_old/windows/flutter/generated_plugin_registrant.cc",
    "chars": 328,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#include \"generated_plugin_registrant.h\"\n\n#include <file_se"
  },
  {
    "path": "example_old/windows/flutter/generated_plugin_registrant.h",
    "chars": 302,
    "preview": "//\n//  Generated file. Do not edit.\n//\n\n// clang-format off\n\n#ifndef GENERATED_PLUGIN_REGISTRANT_\n#define GENERATED_PLUG"
  },
  {
    "path": "example_old/windows/flutter/generated_plugins.cmake",
    "chars": 767,
    "preview": "#\n# Generated file, do not edit.\n#\n\nlist(APPEND FLUTTER_PLUGIN_LIST\n  file_selector_windows\n)\n\nlist(APPEND FLUTTER_FFI_P"
  },
  {
    "path": "example_old/windows/runner/CMakeLists.txt",
    "chars": 1796,
    "preview": "cmake_minimum_required(VERSION 3.14)\nproject(runner LANGUAGES CXX)\n\n# Define the application target. To change its name,"
  },
  {
    "path": "example_old/windows/runner/Runner.rc",
    "chars": 3025,
    "preview": "// Microsoft Visual C++ generated resource script.\n//\n#pragma code_page(65001)\n#include \"resource.h\"\n\n#define APSTUDIO_R"
  },
  {
    "path": "example_old/windows/runner/flutter_window.cpp",
    "chars": 2122,
    "preview": "#include \"flutter_window.h\"\n\n#include <optional>\n\n#include \"flutter/generated_plugin_registrant.h\"\n\nFlutterWindow::Flutt"
  },
  {
    "path": "example_old/windows/runner/flutter_window.h",
    "chars": 928,
    "preview": "#ifndef RUNNER_FLUTTER_WINDOW_H_\n#define RUNNER_FLUTTER_WINDOW_H_\n\n#include <flutter/dart_project.h>\n#include <flutter/f"
  },
  {
    "path": "example_old/windows/runner/main.cpp",
    "chars": 1260,
    "preview": "#include <flutter/dart_project.h>\n#include <flutter/flutter_view_controller.h>\n#include <windows.h>\n\n#include \"flutter_w"
  }
]

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

About this extraction

This page contains the full source code of the babakcode/flutter_gemini GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 245 files (634.2 KB), approximately 206.7k tokens, and a symbol index with 246 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!