diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b208754e..94553931f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,7 @@ - Improved switching from provisioning to node configuration. - Support for Proxies with proxy filter capacity limited to 1. - Bugfix: Several potential crashes fixed, including #208. - - Spelling: Targetting -> targeting. + - Spelling: Targeting -> targeting. - **2.1.0**: - Option to select connected proxy manually (disable Automatic Connection on Proxy screen). @@ -44,18 +44,18 @@ - **1.0.4**: - Adds ability to control GenericOnOff parameters, `TransitionDelay` and `TransitionTime` (some testing needed). - Adds ability to control GenericLevel models, additionally `TransitionDelay` and `TransitionTime` (some testing needed). - - Bugfix: Fixed an issue causign the provisioning to halt at 91% intermittently due to block acknowledgements not working as it should, a 2 second delay is restored to workaround this. + - Bugfix: Fixed an issue causing the provisioning to halt at 91% intermittently due to block acknowledgements not working as it should, a 2-second delay is restored to workaround this. - **1.0.1**: - Adds minor improvements to the copy on some UI components within the application. - - Bugfix: Performance improvement due to removing an intended 2 second delay when switching between Composition Data Get state and AppKeyAdd state due to an earlier bug. - - Bugfix: fixed an issue with block acknowledgements that caused longer messages that needs multiple acknowledgment to fail. + - Bugfix: Performance improvement due to removing an intended 2-second delay when switching between Composition Data Get state and AppKeyAdd state due to an earlier bug. + - Bugfix: fixed an issue with block acknowledgements that caused longer messages that needs multiple acknowledgement to fail. - Bugfix: fixed an issue in the GenericOnOff control view, this bug caused loss of control over the node when it's added then removed from a subscription group. - Bugfix: fixed an issue that caused the navigation bar not to reflect the scanner state when directly tapping the `Add Node` button instead of using the tab bar button. - **1.0**: - Adds a better approach for GenericOnOffSet messages to be sent to all subscribed addresses on the target element. If no subscriptions are present, messages will be sent to the element's unicast. - - Adds element unicast address within the node view to allow easier configuration. + - Adds an element unicast address within the node view to allow easier configuration. - Adds Application Version and build numbers in the settings view. - Adds a more descriptive title depending on OOB type in the user input view. - Fixes some typos and misplaced text in the bundled application. @@ -67,7 +67,7 @@ - Adds GenericOnOffServer control. - Adds UI improvement in Element view, now subscription,publication and both states are shown on the cell. - Adds UI improvement for GenericOnOff control to disable the feature if an AppKey is not bound to the model. - - Bugfix: Access messages no longer use DeviceKey and DeviceNonce in cases where Appkey should be used. + - Bugfix: Access messages no longer use DeviceKey and DeviceNonce in cases where AppKey should be used. - Bugfix: Sequence number's first octet was not calculated properly, causing it to always be 0x00. - Bugfix: Fixed Typo in scanner view "Discovery" -> "Discover". @@ -80,39 +80,39 @@ - Adds ability to parse network identity packets to allow reconnecting to the same node (Cryptographically safe). - Adds MeshManager class that manages the proxy node, network state and related mesh network data through API calls. - Adds ability to abort node provisioning. - - Adds Improved provisioning view with progressbar indicaton. + - Adds Improved provisioning view with progressbar indication. - Bugfix: AppKeyIndex values above 1 caused a failure to bind models to app keys due to a hardcoded value. - Bugfix: NetKeyIndex and AppKeyIndex values were swapped in the AppKeyStatus message. - Bugfix: Mesh connection button was too slow and sometimes malfunctioned. - - Bugfix: Scanner views were someimes untapabble and scrolling was erratic when nodes advertise with low intervals. - - Bugfix: Main network view crashed intermittently after network has been reset. + - Bugfix: Scanner views were sometimes untapabble and scrolling was erratic when nodes advertise with low intervals. + - Bugfix: Main network view crashed intermittently after the network has been reset. - Bugfix: Some input views where parsing freetext as hex, causing a crash. - - Input views can now rubustly handle hex input format starting with `0x`. + - Input views can now robustly handle hex input format starting with `0x`. - Subscription address types are now shown beside the subscription address. - Empty scanner views will now have an empty state to avoid blank screens. - Provisioning logs moved to a separate view. - - Improved UI and interaction accross all views. + - An improved UI and interaction across all views. - **0.2**: - - TestFligt Release. + - TestFlight Release. - Bundled sample firmwares for Light Server and Light client to ease the testing process. - Minor fixes for copy in the model configuration view, Detail labels where left blank, now they show more information on what happens on selection. - Added empty scanner view (Not yet implemented in UI). - Added mesh save when mesh state is reset to fix the crash caused by mesh state not being present on main network view. - Reset network text will now be red to alert the user of destructive action. - - Settings view copy improvemetns: capitalization fixes and better naming of rows. + - Settings view copy improvements: capitalization fixes and better naming of rows. - CBUUID log in the provisioner will now show the hex value instead of data size. - - Title on provisioner will use the friendly name instead of BLE name. + - Title on a provisioner will use the friendly name instead of BLE name. - Display node name and unicast in the node's cell title label. - - Fixed bug causing node friendly name to be forced into a hex value. + - Fixed a bug causing node friendly name to be forced into a hex value. - Fixed a bug causing node friendly name not to be stored and used. - Minor tweak to the node cell UI. - Shortened company name/company id label text. - removed 0x from placeholder input to avoid confusion. - Fixed Bug causing key binding, pub/sub addresses to overlap on models with same identifier. - - Minor refactor to the compositionelement model to allow storing model related data within the element instead of the root object. + - Minor refactor to the composition element model to allow storing model related data within the element instead of the root object. - Added activity indicator in the provisioning view to emphasise the progress, it stops at completion or any failures. - - Minor cleanup in log messages during node identity verification, all lowercased. + - Minor cleanup in log messages during node identity verification, all lowercase. - Used CBUUID as a node identifier to avoid duplication and to avoid the mistake of using advertisement data as it's not a node identifier. - Minor log fixes to avoid double logging of disconnection, etc.. - Disconnecting of current proxy when provisioning a new node, this is to avoid having multiple proxies connected simultaneously. @@ -128,15 +128,15 @@ - Renamed Display name to nRF Mesh. - Updated LaunchScreen Storyboard. - Added missing image assets. - - Added 1 second delay after provisioning succeeds to allow the user to see the message. + - Added 1-second delay after provisioning succeeds to allow the user to see the message. - Provisioning view will set the main tab to the network view instead of the scanner view before popping to root view, to give a better context. - Renamed Product Vendor Identifier to Product Version as it was incorrect. - - Updated Composition status struct and NodeEntry struct to reflect the VenrodId->ProductVersion change. - - Added an improved settings icon. - - Fixed borken icon in node conviguration view. + - Updated Composition status struct and NodeEntry struct to reflect the VendorId->ProductVersion change. + - Added an improved settings' icon. + - Fixed a broken icon in the node configuration view. - Added Settings icon to settings tab bar item instead of the list icon. - - Added an improved icon to the add tabbar. - - Added option to reset the mesh database, this is a destructive/non reversible action and regenerate new NetKey and mesh state. + - Added an improved icon to the add tab bar. + - Added option to reset the mesh database, this is a destructive/non-reversible action and regenerate new NetKey and mesh state. - Added Mesh rejoin functionality to connect to a proxy node. - Reconnection to Proxy node functional, also displaying advertisement data on the scanner view with RSSI. - Enabled Mesh disconnection form the main view. @@ -148,19 +148,19 @@ - Display Provisioning advertisement data when present. - Added a network icon to cells. - Extracted status code alerts to clean up code duplication. - - Added hex parsign validation to address value inputs. + - Added hex parsing validation to address value inputs. - Fixed Default TTL Configuration message implementation. - Default TTL status message is now implemented and callbacks are forwarded to it's designated delegate. - Added subscription lists support for the Example application's UI. - Added Subscription Add message operation, Subscription status operation and dependencies. - iOS10 data compatibility and Segmentation / Acknowledgement messages bugs resolved. - - Fixes related to segmentation and reassembly, This fixes the acknowlegement messages failing when they're longer than MTU size and are not segmented. + - Fixes related to segmentation and reassembly, This fixes the acknowledgement messages failing when they're longer than MTU size and are not segmented. - This also adds Default TTL Get message support (Not accessible currently, but functional). - Fixes a bug that caused an invalid state when a segmented message arrives over only one segment I.E: SegN=0x00 and SegO=0x00 causing the ack timer to have an unknown state. - Re-enabled app key state switch after composition data is received. - Copy Data objects to preserve 0 indices on iOS versions <= 10. - Added GATT Bearer SAR checks to assure that segments that are out of order are dropped. - - Added segment caching to assure that incomind lower transport segments are not appended to the the current segment being Reassembled upon retransmission. + - An added segment caching to assure that incomind lower transport segments are not appended to the current segment being Reassembled upon retransmission. - **0.1**: - Initial release. diff --git a/Documentation/GETTING_STARTED.md b/Documentation/GETTING_STARTED.md index cff0c4470..5c56e1aae 100644 --- a/Documentation/GETTING_STARTED.md +++ b/Documentation/GETTING_STARTED.md @@ -52,7 +52,7 @@ if !loaded { ### GATT Bearers -To make the most common use case (working with GATT Proxy Bearer) easier, the library contains a default implementation for the GATT Proxy and GATT Provisioning bearers, which handle the Proxy protocol. Use `GattBearer` and `PBGattBearer` respectivly. Set the manager as bearer's `dataDelegate` and the bearer object as manager's `transmitter`. +To make the most common use case (working with GATT Proxy Bearer) easier, the library contains a default implementation for the GATT Proxy and GATT Provisioning bearers, which handle the Proxy protocol. Use `GattBearer` and `PBGattBearer` respectively. Set the manager as bearer's `dataDelegate` and the bearer object as manager's `transmitter`. ```swift let bearer = GattBearer(target: scannedPeripheral) @@ -67,20 +67,23 @@ The Sample App provides additional logic on top of the bearer, which allows to c ### Local Elements and Models -By default, the local Node (that is the Provisioner's Node) will have one Element with 4 Models: +By default, the local Node (that is the Provisioner's Node) will have one Element with 5 Models: * **Configuration Server** * **Configuration Client** * **Health Server** * **Health Client** +* **Scene Client** If you want to send and receive any other messages beside Configuration Messages, you need to define a Model. For example, if you want to allow user to control switching ON and OFF lights in their homes using *Generic OnOff Set* messages, you need to have **Generic OnOff Client** model. -To set local elements, call `manager.localElements = [...]`. The 4 Models mentioned above will be added automatically to the first Element. Each local model must have a `ModelDelegate` that will handle incoming messages and provide mapping for opcodes of messages that such Model supports (receives). +To set local elements, call `manager.localElements = [...]`. The 5 Models mentioned above will be added automatically to the first Element. Each local model must have a `ModelDelegate` that will handle incoming messages and provide mapping for opcodes of messages that such Model supports (receives). For example, the **Generic OnOff Client** mentioned above may send *Generic OnOff Get*, *Generic OnOff Set*, *Generic OnOff Set Unacknowledged* and will receive *Generic OnOff Status*. The last, status message must be added to `messageTypes` map of the Model's delegate, so that when a message with its opcode is received, the library knows which message type to instantiate. If you support any Server model, your `ModelDelegate` must also reply to all acknowledged messages it can receive. Without setting the local Model and specifying the message types, each message would be reported to the manager's delegate as `UnknownMessage`. +**Important:** Received messages are delivered to the app in 2 ways: using the `MeshNetworkManager.delegate` and to the `ModelDelegate`. However, in order to receive the messages in the model, it needs to bound to the Application Key, and the message needs either target the Element's Unicast Address, a All Nodes (0xFFFF) address, or a Group Address to which that model is subscribed to. + ```swift let nordicCompanyId: UInt16 = 0x0059 let element = Element(name: "Primary Element", location: .unknown, models: [ @@ -92,13 +95,19 @@ meshNetworkManager.localElements = [element] **Important:** Even if you don't have any Models (for example only want to allow Configuration Messages in the app) you have to set the `localElements` property. In that case the Configuration Server and Client Models will not be properly initialized and you will be getting `UnknownMessage` instead of proper Status message. +```swift +// Configuration when there are no additional models. +// This will create a single Element with 5 models mentioned above. +meshNetworkManager.localElements = [] +``` + ### Provisioning -Provisioning is a process of sending a Network Key to a new Unprovisioned Device in a more or less secure way. During provisioning, a Provisioner and the new provisioned Node will generate a common secret that will work as Device Key. Using this key the Provisioner may send and data to the Node privately, so that only this device will be able to decode the message. The first data sent to Node are its unique Unicase Address and the Network Key. +Provisioning is a process of sending a Network Key to a new Unprovisioned Device in a more or less secure way. During provisioning, a Provisioner and the new provisioned Node will generate a common secret that will work as Device Key. Using this key the Provisioner may send and data to the Node privately, so that only this device will be able to decode the message. The first data sent to Node are its unique Unicast Address, and the Network Key. To provision a device, scan for nearby Unprovisioned Devices (devices advertising with [Service UUID: 0x1827](https://www.bluetooth.com/specifications/gatt/services/)). When a device is found and selected by the user, create `UnprovisionedDevice(advertisingData:)` object and a `ProvisioningBearer` (currently only PB GATT bearer is supported by the library). For default bearer you may use `PBGattBearer` which implements `ProvisioningBearer` protocol. To start provisioning, call `manager.provision(unprovisionedDevice:over)`. This method returns a `ProvisioningManager`, an object that will help you provision the device. -First, call `identify(andAttractFor)` on the new manager to make the device blink or make noise. This will also request device capabilities. Set the Network Key and Unicast Address (the next available address is selected automatically) and, when the right device has been chosen, call `provision(usingAlgorithm:publicKey:authenticationMethod)` to start the provisioning process. A delegate will be informed when provisioning is complete to has failed. +First, call `identify(andAttractFor)` on the new manager to make the device blink or make noise. This will also request device capabilities. Set the Network Key and Unicast Address (the next available address is selected automatically) and, when the right device has been chosen, call `provision(usingAlgorithm:publicKey:authenticationMethod)` to start the provisioning process. A delegate will be informed when provisioning is complete or has failed. ```swift guard let bearer = PBGattBearer(target: peripheral), @@ -134,7 +143,7 @@ See `ScannerTableViewController` and `ProvisioniongViewController` in the Sample ### Sending messages -The manager's API contains number of methods for sending mesh messages, which can be divided into 3 groups. First group allows to send `ConfigMessages` to a **Configuration Server** on a remote or local Node. Configuration messages are always signed using the device key and must be sent to a Unicase Address of the Primary Element of a Node. Second group allows to send other messages from any local Element to any remote or local Element, or a group or virtual address. These messages are signed using Application Key and will be delivered to all models on the Element with target Unicast Address or subscribed to the target group or virtual address, that have this Application Key bound. You may not send `ConfigMessages` using this set of methods. The third group, which contains just a single method `publish(_:fromModel:withTtl)` can be used to send publication from the local model. +The manager's API contains number of methods for sending mesh messages, which can be divided into 3 groups. First group allows to send `ConfigMessages` to a **Configuration Server** on a remote or local Node. Configuration messages are always signed using the device key and must be sent to a Unicast Address of the Primary Element of a Node. Second group allows to send other messages from any local Element to any remote or local Element, or a group or virtual address. These messages are signed using Application Key and will be delivered to all models on the Element with target Unicast Address or subscribed to the target group or virtual address, that have this Application Key bound. You may not send `ConfigMessages` using this set of methods. The third group, which contains just a single method `publish(_:fromModel:withTtl)` can be used to send publication from the local model. Remember, that only the Nodes that know the Network Key with which a message is sent may relay the message. It is for example not possible to send a message over a Proxy connection signed with a Network Key not known to this Proxy Node. diff --git a/Documentation/SETTING_UP.md b/Documentation/SETTING_UP.md index ef396940a..240bc8806 100644 --- a/Documentation/SETTING_UP.md +++ b/Documentation/SETTING_UP.md @@ -38,7 +38,7 @@ Using CocoaPods: ``` - Carthage will build the **nRFMeshProvision.framework** files in **Carthage/Build/**, -you may now copy all those files to your project and use the library, additionally, carthade also builds **\*.dsym** files +you may now copy all those files to your project and use the library, additionally, carthage also builds **\*.dsym** files if you need to resymbolicate crash logs. you may want to keep those files bundled with your builds for future use. **For Swift Package Manager:** diff --git a/Documentation/SETTING_UP_NETWORK.md b/Documentation/SETTING_UP_NETWORK.md index 8da038b07..c15e31f49 100644 --- a/Documentation/SETTING_UP_NETWORK.md +++ b/Documentation/SETTING_UP_NETWORK.md @@ -4,7 +4,7 @@ A newly created mesh network contains a single Provisioner (with address 0x0001) ### Network Keys -Network Keys define subnetworks in the network. For example, it is a common practice to create a Guest Network Key, send it to devices in a guest room and share it with your guest, so that your guests can control lighthing in their room, but can't send messages to other devices in the house. Or, in a hotel, devices located in each room may have their own Network Keys, which is shared with guests. Devices may known more than one Network Key, so the landlord may send messages to all devices using the secret Primary Network Key. +Network Keys define subnetworks in the network. For example, it is a common practice to create a Guest Network Key, send it to devices in a guest room and share it with your guest, so that your guests can control lighting in their room, but can't send messages to other devices in the house. Or, in a hotel, devices located in each room may have their own Network Keys, which is shared with guests. Devices may known more than one Network Key, so the landlord may send messages to all devices using the secret Primary Network Key. Use `network.add(networkKey:withIndex:name)` to create a new Network Key. By definition, the local Node knows all Network Keys in the network, as it's the Provisioner. You don't have to send this message to a local Node. @@ -20,7 +20,7 @@ The provisioning process assigns a unique Unicast Address and a primary Network The first thing you have to do to after provisioning is reading **Composition Data**. Do this by sending *Config Composition Data Get* message with page 0. Composition data contains the information about the Node, and Elements and Models on the new device. The status message will automatically be applied to the Node when received. -The next step is to send other Network Keys, if needed, and Application Keys that this device needs to know. In theory, a key that has once been added can be deleted, but there is no guarantee that the Node will actually remove the key. The proper way of deleting the keys is by dong Key Refresh Procedure (not implemented yet in the library), which will distribute a new, updated key with the same index to all nodes but the one that we want to remove it from, and switch them to use the new key instead. The blacklisted device will not be able to understand messages anymore even if it hasn't deleted the key, as the key has now been replaced and is no longer is use. +The next step is to send other Network Keys, if needed, and Application Keys that this device needs to know. In theory, a key that has once been added can be deleted, but there is no guarantee that the Node will actually remove the key. The proper way of deleting the keys is by doing [Key Refresh Procedure](https://github.com/NordicSemiconductor/IOS-nRF-Mesh-Library/pull/314), which will distribute a new, updated key with the same index to all nodes except those that we want to remove from the subnetwork, and switch them to use the new key instead. The excluded device(s) will not be able to understand messages anymore even if it hasn't deleted the key, as the key has now been replaced and is no longer is use. To send a Network Key to a device use `ConfigNetKeyAdd` message and to send an Application Key - `ConfigAppKeyAdd` message. @@ -28,19 +28,25 @@ To send a Network Key to a device use `ConfigNetKeyAdd` message and to send an A When a Node has been given all required keys, its Models may now be configured. The first step to do is usually to bind Application Keys to Models. A Model (except from **Configuration Server** and **Configuration Client**) may only process messages encrypted with keys bound to it. -To bind an App Key to a Model use `ConfigModelAppBind`. This message may also be sent to a local Model. For example, if you want to visualize the state of a light, that can be controlled using a remote switch (**Generic OnOff Client**), you may have **Generic OnOff Server** on the phone, bound to the same Application Key as the set in the swich's Publication and subscribed to the same group address. When a switch is toggled, the message will be received by the local Model and propagated to the user. To bind a Model on a local Ńode, send the message just as if it was a remote Node. +To bind an App Key to a Model use `ConfigModelAppBind`. This message may also be sent to a local Model. For example, if you want to visualize the state of a light, that can be controlled using a remote switch (**Generic OnOff Client**), you may have **Generic OnOff Server** on the phone, bound to the same Application Key as the set in the switch's Publication and subscribed to the same group address. When a switch is toggled, the message will be received by the local Model and propagated to the user. To bind a Model on a local Node, send the message just as if it was a remote Node. > Sending messages locally is asynchronous, just like sending them to a remote Node. ### Setting publication and subscription -A Model may be set to publish a message when its state changes, or to receive messages from other Models. For example, to configure a light switch to turn on a light, one of the **Generic OnOff Client** Models on the swich's Elements must be set to publish a message using one of the bound Application Keys to some address (Unicast, Group or Virtual). A light must be subscribed to the same address (if Group or Virtual address was used) and bound to the same Application Key. A light may also be configured to publish whenever its state changes. +A Model may be set to publish a message when its state changes, or to receive messages from other Models. For example, to configure a light switch to turn on a light, one of the **Generic OnOff Client** Models on the switch's Elements must be set to publish a message using one of the bound Application Keys to some address (Unicast, Group or Virtual). A light must be subscribed to the same address (if Group or Virtual address was used) and bound to the same Application Key. A light may also be configured to publish whenever its state changes. To set a publication, use `ConfigModelPubilcationSet` or `ConfigModelPubilcationVirtualAddressSet`. To add a group address to subscribed addresses, use `ConfigModelSubscriptionAdd`, or `ConfigModelSubscriptionVirtualAddressAdd` for virtual address. These messages may also be sent to local Models. For example, the Sample App contains 2 Elements, each with **Generic OnOff Client** and **Generic OnOff Server** that can be configured to send messages to each other. -After subscribibg a local Model to a group or virtual address you have to add this address to the Proxy Filter. +After subscribing a local Model to a group or virtual address you have to add this address to the Proxy Filter. + +### Scenes + +Scenes may be used to restore a saved state of a device. Scene server models support two operations: storing and recalling a scene. To store a scene, first set the required device state. For example, turn the light on, set desired light color and brightness. Then send `SceneStore` message with a *scene number*. Upon calling `SceneRecall` message with the same *scene number*, the device will restore saved state. + +The library natively supports Scene Client model, so it may send `SceneStore`, `SceneRecall` or `SceneDelete` messages. The sample app, additionally, supports Scene Server and Scene Setup Server models, which can be used to test Scene Clients on other devices. Generic OnOff Server and Generic Level Server models on the two Elements on the phone will behave accordingly to received messages. Mind that, on contrary to Configuration Server and Configuration Client, Scene models need to be bound to an App Key (one or more) and will receive only message sent with that App Key. ### Proxy Filter diff --git a/Example/Podfile b/Example/Podfile index 6e1442b03..67dc2cee9 100755 --- a/Example/Podfile +++ b/Example/Podfile @@ -3,7 +3,6 @@ use_frameworks! platform :ios, '10.0' target 'nRFMeshProvision_Example' do - pod 'SwiftLint' pod 'nRFMeshProvision', :path => '../' target 'nRFMeshProvision_Tests' do inherit! :search_paths diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 98d1ff7e6..796c73958 100755 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,29 +1,25 @@ PODS: - - nRFMeshProvision (2.2.0): - - OpenSSL-Universal (= 1.0.2.19) - - OpenSSL-Universal (1.0.2.19): - - OpenSSL-Universal/Static (= 1.0.2.19) - - OpenSSL-Universal/Static (1.0.2.19) - - SwiftLint (0.37.0) + - nRFMeshProvision (3.0): + - OpenSSL-Universal (= 1.0.2.20) + - OpenSSL-Universal (1.0.2.20): + - OpenSSL-Universal/Static (= 1.0.2.20) + - OpenSSL-Universal/Static (1.0.2.20) DEPENDENCIES: - nRFMeshProvision (from `../`) - - SwiftLint SPEC REPOS: trunk: - OpenSSL-Universal - - SwiftLint EXTERNAL SOURCES: nRFMeshProvision: :path: "../" SPEC CHECKSUMS: - nRFMeshProvision: 4ad4424113822a83fb88aa7f315ba5bc5e416ae6 - OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355 - SwiftLint: c078a14d7d7ade75e5507795d185e3da41d844d2 + nRFMeshProvision: 3022c7f8626753a1b76d20ead4cbb2888f74e88b + OpenSSL-Universal: ff34003318d5e1163e9529b08470708e389ffcdd -PODFILE CHECKSUM: d915a99ebadab623fe0a3c47ee4d748c2ba3e43c +PODFILE CHECKSUM: 69a81463322ef34ca0a20b98e90da2701d94e4ec -COCOAPODS: 1.8.4 +COCOAPODS: 1.10.0.rc.1 diff --git a/Example/Pods/Local Podspecs/nRFMeshProvision.podspec.json b/Example/Pods/Local Podspecs/nRFMeshProvision.podspec.json index d3de5f863..dcc8fe498 100755 --- a/Example/Pods/Local Podspecs/nRFMeshProvision.podspec.json +++ b/Example/Pods/Local Podspecs/nRFMeshProvision.podspec.json @@ -1,6 +1,6 @@ { "name": "nRFMeshProvision", - "version": "2.2.0", + "version": "3.0", "summary": "A Bluetooth Mesh library", "description": "nRF Mesh is a Bluetooth Mesh compliant library that has many features such as provisioning, configuration and control of Bluetooth Mesh compliant nodes.", "homepage": "https://github.com/NordicSemiconductor/IOS-nRF-Mesh-Library", @@ -13,20 +13,33 @@ }, "source": { "git": "https://github.com/NordicSemiconductor/IOS-nRF-Mesh-Library.git", - "tag": "2.2.0" + "tag": "3.0" }, "social_media_url": "https://twitter.com/nordictweets", "platforms": { - "ios": "10.0" + "ios": "10.0", + "osx": "10.15" }, "static_framework": true, - "swift_versions": "5.1", + "swift_versions": [ + "4.2", + "5.0", + "5.1", + "5.2", + "5.3" + ], "source_files": "nRFMeshProvision/Classes/**/*", "dependencies": { "OpenSSL-Universal": [ - "= 1.0.2.19" + "= 1.0.2.20" ] }, "frameworks": "CoreBluetooth", - "swift_version": "5.1" + "pod_target_xcconfig": { + "EXCLUDED_ARCHS[sdk=iphonesimulator*]": "arm64" + }, + "user_target_xcconfig": { + "EXCLUDED_ARCHS[sdk=iphonesimulator*]": "arm64" + }, + "swift_version": "5.3" } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 98d1ff7e6..796c73958 100755 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,29 +1,25 @@ PODS: - - nRFMeshProvision (2.2.0): - - OpenSSL-Universal (= 1.0.2.19) - - OpenSSL-Universal (1.0.2.19): - - OpenSSL-Universal/Static (= 1.0.2.19) - - OpenSSL-Universal/Static (1.0.2.19) - - SwiftLint (0.37.0) + - nRFMeshProvision (3.0): + - OpenSSL-Universal (= 1.0.2.20) + - OpenSSL-Universal (1.0.2.20): + - OpenSSL-Universal/Static (= 1.0.2.20) + - OpenSSL-Universal/Static (1.0.2.20) DEPENDENCIES: - nRFMeshProvision (from `../`) - - SwiftLint SPEC REPOS: trunk: - OpenSSL-Universal - - SwiftLint EXTERNAL SOURCES: nRFMeshProvision: :path: "../" SPEC CHECKSUMS: - nRFMeshProvision: 4ad4424113822a83fb88aa7f315ba5bc5e416ae6 - OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355 - SwiftLint: c078a14d7d7ade75e5507795d185e3da41d844d2 + nRFMeshProvision: 3022c7f8626753a1b76d20ead4cbb2888f74e88b + OpenSSL-Universal: ff34003318d5e1163e9529b08470708e389ffcdd -PODFILE CHECKSUM: d915a99ebadab623fe0a3c47ee4d748c2ba3e43c +PODFILE CHECKSUM: 69a81463322ef34ca0a20b98e90da2701d94e4ec -COCOAPODS: 1.8.4 +COCOAPODS: 1.10.0.rc.1 diff --git a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-arm64.h b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-arm64.h index 21630b773..7769fa066 100644 --- a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-arm64.h +++ b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-arm64.h @@ -122,8 +122,8 @@ extern "C" { #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) -#define ENGINESDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-arm64/lib/engines" -#define OPENSSLDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-arm64/ssl" +#define ENGINESDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-arm64/lib/engines" +#define OPENSSLDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-arm64/ssl" #endif #endif diff --git a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7.h b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7.h index ebc589f98..ad6622af4 100644 --- a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7.h +++ b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7.h @@ -122,8 +122,8 @@ extern "C" { #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) -#define ENGINESDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-armv7/lib/engines" -#define OPENSSLDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-armv7/ssl" +#define ENGINESDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-armv7/lib/engines" +#define OPENSSLDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-armv7/ssl" #endif #endif diff --git a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7s.h b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7s.h index d441feec1..893a2ede9 100644 --- a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7s.h +++ b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-armv7s.h @@ -122,8 +122,8 @@ extern "C" { #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) -#define ENGINESDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-armv7s/lib/engines" -#define OPENSSLDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-armv7s/ssl" +#define ENGINESDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-armv7s/lib/engines" +#define OPENSSLDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-armv7s/ssl" #endif #endif diff --git a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-i386.h b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-i386.h index a33238082..d57bf40a9 100644 --- a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-i386.h +++ b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-i386.h @@ -121,8 +121,8 @@ extern "C" { #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) -#define ENGINESDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-i386/lib/engines" -#define OPENSSLDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-i386/ssl" +#define ENGINESDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-i386/lib/engines" +#define OPENSSLDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-i386/ssl" #endif #endif diff --git a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-x86_64.h b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-x86_64.h index 6925a1d55..1a6184f65 100644 --- a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-x86_64.h +++ b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslconf-x86_64.h @@ -121,8 +121,8 @@ extern "C" { #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) -#define ENGINESDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-x86_64/lib/engines" -#define OPENSSLDIR "/var/folders/hl/5lwrrzrx20d2h38qww1kr9x80000gn/T/tmp.G75gKHnz/1.0.2t-x86_64/ssl" +#define ENGINESDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-x86_64/lib/engines" +#define OPENSSLDIR "/var/folders/2_/tt78sncj6p9fbmkn7808254h0000gn/T/tmp.8FhvWy5t/1.0.2u-x86_64/ssl" #endif #endif diff --git a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslv.h b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslv.h index 488e2bc40..81b02e5f3 100644 --- a/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslv.h +++ b/Example/Pods/OpenSSL-Universal/ios/include/openssl/opensslv.h @@ -30,11 +30,11 @@ extern "C" { * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * major minor fix final patch/beta) */ -# define OPENSSL_VERSION_NUMBER 0x1000214fL +# define OPENSSL_VERSION_NUMBER 0x1000215fL # ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2t-fips 10 Sep 2019" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2u-fips 20 Dec 2019" # else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2t 10 Sep 2019" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2u 20 Dec 2019" # endif # define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT diff --git a/Example/Pods/OpenSSL-Universal/ios/lib/libcrypto.a b/Example/Pods/OpenSSL-Universal/ios/lib/libcrypto.a index 33bfd112a..e01c7add9 100644 Binary files a/Example/Pods/OpenSSL-Universal/ios/lib/libcrypto.a and b/Example/Pods/OpenSSL-Universal/ios/lib/libcrypto.a differ diff --git a/Example/Pods/OpenSSL-Universal/ios/lib/libssl.a b/Example/Pods/OpenSSL-Universal/ios/lib/libssl.a index 1c43b63a5..197e4a0b8 100644 Binary files a/Example/Pods/OpenSSL-Universal/ios/lib/libssl.a and b/Example/Pods/OpenSSL-Universal/ios/lib/libssl.a differ diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 88155f5d9..b786c8451 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,15 +7,6 @@ objects = { /* Begin PBXAggregateTarget section */ - 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */ = { - isa = PBXAggregateTarget; - buildConfigurationList = AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */; - buildPhases = ( - ); - dependencies = ( - ); - name = SwiftLint; - }; B9ED5194E665042005069EF06C82A050 /* OpenSSL-Universal */ = { isa = PBXAggregateTarget; buildConfigurationList = 741581A7361AF4537A921DAD19E3B1ED /* Build configuration list for PBXAggregateTarget "OpenSSL-Universal" */; @@ -24,783 +15,840 @@ dependencies = ( ); name = "OpenSSL-Universal"; + productName = "OpenSSL-Universal"; }; /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 000A4CC9BF49D7298030240F0FDB953C /* LightHSLSaturationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C7AB13F8128D1C3941E3A29C5B69C30 /* LightHSLSaturationStatus.swift */; }; - 00A0C06247D40BC1E4B50421B66CF3C9 /* Model+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F7EEC370FCA77181BCDBE169C4D5E6C /* Model+Name.swift */; }; - 013A53BB71B9D67B7F331104E680630E /* ConfigNetKeyAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = A400E289342EA6D1D2693E91EBD5FDDB /* ConfigNetKeyAdd.swift */; }; - 01FF0E0C4B62A36F53C7CF3C17D06708 /* GenericDefaultTransitionTimeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9A84F6B8F538F01388759FD9DA3D61C /* GenericDefaultTransitionTimeGet.swift */; }; - 022AE41FCFE3923A0EB75627DDA58F85 /* ConfigCompositionDataGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B9C61F2CDA3980500BB05284E512BA /* ConfigCompositionDataGet.swift */; }; - 0286DA6B7DA09B45BB570EE156C892F4 /* SegmentAcknowledgmentMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0809184D9B5E35D7E971ABBD653E4959 /* SegmentAcknowledgmentMessage.swift */; }; - 02E7E12989A243DE2D6E200F01B5A474 /* SecureNetworkBeacon.swift in Sources */ = {isa = PBXBuildFile; fileRef = B623887027B125E6CBEF90AA69CC6882 /* SecureNetworkBeacon.swift */; }; - 0393BDB3F8DDEB74738C895E69982061 /* LightCTLTemperatureRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B484DCB831B756BC13A8FDC08209CF0E /* LightCTLTemperatureRangeSet.swift */; }; - 044FA6772F89CBB8FCA13BFB211131C6 /* MeshMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE9CAA39610F7307C6AF900AB86F7D6D /* MeshMessage.swift */; }; - 045F02DBE92E3F2D9327D40E70E5CE07 /* Algorithm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D562F649FFF959A925DE822AB157BE4 /* Algorithm.swift */; }; - 05AC430E293A8CEBF735AC57F434CB53 /* MeshNetwork+Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AFF0E742DBE30CEC0164F913795E816 /* MeshNetwork+Address.swift */; }; - 08EE5AA3B6050AD4AA2B9FA3AD09B8B2 /* ApplicationKey+NetworkKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 687977F55B48F4CBE2671F023E509ED5 /* ApplicationKey+NetworkKey.swift */; }; - 09323450AD5B1808E7E73B57102488EF /* LightLightnessRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5DF4ED14A1420B98112771A9AF1AAD1 /* LightLightnessRangeSet.swift */; }; - 09325ED146078658AC421FC3594FBE16 /* ConfigBeaconSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1238D39D601CD74AA2491DF79C283FBA /* ConfigBeaconSet.swift */; }; - 0979755825030FD3C747635E25CDDA45 /* LightHSLDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 770C565E68279DEFEB7CB8E2415A4F26 /* LightHSLDefaultSetUnacknowledged.swift */; }; - 0B239D99C40E0734BC508A961CDC7633 /* GenericPowerDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A1D4F7584E47C8233117CE574B145A5 /* GenericPowerDefaultSet.swift */; }; - 0C0F0C19977B0C151DCDCA3899C475D6 /* GenericMoveSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F85AB7FC8BB273D6B2730C97363009D /* GenericMoveSetUnacknowledged.swift */; }; - 0D18B78F9701772B7DA3C3CFC9AD7DB0 /* CompositionElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8BBC5023678873636B2264C4E2CB79 /* CompositionElement.swift */; }; - 0DB56BBE425C6047590D047824EC7C1B /* MeshNetworkError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03F24D5C39141857DA2B9541863CAD8F /* MeshNetworkError.swift */; }; - 0F965BDCD561318536064BD18DD2142C /* LowerTransportPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6103853A1B7136C9092BAFC1253532FA /* LowerTransportPdu.swift */; }; - 1074181D95B6DFB9EFA756638066BDB4 /* LightLightnessDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B22C6574E40AB34D5D5C85955206F403 /* LightLightnessDefaultSet.swift */; }; - 11153F7B775E81B44533BB630247357A /* GenericPowerRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B6E45BA98554B6A036ADDC5969CCF4 /* GenericPowerRangeSet.swift */; }; - 125260D4BB897CEF59200A8E29724977 /* GenericOnOffSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF89BEE4A2BB2D30065996C90C2248AA /* GenericOnOffSet.swift */; }; - 129206F6CE07A7119DA5FF8410D80FF4 /* GenericPowerLastStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 637231D1D1F5E36A51DC5B6820E594AF /* GenericPowerLastStatus.swift */; }; - 135920F3396F0A19BBC679640D356012 /* GenericOnOffStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A5E86959F49A0F4B0FB33D3E82235F8 /* GenericOnOffStatus.swift */; }; - 1419F7ECA07244D106371BDF9ECEA739 /* ConfigNetKeyStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BF6054FDAC3A9ECD9BA0B63B5D3125 /* ConfigNetKeyStatus.swift */; }; - 159964D12160AFC65AFF5C1724BCC4FA /* LightLightnessDefaultGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB96E52D31B652983DAD638B8A89ECD9 /* LightLightnessDefaultGet.swift */; }; - 18BFF3CFD559AD1DB638E5E2A03E4CAB /* MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC9A77880EAAB7551F16814BAF689253 /* MeshNetwork.swift */; }; - 18E30306B63C1E3AF07858966FEF0D8C /* LightHSLTargetGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B2B87A0BE281989A7802521D93F92C6 /* LightHSLTargetGet.swift */; }; - 19E35785A2038C26A86A2FA0784922C0 /* PBGattBearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA6F8A9C411146CE356BDEA7E91B9270 /* PBGattBearer.swift */; }; - 1ADE945F9B1A4F5F67828228BEFAC16C /* ConfigNetworkTransmitGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A9793E6DC587AA823E0BAA1C75C873 /* ConfigNetworkTransmitGet.swift */; }; - 1B47AF3858B77EFA0AC0E791B8284041 /* Node+Elements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97896B9201878EBA9DBA0A7AE13092D7 /* Node+Elements.swift */; }; - 1C69C6CF2FE594275CCFEBDF1A44F218 /* Element+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 010B08819C407B094175745BA42882E6 /* Element+Keys.swift */; }; - 1E01979929339C4B88C5E52BDA83BD17 /* MeshNetwork+Nodes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E3D64B04CAD991A9D53D79854F7A6F /* MeshNetwork+Nodes.swift */; }; - 2033DB98FE546C5526DE6A2A7CB73458 /* GenericPowerLevelGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C94E9B032AA8E4D62FED160E4EA98F5 /* GenericPowerLevelGet.swift */; }; - 20C46161D5FD2F8A640A5CD7408DF123 /* AccessLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 480C74D5F2708A172E458036924784BD /* AccessLayer.swift */; }; - 213D74EE12EE660BBC4BF5DB3510A5A4 /* ConfigRelaySet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3D3F336EC35DE66420FEB21AFBC9FD9 /* ConfigRelaySet.swift */; }; - 2171CE3F374CDBEE26451CC5005F2776 /* LightCTLTemperatureRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F836FBFB07B5CE3E479E76B35548E52 /* LightCTLTemperatureRangeSetUnacknowledged.swift */; }; - 21885552F9B536112ABCF647C9FC997F /* GenericPowerLevelSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 350BA3BF14B883C741AE1BE3FC5A413D /* GenericPowerLevelSetUnacknowledged.swift */; }; - 2209EA4DFDAA1E4546CBC22F202063F2 /* ProvisioningState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A1D94B87B296C5A3D3E48EE4617D476 /* ProvisioningState.swift */; }; - 220CADF9E17BC6E87D4FDE0C44FA5D65 /* StepResolution.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B8E92E6E5C22AD1FF4019A14C748B78 /* StepResolution.swift */; }; - 22314FB3C3FBD8EDE92DC7DFD8A2EFC6 /* GenericOnPowerUpStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34FB4CB3FD6B60123E75C2FFA5DF0B9F /* GenericOnPowerUpStatus.swift */; }; - 2234B15517E5F95D175F53F5A0928C28 /* Security.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2BB347089F5440DBF0B3C14C0825396 /* Security.swift */; }; - 227639E0C4BBA498903BC92880283933 /* ConfigGATTProxySet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F62F62727752017D58F66604A931908 /* ConfigGATTProxySet.swift */; }; - 23430AE0C3EA0655540B5E30B81B6977 /* ConfigurationServerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E2C9C363D07FDC39CD6382BD77AB136 /* ConfigurationServerHandler.swift */; }; - 23F3DFD620206C208EF3F9CAA748B56E /* SceneStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = C50D88BEC69D7479417530A13EEC36EB /* SceneStore.swift */; }; - 243895897D69D709276A7B94A9CB4CAC /* GenericLevelSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDD02B804C2CE7A7E5E3B45EDB82CC03 /* GenericLevelSetUnacknowledged.swift */; }; - 24573FBCE499E79BEFE2415CC11111F7 /* PublicKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCBACD939FD63517EA508FD869BC86E3 /* PublicKey.swift */; }; - 246196D6513A7261136B3C04B2BBF402 /* GenericOnPowerUpSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24BB185C3E8BAD662ECE491EF37DA961 /* GenericOnPowerUpSet.swift */; }; - 248F406F18178979D2D89362894ECFFC /* ConfigModelSubscriptionVirtualAddressDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3530FF80C676EBE031E7A065EE6FC512 /* ConfigModelSubscriptionVirtualAddressDelete.swift */; }; - 25CBE655D099725378E3FF3F220CED0A /* UpperTransportLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBA2CDED6A3599B8FE08E7F52C614020 /* UpperTransportLayer.swift */; }; - 262F8F6BBD5BF9E775FC9BCAFE7FEBF9 /* GenericOnOffSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54166318474ABE72B33B2889738B52B6 /* GenericOnOffSetUnacknowledged.swift */; }; - 26A6691E0424EF07167FF3F85BED7C65 /* LightHSLHueStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C3C04000E21EAF8AADA9AE4AAC88093 /* LightHSLHueStatus.swift */; }; - 279B0F17087940F4F20DAB5119919FAA /* BeaconPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3BB8A2DF7DD75D205A72EF7E214C6A2 /* BeaconPdu.swift */; }; - 27ABADDCF86E878F5C82CC5DF85A066A /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49E697491769CD10D65DBA103F18C15 /* NetworkManager.swift */; }; - 27E0F3F275250575C572B9BCCF7C9FB0 /* KeyIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE5B13B82E755BB156EB385EDE5E57D /* KeyIndex.swift */; }; - 2A2C07BF7C95275050A05D048AD1EFA4 /* MeshUUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69FD466B7D6A76C45BA8E857F7FAD9B4 /* MeshUUID.swift */; }; - 2B01FCBBC4A4399BFDDAD861550961BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - 2B5AA85F0DC2E3F4BCF79671F6A60A88 /* LightCTLDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE1C76BCBE2D9A73CB79BCDDC4457C1C /* LightCTLDefaultSetUnacknowledged.swift */; }; - 2B777DBA5523EDB2B68F51378DEB114F /* LightCTLDefaultGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B828C4260D655858ED7E3FE6BFE0D890 /* LightCTLDefaultGet.swift */; }; - 2CE62181EDD9B668D78F3AB630F9363A /* LightHSLSaturationSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = B84F8EB7D50D67F22FEB32EC3374ECD6 /* LightHSLSaturationSetUnacknowledged.swift */; }; - 2D1BCD0A25FB651E3297CA943E08D289 /* NetworkPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AD1310A338736EFEC07A803E5DDA9CE /* NetworkPdu.swift */; }; - 2D81D468E5044312FD6FABDCC1B8C6B0 /* ConfigVendorModelAppList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E3E67C0820BDE8B7F9767F1600B9D37 /* ConfigVendorModelAppList.swift */; }; - 2E4BDA6A3C15058034BB2B3696F273A8 /* LightCTLTemperatureSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648466E1E96A51C266D40D32FC114E04 /* LightCTLTemperatureSet.swift */; }; - 31FF98DDB3D75AD06DB0AB6BC1B9563E /* LightLightnessLinearSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED62BDE7DD6AC352ACAEBD1B9D38174E /* LightLightnessLinearSet.swift */; }; - 32779D2381C67B0B266521FE49BA7A12 /* ConfigModelSubscriptionOverwrite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 280C85603813ECC5E52B725757F08E1F /* ConfigModelSubscriptionOverwrite.swift */; }; - 32AD0A410DC4B9F6910A917C162EA6EE /* SceneDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F547843B03D14B11D408683557B12B /* SceneDelete.swift */; }; - 32B79ACCDC9F239409B66212CCE45994 /* Pods-nRFMeshProvision_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CEAC6C669DF2BB23730633F28084C3E0 /* Pods-nRFMeshProvision_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 330E9D2117CF3866F4F7864679A7E1F7 /* GenericOnOffGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420867CCA79B0B87A7AFA8BAE85E2A05 /* GenericOnOffGet.swift */; }; - 352F2AAC588D69C2CDCD32E6E834FA3E /* MeshNetwork+Provisioner.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5438BAACE142F3554AB28CA47CF1BB0 /* MeshNetwork+Provisioner.swift */; }; - 353DC922F00812175FE39BCB4F497949 /* LightHSLTargetStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12045479F74544041FA3CA2F30CA80B2 /* LightHSLTargetStatus.swift */; }; - 36BEB0E77A06EB4356CF41059EAA74F1 /* LightLightnessRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1690647A8327F3756BA53019B3EB3C12 /* LightLightnessRangeGet.swift */; }; - 36E5BC2CC42B6C686F409EFF46555F80 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - 371AD05EC286AA0614E5FB1BFCC80A05 /* ConfigNetworkTransmitSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2C616047ED678DA44EEE3CEA2888859 /* ConfigNetworkTransmitSet.swift */; }; - 374705F372AC0E7EE7E38473283778D5 /* GattBearerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAF8A6A3436D61C4695468AC100A4221 /* GattBearerDelegate.swift */; }; - 387C1F9A246D78B06729880200514938 /* OnPowerUp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D49FDD60B702BE67743F9112272A5795 /* OnPowerUp.swift */; }; - 393FE35030C8B1B93A0A04734035F8DF /* LightLightnessDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AE2B87D29A92A272AA7110CC7D1DF8A /* LightLightnessDefaultStatus.swift */; }; - 39AD1020806F5D47A922E017C08648EF /* SceneRecall.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B7B4B8DC0649A7B15F84C7AAD05CA8 /* SceneRecall.swift */; }; - 3C54C459103FDB3973434E3A591550B5 /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = D796DFA4C046B9BF34622046781D3A60 /* Node.swift */; }; - 3EDA68C5CE3205415E74FC787A55412F /* ApplicationKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 136A871AC6BE69F7BF5770C379B0BBFA /* ApplicationKeys.swift */; }; - 3FF3B3426C876A6A19856335C78D03B7 /* Provisioner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B3EB40AEB868FDD471922FF6753C73E /* Provisioner.swift */; }; - 4053E0A6EE08B52AB4E3BD5614692F2D /* SceneGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D6F13A30B64D8F2AC4FBC2A83AE73C /* SceneGet.swift */; }; - 4238071BDAD04B614FF191238B39DBEB /* AddAddressesToFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17CE76F641DB38485019AFEB30ED9BEC /* AddAddressesToFilter.swift */; }; - 43061484CC0AD72C55D6C9F1D640C476 /* LightCTLGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53756E93A95E6AD14FB0A43577386DD6 /* LightCTLGet.swift */; }; - 434A71CFB0015CF3E27DD75E79DB8AAA /* UnprovisionedDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73440C1F1D10DCF1756ED168045CB714 /* UnprovisionedDevice.swift */; }; - 443ACEEE7C725CA0C4BA094B624AB1A2 /* ConfigNodeResetStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B12068F54B27B191B1F5F4ADA0145EE5 /* ConfigNodeResetStatus.swift */; }; - 44528F103214A1F2761FCB9AEC875A36 /* ProvisioningCapabilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FEF22695B2AD3E77B038283A222494D /* ProvisioningCapabilities.swift */; }; - 44E0DC433B6E59B082C783C7E22FF916 /* OptionSet+Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3C934468025D62648CC48351E370E1F /* OptionSet+Data.swift */; }; - 44F9D05F7992FA329D86BB2441F0E406 /* KeySet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFAED0F4E2313A19604FA3FFC975483B /* KeySet.swift */; }; - 458C4E7A41918B439D8CAD23E43FB641 /* LightHSLHueSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 315CB18BED0BE31D685439E753EFD368 /* LightHSLHueSet.swift */; }; - 45D2235ECED57A2098D6CC5FDB3B0C22 /* NodeFeatures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988CFEC0FDA68C6E21040920A7A614FA /* NodeFeatures.swift */; }; - 46D6A8A2B68BFA131FBD6A5EE7927B6E /* ConfigDefaultTtlGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738D45A1C1CF99298B70FD91C3BF6839 /* ConfigDefaultTtlGet.swift */; }; - 47D2E956D46FF05298E2FF381E41AB5B /* ApplicationKey+MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D2FE8143EF7E049DBF956D08F89896F /* ApplicationKey+MeshNetwork.swift */; }; - 488721C4185FED25BB5C7515461E9F31 /* GattBearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FC3174CDBDF2103FAD5E759E8F5C5A4 /* GattBearer.swift */; }; - 49C439F70C6943121C0CE710E0259C02 /* UUID+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = C33951985C0BB1C6B4AAAD399735FCCE /* UUID+Hex.swift */; }; - 4A922060143542B8485C37A87C81B12D /* LightHSLStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01419A6DD362C3A35A29C53F24D2DC87 /* LightHSLStatus.swift */; }; - 4B2D1FA3A8971CE04D354585A98B1B16 /* Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6859C37A0FDCA6A418DD5C5722EF8F33 /* Group.swift */; }; - 4BB5A6EC0B6A5355583C1C0F862CCF8B /* RangeObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CB175CE5FD8E4A5A5E758108A4F92AE /* RangeObject.swift */; }; - 4C886843FD53DF2710029A91559A5556 /* ConfigModelPublicationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3F8BC4A3934FE8B98F1D76046A8A54C /* ConfigModelPublicationStatus.swift */; }; - 4CF423D363D0FE319C3F46637CA80B2E /* NetworkKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D276E093A2F982265C747D3AC51C9ECF /* NetworkKey.swift */; }; - 4EDE095731E0241FCF455B787CAFC030 /* LightHSLSaturationGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE9BB762BB289CC2D314C3D493D063EB /* LightHSLSaturationGet.swift */; }; - 4F0F22457533D7279AF11191CDE1813A /* MeshMessageError.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC09084034668EB1211CF503E4664E91 /* MeshMessageError.swift */; }; - 51623E007033703B2BDA7DB8A7DA7235 /* LightCTLSetUnackowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47B2C04429BC1B5E4E6E8AF80FBBBA4D /* LightCTLSetUnackowledged.swift */; }; - 5522EFA3CB0EE2B00A1EB9B097A69616 /* OpenSSLHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A5DC2434FC2B09AEDD2E3E5AF59DDAC /* OpenSSLHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55B427E3260EE969B6ACF8CE44B0BCA6 /* ClosedRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EF4B1A501DF20EF9F6DC03F1A0BED3A /* ClosedRange.swift */; }; - 55F4D56BB50CD664A0C6814EAA5F899A /* LightHSLSaturationSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9426567D0BC2F7931DF60284DB65ACAF /* LightHSLSaturationSet.swift */; }; - 56423228136609357F0373BE341534C4 /* BearerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23F133F7120DA99A60097C753325E268 /* BearerError.swift */; }; - 573BD3F74BAA3CC2910D5AEEF9CB006C /* nRFMeshProvision-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 14EF4EB62A4A7A4241646BCE3F1A7DA0 /* nRFMeshProvision-dummy.m */; }; - 5987DCDC30DBD3F80875DEBF07E8A272 /* ConfigNetKeyList.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE203DB409D68FAC6E3B561FABA79620 /* ConfigNetKeyList.swift */; }; - 59DF7D8A73EC0B98B8F487E40C113110 /* ConfigModelSubscriptionVirtualAddressAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = C21E604DBF682D1158244522366BC5DB /* ConfigModelSubscriptionVirtualAddressAdd.swift */; }; - 5A3FAE200ED3604CD50E2D00D7730D0B /* Beacon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E5638447767A8F60F884BDD9C504C6 /* Beacon.swift */; }; - 5A496D62CA133B7AC7EE3E482A34A583 /* SceneRecallUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6EE313D5D9DAAD2918E295BF7B8145C /* SceneRecallUnacknowledged.swift */; }; - 5A584BC9C4D07D968A7F3AD5E2458C7E /* LightLightnessLastStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FFFB354277BE8A54B76B14DC9A42C53 /* LightLightnessLastStatus.swift */; }; - 5B1A52BC74F71F2AE97D188E811D6A28 /* AccessMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2160331838FF3FF116BE31DBBB57C6E /* AccessMessage.swift */; }; - 5BC28AF264A02DF32AC6A95A0A4AA07E /* SceneDeleteUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60773780809048AC8E986E1B2E1075B7 /* SceneDeleteUnacknowledged.swift */; }; - 5BC61DE63E7D139662675A0CA290ED5D /* ConfigGATTProxyStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 102EFEAF34163D6DC20D5D9A524F8CCB /* ConfigGATTProxyStatus.swift */; }; - 5BE81EFC5A1DD0DCE2F57B7FA78B37F3 /* ConfigNetKeyUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50A6987D9A91483E9C9842A2FFEAD00A /* ConfigNetKeyUpdate.swift */; }; - 5D05041D49BEA10804330CA8DD21B8F0 /* SegmentedAccessMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6237B544B013FE7BEA77BAFB71185AD0 /* SegmentedAccessMessage.swift */; }; - 5D9BC0B8A48E3AB418FAD5DF35258685 /* ConfigNetworkTransmitStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11CAB0C647173EEB60E98E0B0CDD4A60 /* ConfigNetworkTransmitStatus.swift */; }; - 5EB0D2033B984FAA74DD547192C84263 /* FilterStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BBC8E101E888F3F7FD47A8A7040129F /* FilterStatus.swift */; }; - 5ED93D8352B8959B11453192F6561A0A /* LightCTLTemperatureRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29399E6C634E1578CF48EC684125264E /* LightCTLTemperatureRangeStatus.swift */; }; - 5FB5BABF266ADC5F89FE58DCD5EC7B86 /* ConfigSIGModelSubscriptionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 639F400E3BB98C1DCDF6AF27B881A6AA /* ConfigSIGModelSubscriptionList.swift */; }; - 600063CE520042FDD8B6DD376D7C0BA0 /* LightCTLDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FC78BBDBEB3317C7A2C489B0874C531 /* LightCTLDefaultSet.swift */; }; - 607ECD455B822DBF251CFE1BDEA94763 /* LightHSLRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B950D4B4DE30E5015690DE2D47B9B8 /* LightHSLRangeSet.swift */; }; - 61E0AD26F19DB387BBFAD9C7A661CA81 /* LightHSLDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB4E39A1E7F2D8CFD8BE03EA7324593C /* LightHSLDefaultStatus.swift */; }; - 61EFAF0488525B042DCFCD658B5DAA4E /* Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = F966405A6EF0BAF1CE2106373EE994E3 /* Ranges.swift */; }; - 620DA64FB42FE94AE8136AA84D255347 /* Location.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C96F1083BBA8D28290D28E1D0B1D873 /* Location.swift */; }; - 633F34E707BF58F4FB5CEBACD0E8D0A2 /* Pods-nRFMeshProvision_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDAEBF0242FD76DFDE2DBF48C7BAF58 /* Pods-nRFMeshProvision_Example-dummy.m */; }; - 6356660508B7B52AEB566A2C5E21ABAC /* LightLightnessSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43993776BCB717466C26B404C567F5EE /* LightLightnessSet.swift */; }; - 635C39DA6EDEB7645442FC7D055377C1 /* LightCTLSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59EFB2A5A275FDC979D1DCBCE8BEA700 /* LightCTLSet.swift */; }; - 635FCA1159E40CE55BFDEB2B40FBAA20 /* ConfigModelPublicationSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35CBCE958F3282E861FC90FD558A87A /* ConfigModelPublicationSet.swift */; }; - 63859A4AEC40E78A01D1DCF933FAAE3B /* GenericPowerLevelStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E77A79A09C188F27D5948B54098582F /* GenericPowerLevelStatus.swift */; }; - 63AEDC69A6E75A09351857142E2043A9 /* ConfigVendorModelSubscriptionGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A0F8F36208D882DDA9B0F94F16858CF /* ConfigVendorModelSubscriptionGet.swift */; }; - 644B045687F80ECA9BD0A630910F800B /* MeshNetwork+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46FA9061ED8D93522997BBC6C0EF0CF0 /* MeshNetwork+Keys.swift */; }; - 64FDD2D61C02158C9713E1B9F1573949 /* SceneRegisterStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28D00482DA5F4F0A57630249F0118349 /* SceneRegisterStatus.swift */; }; - 664718A55EF2893FDC26FCC7C3694A97 /* ApplicationKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CC7C76EB155EE56D2A3041E855A0666 /* ApplicationKey.swift */; }; - 666D49FB3B74D12209840F2E3B79E25C /* MeshAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DA000EBAC840A41801D51BFADA2BDA2 /* MeshAddress.swift */; }; - 668C45D55D6A134924C41F518D22E23D /* ConfigVendorModelSubscriptionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFA375F24C3AB6F4BC1FF8A3AA33EB45 /* ConfigVendorModelSubscriptionList.swift */; }; - 692EF8035925A52796CC8A23145A358F /* MessageHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0128130FDDAA93816383BDDB5EEFFAFA /* MessageHandle.swift */; }; - 698EEF33FEF0486E5338EAACCC465DD4 /* ConfigAppKeyAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F6C63209ACE2CAD63D9D936C8D0E83 /* ConfigAppKeyAdd.swift */; }; - 6A47139DC0B77309141AFB3CA086B193 /* Bearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 490989DD553F93363A49771D8C029816 /* Bearer.swift */; }; - 6ACADC006A09958AA3820C34AEDEE963 /* ConfigNodeReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92A0339B9D22018F3EAAF40708E9C86B /* ConfigNodeReset.swift */; }; - 6B596DF4BA6447E9F42ED61D108B6F12 /* ConfigBeaconStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AA184343761882A81453DE5935627AA /* ConfigBeaconStatus.swift */; }; - 6B74C6CC9F432264FDA5845C60A0210D /* GenericPowerRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38860760DBFC5062DA9F4ABCDA426FD /* GenericPowerRangeStatus.swift */; }; - 6CA41DA27F9BF62DACABE90AD161F8E3 /* LightLightnessLinearGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC263AF94BB4945735E2B0566073C1 /* LightLightnessLinearGet.swift */; }; - 6CB688B5570445325974B594F43D656E /* ConfigModelPublicationVirtualAddressSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F16FEB6F3A2D59D63FAA52D576DB35B /* ConfigModelPublicationVirtualAddressSet.swift */; }; - 6E5D5E2FFC5C19146C646FD3661455CA /* LightHSLDefaultGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A9445051AC704B63B4416B0E544A66C /* LightHSLDefaultGet.swift */; }; - 6F3FD3B5D63CD75326733740E335525D /* LightCTLDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5F4441C288DF3384A08FDD14D31102E /* LightCTLDefaultStatus.swift */; }; - 707E5D6A1F69B8C2E3B7EFEE7D14BA8D /* MeshConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF8A2A51FFE8A3AC73F007F4776B5873 /* MeshConstants.swift */; }; - 7556E92B55A34CF2A6CE32773DC0670D /* ConfigVendorModelAppGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2479DEB1A09AA026AE385BB567A4722C /* ConfigVendorModelAppGet.swift */; }; - 755F950D3D40EFEE6AEF80FA288EBFC1 /* GenericPowerDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E0881D75865E2DF5F038B4CA9BC4540 /* GenericPowerDefaultStatus.swift */; }; - 7572D018676BB49A4083B8D6D38A45F6 /* ConfigFriendStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ABD46EE3B6F78346CC5435DF94DF0EC /* ConfigFriendStatus.swift */; }; - 759B180A86A8C542AE55783DBB81D330 /* Model+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4C4ABEEA989899065D8A6E85D1D92C6 /* Model+Keys.swift */; }; - 762C3C5E02E7961629FB33C4FA6A3A87 /* LightCTLTemperatureRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5295A7707ABC1FCE73976E05C9559C9 /* LightCTLTemperatureRangeGet.swift */; }; - 7649B9CD9219C338AF4AE31C6941698C /* LightCTLTemperatureGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7981CF0EAB038F85C31F56374AE26E7 /* LightCTLTemperatureGet.swift */; }; - 76A69184E9EE7FB324D4EA93EAFD5862 /* ConfigAppKeyUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC5BFB1F974B00797F9546B984301F95 /* ConfigAppKeyUpdate.swift */; }; - 7799B6871D3D8FAF71B4CB9F99F21FBD /* LightCTLTemperatureSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = E810AA66B017B8FE221FE9EEC02B83AA /* LightCTLTemperatureSetUnacknowledged.swift */; }; - 78887C23CBD3712944C011124771533A /* LightHSLRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B73186CE83020E1B0D60D19F363886 /* LightHSLRangeStatus.swift */; }; - 793BF1CC7F40CAD59E070D3BBC5F6116 /* HeartbeatMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1F6E718917863D448F027C7131A1BA6 /* HeartbeatMessage.swift */; }; - 7B88ADD1FF236F20912D26F8E7192FCE /* GenericBatteryStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BF3C54112737715A3472C3DDEF7D28F /* GenericBatteryStatus.swift */; }; - 7CC44760C17CE7321C58B24D36968F12 /* GenericPowerLastGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 116016D9E7CAF5D7B7447AD027A2AADA /* GenericPowerLastGet.swift */; }; - 7D9AC6932C20171A0BC53A6910E7489F /* ConfigRelayStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608942E0B77A5541D732F910E4D92AB6 /* ConfigRelayStatus.swift */; }; - 7DD76DC426A264D76EDE01B1FF8E82F2 /* MeshNetwork+Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = 862BA501FB72D70CEA6B69ECBA0056BB /* MeshNetwork+Ranges.swift */; }; - 7E341DEF93B038D4587AE3333DE1980E /* ConfigFriendSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B68CFD6D659AA0C80CC0BD9E9128FB73 /* ConfigFriendSet.swift */; }; - 7F3B7FEBC2F6406D00A6684E707CA682 /* ConfigMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43201E9851B176A882539D622D983450 /* ConfigMessage.swift */; }; - 7F3C1206676F444A06B8A1A35011071A /* ProxyProtocolHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42ECE2D03C9D384EE01311C58256AA3C /* ProxyProtocolHandler.swift */; }; - 7FDDAA40CDEE868B49925EF96E7C2123 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBD783567BEDA58F5EC6B6F50CBFFD9D /* Storage.swift */; }; - 83494184021814FA38F7A16E11F371AF /* BackgroundTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84395293D1AABED5AD348DC93B30EA16 /* BackgroundTimer.swift */; }; - 83A6FAD4ED8E2C675A879D1B16D9AC42 /* Provisioner+Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = 815FA66C8A9FE319EFF5B8AD3B5EF9CD /* Provisioner+Ranges.swift */; }; - 84F3F90B058F76FDBBF08F08CDA5199A /* SceneStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = E12469E56119E9A06B0AF3B2DBE947A6 /* SceneStatus.swift */; }; - 8511AFAE398420BB716A6FFA6F4FCC28 /* GenericOnPowerUpSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60EDD660A00E98527FD5816D1DDB490 /* GenericOnPowerUpSetUnacknowledged.swift */; }; - 8669D4BBF0753171A37E2C7758CFEA4A /* LightLightnessLastGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFF38BEC46F2A672A9CD02E63E187A64 /* LightLightnessLastGet.swift */; }; - 8707E60732B7CE04078A4EAB28BDBBC8 /* ConfigDefaultTtlStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11BEF48DE3ED9BFEC286C62E9D9B4BB0 /* ConfigDefaultTtlStatus.swift */; }; - 876762616655900352E1D9CAA43B181A /* LightHSLRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9F3AA907874402F2290FC79A252752B /* LightHSLRangeSetUnacknowledged.swift */; }; - 87F812720BD5BA26CF7EEB3FCEBA7287 /* ConfigAppKeyGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EF37B47DA4B0178FF1820AF5BECAA41 /* ConfigAppKeyGet.swift */; }; - 884BC65BFAD72F411D8F7FECEDD0B352 /* ConfigNetKeyDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019512222742ED36961BC5881981465F /* ConfigNetKeyDelete.swift */; }; - 89C96B88ABDC0F6D7370B1939726CDA8 /* GenericPowerDefautGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1675A6423047E7B2314146A482E4CE3F /* GenericPowerDefautGet.swift */; }; - 8AB51751AF9447023AE6E44B6BC29E9D /* CompanyIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21895FCBAB3D775C52ED6C57952CE444 /* CompanyIdentifier.swift */; }; - 8B6B108EF2A169E84EEDA5343CDA66A0 /* ConfigGATTProxyGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 488D15F191C7C08B4DE8ABD1F5512CA6 /* ConfigGATTProxyGet.swift */; }; - 90AFE679586C4095D02EB610893FED28 /* AccessError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 663E12E415761E3EA80046BF50229916 /* AccessError.swift */; }; - 90B5A7F5CE9D5491904ECD9F56A7CC8F /* ConfigSIGModelAppGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB9431B7CAF8B082609FAED976C38656 /* ConfigSIGModelAppGet.swift */; }; - 9113F4C26B5620EDC2F75F353A90B3A5 /* LowerTransportLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E390BC56905E08C4279647F0E1617E57 /* LowerTransportLayer.swift */; }; - 93698B59C8DAAEEEC0DF1319C5E68F21 /* LightLightnessGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37EC3959BB5B469DDCDA0A082014E1F5 /* LightLightnessGet.swift */; }; - 943A2612E418DE1FA9EA2045BF99BA43 /* ProvisioningManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12070EFF388C88F8F36525F061621F72 /* ProvisioningManager.swift */; }; - 95A39FF3452050806829B96CEE76C1A1 /* ConfigModelSubscriptionVirtualAddressOverwrite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66D23CB075F4F3057F364B5D10EB01CB /* ConfigModelSubscriptionVirtualAddressOverwrite.swift */; }; - 97F6F79ED12670F238A01D8F36E1D33C /* GenericMoveSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EFBA9E2D51FD2BF6B5149CABB31044B /* GenericMoveSet.swift */; }; - 9876C9C71ED84261D8F6AAF4883DE992 /* MeshNetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E109CFD5F7F1FA64EA027D3C25C7A66 /* MeshNetworkManager.swift */; }; - 9886A199AE4B1A0C374B90F284C1791B /* ConfigRelayGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9A23B5651B26F62AE1AF1EB8FB93534 /* ConfigRelayGet.swift */; }; - 9889ECA5AEA3D3C369D33A07F758E6B2 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = F66CE89BEF807338ACBD94C3A9A4B3A6 /* Model.swift */; }; - 99560A9B0B571347E394C0EAF71DBE9E /* ConfigModelPublicationGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFEBAFAF29F3979FE4131FACF2CAB20 /* ConfigModelPublicationGet.swift */; }; - 99F78ADE54CC064729BEAE1A6798F5B8 /* ConfigAppKeyStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E75783BCC8B2DCB3C8E9757A41143B /* ConfigAppKeyStatus.swift */; }; - 9A2C80F407077E5C3AE468E325BFE066 /* SetFilterType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F95F20A5450D304188B4DA656E26B46 /* SetFilterType.swift */; }; - 9B418B27B096735D0CA3DD86B41CAD32 /* Group+MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 463FAB2DA56E85A4F21B1B6823902588 /* Group+MeshNetwork.swift */; }; - 9B8E6C840C5DAE0E4460C1A939804322 /* NetworkKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 494BBAB6971A932B603979B947DF47F6 /* NetworkKeys.swift */; }; - 9BA3603C5F46521C8E061C8D2119F16C /* LightLightnessStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8FB991798342ED707DB2DBFE9FFD429 /* LightLightnessStatus.swift */; }; - 9CFBEFCE5791BACB261D5343EF32145D /* Element.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E86EAE7C007F98C915E3D3DD06257A9 /* Element.swift */; }; - 9ED88244902B04798799908BD0297D56 /* ConfigModelSubscriptionDeleteAll.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B364AEDC521DDF6DC5E078DBA1EF2F8 /* ConfigModelSubscriptionDeleteAll.swift */; }; - 9FD794874F14C4D56C768A3BD66C38B4 /* TransitionTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C72DDB355FDAEC083B50197A36D7EC /* TransitionTime.swift */; }; - A0A4A586C6A853B6B32C9017E7C75256 /* Key.swift in Sources */ = {isa = PBXBuildFile; fileRef = F68851D4D5EABCE49C2D4B226DD6FA87 /* Key.swift */; }; - A0C0004AAE3AEF4CF779F29CB436DC35 /* Provisioner+Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = E348515643BF0358FFE7C6C67E0BB3C7 /* Provisioner+Node.swift */; }; - A1F4ECAC32493C627E8D5B47835ADB09 /* ConfigSIGModelSubscriptionGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE64D6CDA415A9A8395BC138A239EB23 /* ConfigSIGModelSubscriptionGet.swift */; }; - A37A5F02CE92E547F0FB3DFF0889D12C /* Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B844F95AE5B5B580DB1F288F2759C3E /* Address.swift */; }; - A3C8C3F27D2A71D36AB45C5860DE81F8 /* NetworkKey+MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552D0D5175110B3B0CA57BB06FCA0491 /* NetworkKey+MeshNetwork.swift */; }; - A434832E8568F3C1CA961BE5157403A4 /* Int+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BD82F065F0C258600DA938454295140 /* Int+Hex.swift */; }; - A47EFF5784EBB2284873065A55FE3D8E /* ConfigModelSubscriptionDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 548B39DF6F19451C85B8A7E3C6C9CE89 /* ConfigModelSubscriptionDelete.swift */; }; - A50BBBB4CCCA0ADE35BCAEA7EE410939 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; - A756F106FCB6E275BA035D9374508A63 /* LightLightnessRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89FF4A292C289923B79E3A6AFEEDF046 /* LightLightnessRangeSetUnacknowledged.swift */; }; - A759743331749A6A3DCD988A6F5CA20C /* LightHSLHueGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 216CC0A519245D382C4C1D293134D4BB /* LightHSLHueGet.swift */; }; - A7803EC51973856F0974F5490898C588 /* MeshNetwork+Groups.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E0FCF14DCEFE53ED203BA4345162056 /* MeshNetwork+Groups.swift */; }; - A7BCA30AFAE69A2F636A9044DE664A0B /* AddressRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11A9F100FB07A821694839C04CF49141 /* AddressRange.swift */; }; - A84F62622C5D2216E2B1A7A6BE7DD193 /* ControlMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B93B1E9B6EAA625BC38E6E434364FC /* ControlMessage.swift */; }; - AA25F79D25EB274FDF8299843B559BB1 /* UnprovisionedDeviceBeacon.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1466ECD8D86EBDAB1B7008F2F78EC6E /* UnprovisionedDeviceBeacon.swift */; }; - AA75C42D90441A5CDEFC778723A146B2 /* ConfigModelAppUnbind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956DDEBE1BCC60D07B5B2E29D56BF1DD /* ConfigModelAppUnbind.swift */; }; - AB2F2E3D0F910FDA14FA7B6DE28EFA83 /* GenericDefaultTransitionTimeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF2C46F50D9B9E91AE6E9B9CFA36863D /* GenericDefaultTransitionTimeStatus.swift */; }; - ADC97F667663636B4A1B8C05A2D14FC5 /* SegmentedControlMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D208C81B50773AEC8D0D73B6A10FCC38 /* SegmentedControlMessage.swift */; }; - B1D96496A9E2C0EA34C4A972D0A7160D /* ConfigModelSubscriptionStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77D3BA3E47A21B35072BA4B471B88B0 /* ConfigModelSubscriptionStatus.swift */; }; - B1F6C013FE96290A8A2F988D58CB42ED /* RemoveAddressesFromFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D24B5B4903EDD1522601CC27B38BFF68 /* RemoveAddressesFromFilter.swift */; }; - B2511A4810888A04ECEC157997CA744F /* Oob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 571972362DDFB200E6688EF31C01D9D2 /* Oob.swift */; }; - B2B43A7EC10CB80E360646B68B5B0140 /* Pods-nRFMeshProvision_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A43359B7BDF9C665A7737B649DD79C1E /* Pods-nRFMeshProvision_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B34F08C8350DA58DF12B52A0BACEB024 /* ConfigModelAppStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4D98E1FA536E71C09628A29BB18777A /* ConfigModelAppStatus.swift */; }; - B3F30916F275EB66D53F2B9E2529D8F1 /* MeshStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 658F26DF09F1F69B194DC98FF3F82EE2 /* MeshStateManager.swift */; }; - B44F0A4D64314AA2B54FE2D05880F566 /* LightCTLTemperatureStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CB19A3A0B17E8C388563EA2BA780718 /* LightCTLTemperatureStatus.swift */; }; - B519C4C2491C5E9A000168F219C1BC5D /* Pods-nRFMeshProvision_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 21CDD8648681CE8D31824BB49C8D17A6 /* Pods-nRFMeshProvision_Tests-dummy.m */; }; - B72BF1E32AF9A8357149CC5F69AF6201 /* MeshNodeEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = E367B2FA244D85513F82419D1A4322DC /* MeshNodeEntry.swift */; }; - B7DE14800A1397C47044F21A33FBC864 /* ConfigModelSubscriptionAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDDA435474B0D4CD8F9F37D3A0F28A24 /* ConfigModelSubscriptionAdd.swift */; }; - B8274375EDE3316F37E09E2DF9067C5A /* GenericPowerRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3F98F808787F4809E3E3B28B60C6AC /* GenericPowerRangeSetUnacknowledged.swift */; }; - B868D543DABC6C32139F6201F7B633E0 /* Node+Provisioner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A8D942025825F779D6E6468069A88AC /* Node+Provisioner.swift */; }; - B888B3790478E69AFDDB28630C174027 /* SceneRegisterGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6261B7319B76EADB97867131FEF9BE4C /* SceneRegisterGet.swift */; }; - B8E1D111F7E2902B29EE87F41EFE6A47 /* GenericOnPowerUpGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AB42D917A68F9EBA3DADEB36E7A3841 /* GenericOnPowerUpGet.swift */; }; - B9934CECFE22F2DB7D820577D854DCB9 /* ConfigSIGModelAppList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FA685AB6FD4A37A6CC6BABE72CB8511 /* ConfigSIGModelAppList.swift */; }; - BAFC25604CFCEFC9938CF82DCA765051 /* SceneRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = EADD335D05EEF7CC0F7200355C039EAE /* SceneRange.swift */; }; - BBC40A7B3BF26BE9B6D03C1B21979A8B /* GenericMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDA0290665462AE283BC316F672EE9DC /* GenericMessage.swift */; }; - BCB2FF3F870D56FBF41D8F642431830F /* ModelDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 193979972B552079ECF570FF98A1252A /* ModelDelegate.swift */; }; - BD1B0DF4E9535ABA3CBC108C313AC123 /* BearerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AA16A953EA62C180AAD56CEBE34F524 /* BearerDelegate.swift */; }; - BD46F9A4F6AAE9DFEF15046AA17F5DE8 /* GenericDefaultTransitionTimeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4665699539B446FF0D900E1A0BE586D6 /* GenericDefaultTransitionTimeSet.swift */; }; - C0399CF7F8FD4E55F0E9176E2DC89171 /* NetworkLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081EAD623866368C7671D11D9B2658EE /* NetworkLayer.swift */; }; - C0608814025D2BD5193CCE7225DA9858 /* OpenSSLHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3379AFBFE46D5987C50691C2155B1217 /* OpenSSLHelper.m */; }; - C10E04F0D082BE0F6CB1CB654BD86471 /* LightLightnessLinearStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B21D2D5515F691DBF664CD396187FCC8 /* LightLightnessLinearStatus.swift */; }; - C1BBD34321A2B854A4C481AD52D831FB /* GenericLevelGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AF65795732EC5B7153E200AD166C2E /* GenericLevelGet.swift */; }; - C32FA2694C3B297F9593BE119A6604F4 /* ConfigAppKeyList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78BF560DF56001E1733550D309CA1130 /* ConfigAppKeyList.swift */; }; - C4506B31598A45BF6222257E2F85781F /* GenericDeltaSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E2730C4A62DAFC1BA2491B3FB81CB8D /* GenericDeltaSetUnacknowledged.swift */; }; - C4B76F5106361A18F29AECD0A7084468 /* BaseGattProxyBearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A32564BCA26A1AC3CFA2623EAEB0E70 /* BaseGattProxyBearer.swift */; }; - C7790A33EAD5A3F7E2492440968F250B /* ProvisioningData.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8DF7D66C473B0DCF571AB14D3A4B86 /* ProvisioningData.swift */; }; - C88A3C057E2082FE76A8A9F87AB534ED /* MeshData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45941F789BD94EDB9190B84F63FA4A9F /* MeshData.swift */; }; - CBEC80446DD830AB9E79EA0155F59666 /* Scene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0671F9A5A27248CD09444D00F3E26CE4 /* Scene.swift */; }; - CCAF1D13346E40FE1A9B143B7CDCCC43 /* ConfigNetKeyGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F05AE4080979DB2EF426A97A5C5D43CD /* ConfigNetKeyGet.swift */; }; - CD25F77A375C9E419687B7EDCAA74F78 /* ConfigModelAppBind.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7BA6B8010CF5DAC5D1BF00392EB6E69 /* ConfigModelAppBind.swift */; }; - CDC4F3B8FE3AB0ED87922292269725BB /* Node+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DF99819328F1E0444EB6A55E4542F55 /* Node+Keys.swift */; }; - CDE8018A1E404A27D033EB0BACB60908 /* LightHSLRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972C6FE50A4D1449EC11116960AA29EC /* LightHSLRangeGet.swift */; }; - CE293642B10879A8AC0B5A07960DF9F0 /* MeshLoggerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7D1CC424ECDCC78458895C6C84CFC0 /* MeshLoggerDelegate.swift */; }; - CE836DC91083C380F67D40CD027960CB /* LightLightnessLinearSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACABCDE1989494206E89DE1F8D35C54B /* LightLightnessLinearSetUnacknowledged.swift */; }; - D0CE9EA87D0FFD2319A233EF897E8E69 /* ConfigurationClientHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C33F00D93B77BEC50F5A9EF3388BCC /* ConfigurationClientHandler.swift */; }; - D10F3C33364F6A26F482BF054AD501FC /* LightHSLSetUnackowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3BE6F574E372EA72089A017B05DE928 /* LightHSLSetUnackowledged.swift */; }; - D12DB538B3D30B51D5200E07B9E50420 /* nRFMeshProvision-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 40EE2B90580B68FA262FA6F41721CC96 /* nRFMeshProvision-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1C2C4B91C803CF91859BA8828611794 /* Publish.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DF53E8D4B3300108937C4AE498A66B1 /* Publish.swift */; }; - D29C2F332588901F68AA166FB33A9898 /* LowerTransportError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B36BB957A2CCFCEC95290723D744BC5 /* LowerTransportError.swift */; }; - D330DF2288C0607571DB03A1A30A5CBB /* LightLightnessRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA47A2314B513BCAED6289FDDACEF2B /* LightLightnessRangeStatus.swift */; }; - D4A7A2FDE9A9B65E4E92C885E647A404 /* GenericPowerDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E62745922D4389311F14CA1911B1A2 /* GenericPowerDefaultSetUnacknowledged.swift */; }; - D74834B606ECBC1ABBC8BA2FEFE04D7E /* MeshNetworkDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71A5FF666F3314C2DB65B7133B3DE941 /* MeshNetworkDelegate.swift */; }; - D75172A1917D0A9B561C3F5B72665708 /* GenericPowerRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E129F379D212DC631B25A6FDE037F36 /* GenericPowerRangeGet.swift */; }; - D7DC42B750618F68750B86C3A72ABD19 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = D94C8F82C09E3C8F40F429919075B9DC /* Data.swift */; }; - D943C7EF938E14E5D29805DACC47B497 /* ProxyFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B74254409C6B1864E62EFB2F093C764 /* ProxyFilter.swift */; }; - D99A23AEB19AF4CCF23A6111247A0D4F /* GenericLevelStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69227A1E733C06F58F4331532535F679 /* GenericLevelStatus.swift */; }; - D9D38D7C0E067A9D9BE4BF77A573211D /* GenericDeltaSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12F1000703E09E8D1FF4B475F9FADD0C /* GenericDeltaSet.swift */; }; - DA46DCFA9A3CDBFB7B333F2C13012365 /* UnknownMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BDF51397267B17036156922C150C1CC /* UnknownMessage.swift */; }; - DAE564FBDAF9E0CC073E2AA09759141F /* LightCTLStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CF4B3EED2A9B049C85ACB7A4EBEDFC4 /* LightCTLStatus.swift */; }; - DB5E7767DFB867156AB2D72AB5EB9B42 /* LightLightnessDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8415C6D72A1E8E63C8031230B27DF226 /* LightLightnessDefaultSetUnacknowledged.swift */; }; - DC48E5943F35E010B1B9050387665274 /* VendorMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEAE4A7E9B9747845296457E61A1A504 /* VendorMessage.swift */; }; - E0957CC9E184B88F252732EE73447B1E /* GenericLevelSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BE77A4A734C944D3B6F3BB4266E153F /* GenericLevelSet.swift */; }; - E0F21AD9A183AB2BA87A9E59308D8F0E /* ConfigAppKeyDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA625D3C261369DA6CF17A01A60B2711 /* ConfigAppKeyDelete.swift */; }; - E2A6439825B37B58F35A6D1E04154D5A /* Data+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A5DAE36EF5F0D97920D3AB7F5A79D72 /* Data+Hex.swift */; }; - E31251C7FB5532CCE757ECE441B9390A /* Data+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC8BFD4CEB3E05ED9D6D91FF907270E /* Data+Keys.swift */; }; - E393F2CA9ADC180B237C0387C7BEE41B /* IvIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = A587ADA1263AD5C8A4F74E9D01FC8FCC /* IvIndex.swift */; }; - E4AACEA948E9B5BF75B562478F9678F7 /* LightHSLHueSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60F03887E49A2E1BC786255F40013721 /* LightHSLHueSetUnacknowledged.swift */; }; - E5373CD3004CF23E6DE63A3ED6E993B3 /* ConfigFriendGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDA8AD193F58606C6456AE7C8D8AEACC /* ConfigFriendGet.swift */; }; - E5E5FE193BA26A7B2C67C360D2765A06 /* GenericBatteryGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3878D06CDEC359A85D65E80FA3A8DA5 /* GenericBatteryGet.swift */; }; - E61E84ABEA82AB923D1B62799061520A /* KeyRefreshPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E80C142A0FE78DC6F1289615E3022D9 /* KeyRefreshPhase.swift */; }; - E831F3466246222480083DB13C95E48D /* GattBearerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65C5220EEBD9334D6BC81D0F888EEFE6 /* GattBearerError.swift */; }; - E8FB593B27D0FE52F89C5581AF738D16 /* Element+Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20F225458DB441DA5ECCC3E27276E851 /* Element+Models.swift */; }; - E94CA393EE6F959FB74AF304CB4989F5 /* LightHSLDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9615C5BBC4301AB727216D096AE9C58 /* LightHSLDefaultSet.swift */; }; - E9F430D3B2663A0DD73F003E1B37E7FB /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B5FF462B80E3D42E2AC0D243D1E86B5 /* Models.swift */; }; - EA283D6C00BDF710CC8155810CE4DFDC /* GenericPowerLevelSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D0E13C6F233D3517B6C68DFB4E89D1E /* GenericPowerLevelSet.swift */; }; - EB2F2AE7236A097F63AB702A9C79781E /* LightHSLSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33862777B67E6F778FA101D66A54179A /* LightHSLSet.swift */; }; - EB5A46D40B829A794E0E1B914604C859 /* GenericDefaultTransitionTimeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D52BE616007CF5E0D57EF9FDEFED698 /* GenericDefaultTransitionTimeSetUnacknowledged.swift */; }; - EC008CEE3529C2D8BA2B4D3FCB3344F2 /* ProvisioningPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47E13B1DF62FB81606700B39FB9F7493 /* ProvisioningPdu.swift */; }; - ECF40BEB3B0DE56405CB47EAEFE3CA85 /* MeshState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE9C9A8915BD6881F9341E0AC27CE77 /* MeshState.swift */; }; - EEF069C3A5BC3E642059CE4CA2CA128E /* ConfigCompositionDataStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C5AE79B048F76019959132156348F31 /* ConfigCompositionDataStatus.swift */; }; - EF29B06C6D03253B4B55B0337CFD2636 /* Node+Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = E244993E5A0E30B5A48FFEA7E13F47EC /* Node+Address.swift */; }; - EFC776CA953A43CA32A7BD31C3770EBF /* AccessPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = E466F5200102C350F89EBF923FD9F922 /* AccessPdu.swift */; }; - F0FCD6F1524B73C82B2FD50E41EF63B9 /* ProxyConfigurationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F753B2F1B496E312CC509485D9B73A8 /* ProxyConfigurationMessage.swift */; }; - F21AE7DC601F4C2040FE3CCCC1CD5340 /* ConfigBeaconGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618F6FAB91F56A0D8A7DD8CCBF5760FE /* ConfigBeaconGet.swift */; }; - F482B99A329915697B168BA901ADAC27 /* SceneStoreUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = F805FE9A45ABDC9FECC32438D95E79D3 /* SceneStoreUnacknowledged.swift */; }; - F6B70A2EAC667EFA54B8E9BEB0B76DED /* LightHSLGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D293E520C8600EAEE5D7CA4BCCB73D25 /* LightHSLGet.swift */; }; - F83804F68DE84A5C001124FCF7DFB830 /* LightLightnessSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA06684FE347E31397DB2C0FFEDB631 /* LightLightnessSetUnacknowledged.swift */; }; - F8E2FD3C7EE1C4185B23E3564032F1D4 /* UpperTransportPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = F650AAF03B082E50EC94C5561AC5EC25 /* UpperTransportPdu.swift */; }; - FB933DA515B9FA315B7695C5B339C8F0 /* Element+Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36917E6A31C54EAF6E3F0D5CCAC86693 /* Element+Address.swift */; }; - FDA39B3DC0E266641E8592F2A4A57F97 /* SegmentedMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E384C75BA2A25950917EF25F7E59C53E /* SegmentedMessage.swift */; }; - FF6DEDA2A5DE238EADB4FF40816731DA /* ConfigDefaultTtlSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D46E885849E926E51E34E33D1A5E92 /* ConfigDefaultTtlSet.swift */; }; + 0028523057A27275D2584D46AD533E4C /* GenericDefaultTransitionTimeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B0B0178F7F9FFA0E6683038930CDE90 /* GenericDefaultTransitionTimeStatus.swift */; }; + 00622AF0D4C358B26AB9C270E5392044 /* NetworkPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 177B6E59C57202285350545AB7707112 /* NetworkPdu.swift */; }; + 030967B3624A3A2523B2B0A3E98A5793 /* ConfigNodeResetStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDCA89FC5406C6D97E0013C95C4AF81D /* ConfigNodeResetStatus.swift */; }; + 03A354ED08C319293AD6B58ED4BC8FCD /* ConfigNetKeyAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65853B7D96D4EFB317A33C89B8947319 /* ConfigNetKeyAdd.swift */; }; + 0443C13D9F7D1E85486746C018FCFCC4 /* KeyedDecodingContainer+Legacy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3900445EB0492670900280E64DB5728E /* KeyedDecodingContainer+Legacy.swift */; }; + 04FE31CB4360CCD1EF672ABF33391B4D /* UpperTransportPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 176DE988E7850F4E3B301E1A41A2262E /* UpperTransportPdu.swift */; }; + 05BB44AAACD3C03AA6F87ABC0B461529 /* ConfigBeaconGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86532DAF370C0B1071BEFB53940211A8 /* ConfigBeaconGet.swift */; }; + 0621F911FB8460C17973AA09D2E77A31 /* LightCTLTemperatureRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A8D5DDBF3290D795F9A22E75EC62747 /* LightCTLTemperatureRangeSetUnacknowledged.swift */; }; + 06A03D6D897ECAF4AD48B29C275A3AE2 /* Pods-nRFMeshProvision_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDAEBF0242FD76DFDE2DBF48C7BAF58 /* Pods-nRFMeshProvision_Example-dummy.m */; }; + 06EAF71972D6BB182B584D4148F6532C /* Element.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86AEFB6ACB89A47827F740E4A8C74C40 /* Element.swift */; }; + 070DF672B552A63A6ABCAF438A6639B3 /* GenericLevelGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8A04A8DFDD6D967828E76FE2F334930 /* GenericLevelGet.swift */; }; + 07725ACC2666CAB2A8C20C6A5321533A /* HeartbeatPublication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CE5C57A06807CA13EDA22A1FC84C3D7 /* HeartbeatPublication.swift */; }; + 07D69152E708E619E61C71C8C6FCD1F4 /* LightHSLDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 359A4A9BB62489E9CA1E9E2F8916B3CB /* LightHSLDefaultSet.swift */; }; + 0A3240A5D8A459EE5F47479415E1D136 /* LightCTLTemperatureRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7BF3689CACBA6DE1EA34A02C7C39EE7 /* LightCTLTemperatureRangeStatus.swift */; }; + 0B684D7E043AD045D9D8F45C143D4AB4 /* SceneRegisterStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FB77561491E27CC5A3BFA89982FD8C /* SceneRegisterStatus.swift */; }; + 0B7CC6C396433ACC8E4F3BC42702EED6 /* Model+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C0AADA999641CA0EC874CAE5B354287 /* Model+Keys.swift */; }; + 0C88946438CAE06A95376982364D4452 /* UnknownMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 700BC3D4DABBFAB1F96E4319ACA1AD2B /* UnknownMessage.swift */; }; + 0D10D6A470AE5904A9AA9C7F79C55EC7 /* SegmentedMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0086C4EAB2EAB1D9FD6493558315BE69 /* SegmentedMessage.swift */; }; + 0DC09C8D425F1DEA059D82BDF2B575CD /* ConfigAppKeyStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9208006DB642A88419614FBEBEBEAE5 /* ConfigAppKeyStatus.swift */; }; + 0E96E80523B30EDB6FCCEF70A3E3AB17 /* GenericOnOffSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5474829A698C5D44E6B126417C2BBA4 /* GenericOnOffSetUnacknowledged.swift */; }; + 0EC49595E2C047F7B081B03E2A5E6D89 /* NetworkLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EB2873BDECB382E2463189DBE25C044 /* NetworkLayer.swift */; }; + 0F3A90C75896A5DA8FC1C611901F233C /* ConfigNetKeyUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EB7525D191990221D4900FE9247705F /* ConfigNetKeyUpdate.swift */; }; + 101FAE34EFEBC2451D37EA8C2814FC36 /* MeshNetwork+Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67304003ED1F9CD50AFFF4C8D22F0C9B /* MeshNetwork+Address.swift */; }; + 1030FADE75BA69C9D3373F412C2D9C63 /* LightHSLHueSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CCE9EB50578062BD5293E84C485596 /* LightHSLHueSet.swift */; }; + 1043C1298FC8708744037226B1C2F4D9 /* LightCTLTemperatureSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21DB446008C555FD340559F24D649460 /* LightCTLTemperatureSetUnacknowledged.swift */; }; + 104EA337C7D09997730A0A6B21C88081 /* MeshData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A742788447ABBB1A41B9F06AD2D6C0E3 /* MeshData.swift */; }; + 108EE558700563A55CFF098E587BBBEE /* GenericPowerRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284E1DDA13DE1F7B1ED4995C6F690DBF /* GenericPowerRangeGet.swift */; }; + 111C3AEBE1280802326C6DB6AA6F930E /* LowerTransportError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7713B8351753240FB917FB85520188 /* LowerTransportError.swift */; }; + 112DFFB1198183F8F2E0EAA9C3333D64 /* ConfigBeaconSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 702AB8141977DB58656AC01A9CD3E65C /* ConfigBeaconSet.swift */; }; + 11681CF7A1366C123D27696755774BB6 /* LightHSLSaturationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CFB92639A7D3CF3ACD3CE98D3445844 /* LightHSLSaturationStatus.swift */; }; + 11AC1B5B8EBA3D0F06CE6E8DF83746BF /* MeshNetworkDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 390DCA691B2467DEAE49C19161FAB0D0 /* MeshNetworkDelegate.swift */; }; + 1288EAAB772373473DB0CE33DF6B1473 /* GenericPowerDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC99DAB89C503E9B0C1EC60550FE6AE /* GenericPowerDefaultStatus.swift */; }; + 129CBC04CADFFFD71D883CDDA9CB7610 /* ConfigModelSubscriptionOverwrite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CA67B85919ED9318CE4BC27957BA465 /* ConfigModelSubscriptionOverwrite.swift */; }; + 12A1D00A604F587A9AC677683EB696A2 /* SceneDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C45743916C8265483EEEF05FDE15F8 /* SceneDelete.swift */; }; + 133EF61150863A3B4894F20327684694 /* SceneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37D4CEA08FC1B90563EB7B7844B7C89E /* SceneNumber.swift */; }; + 141F40DB61BAC5742A1EECDCBA596A5A /* LightCTLDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBBA859DCA57C257699D2D1D45FE61F /* LightCTLDefaultSetUnacknowledged.swift */; }; + 14E020A798FAEF34C5379CDFFD1B5E67 /* Node+Provisioner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29615FF44CE98DB3EC91D66BCD88DBA4 /* Node+Provisioner.swift */; }; + 152428208CA73D49241EBC465C4F668D /* ConfigModelSubscriptionDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717EF5F786251EFFBB0BF0B895C36B76 /* ConfigModelSubscriptionDelete.swift */; }; + 1590CDF87C44480553B7877B8066ABE9 /* Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = 244D2F506BD37CA3E1A52FDCAF3D9669 /* Address.swift */; }; + 15F167C275EF19194DDBE6F780CA708D /* LightHSLDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8893741324EC959B62786D282B759A78 /* LightHSLDefaultStatus.swift */; }; + 17336F892B68C4DA7C6428C84704B7D8 /* ExclusionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = C020C84D5F8DF89F12AA24FE7B481E88 /* ExclusionList.swift */; }; + 17E2791E491318A083A6069E2980D33C /* LightLightnessRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 627B469D265D2DB083EC47FDD12EF87B /* LightLightnessRangeStatus.swift */; }; + 193A45ED77BE6118032DD4581C67BF45 /* SceneRecall.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BC6897145BC96AD4D95DEBDC833AFC6 /* SceneRecall.swift */; }; + 19E03FA058B081AD2A2414DCD7504AAD /* BearerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 389F7787D2ACF58D953436BB322F65CB /* BearerError.swift */; }; + 1A4DA3244CA9B6D88AD6D19DBBBEAE61 /* ConfigFriendStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 370C4DC979638CF7EDCDE590DB219EF1 /* ConfigFriendStatus.swift */; }; + 1A5BE22C64D2E72278E6D9B282983467 /* LightLightnessDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF2101D850D957D91FE76046FC7A23EA /* LightLightnessDefaultSetUnacknowledged.swift */; }; + 1ABD861C29C05F967128E55B974BCBF0 /* nRFMeshProvision-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FEF0582C7933A1A1EC5321166035E8F /* nRFMeshProvision-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BC481C1069F0435EA8C1E44CBB74385 /* Security.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59BECF6C906EF4134A0FF23A6530BC7F /* Security.swift */; }; + 1C57451AD06D0CCDE9A2B7537B82D260 /* RangeObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D96BE6505E8D1491A3AE2A15DEC7820 /* RangeObject.swift */; }; + 1C622E6B07437C897A8BC890965D72EF /* ConfigModelAppStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83648F3CBC31C87BC56E9E01867E9857 /* ConfigModelAppStatus.swift */; }; + 1E0475F8BFFB5185B12A2F34DC137D55 /* MeshLoggerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63F04204BC27CBF295635C3BA1837B6B /* MeshLoggerDelegate.swift */; }; + 1E431C7F9164D60C1EFBE15B3C5FC514 /* PublicKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4726528578F47DF5DDF20D237F30890 /* PublicKey.swift */; }; + 1F6E54F69F1083A35605D9B6B6794A5A /* MeshNetwork+Nodes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0614ABA62D747D65C04DA080C9FEE309 /* MeshNetwork+Nodes.swift */; }; + 1F8863D27A08C6758B85E9B07247D0FC /* SegmentAcknowledgmentMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F25ABC8C175D73C798CA470B26ECB0C /* SegmentAcknowledgmentMessage.swift */; }; + 1FCCB0854B3FCD64BC87C944C5EA7177 /* GenericOnPowerUpGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FD78B3F8DFAB955F17ABBD649BB473E /* GenericOnPowerUpGet.swift */; }; + 201F18A948B15F1D92F5A671B8D67F54 /* SceneRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430E66E8094273A9A38C84A2ED79DC0A /* SceneRange.swift */; }; + 216F8588463D91C902CB568620AF2B4E /* UserDefaults+SeqAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BBEECD02EDF3BF4C360018F0BC1D4C8 /* UserDefaults+SeqAuth.swift */; }; + 22BF566363DAFC226B8311266647CC4D /* ConfigCompositionDataStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F046F861FB9CD57CDCD951A9F840F54 /* ConfigCompositionDataStatus.swift */; }; + 23B89A73EE357195A68EC6BF0B397B18 /* Group+MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = A63522AA7576CCEDB831D6843DBA8521 /* Group+MeshNetwork.swift */; }; + 240CB0EA050EA098C9BB3C1E5C8F1C4E /* LightHSLRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BAD858A3AFCAA82ED096D8B4C6CB45 /* LightHSLRangeGet.swift */; }; + 251CDA664AB8D6F9D600C615066D41D2 /* StepResolution.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84350BA16E6D1DCF096DAAD2B45B0162 /* StepResolution.swift */; }; + 2775D44CD6658FF1EC4B42C0F1FC010D /* LightHSLDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1CE29D4B70BFC4F5293E44D1C192510 /* LightHSLDefaultSetUnacknowledged.swift */; }; + 27C8CE9F59463B85BF699FE2B98D3015 /* LightLightnessDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A528476CD64288120D1D3570EBD901D /* LightLightnessDefaultSet.swift */; }; + 2A6939721155C346CDBD5C209D3648CE /* ConfigModelSubscriptionAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = 748680464209070FF8ACE88E07E5B3BF /* ConfigModelSubscriptionAdd.swift */; }; + 2AA05B9FA67DD4CE4C036C920CDBD10A /* LightLightnessDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCDA10809C2F06861AC05402A13D8503 /* LightLightnessDefaultStatus.swift */; }; + 2B6EF3CC67EC3A8A6017A2A10C1A44C3 /* MeshMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5951CE56379913A7A373A2040977D20 /* MeshMessage.swift */; }; + 2C8F98943F6090892154EB11D4A18CE3 /* ConfigKeyRefreshPhaseSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 257AA84A91BFCC5095021C5A1AD2F872 /* ConfigKeyRefreshPhaseSet.swift */; }; + 2CAF2CF6C049232F15A9487BC75B737F /* ConfigLowPowerNodePollTimeoutGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646C0C57E8296162EE0C512355696EA3 /* ConfigLowPowerNodePollTimeoutGet.swift */; }; + 2D48907FD6F61EBB56469CB0462B6A46 /* ConfigAppKeyGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688EB4111B004AEA4C5F935EB415F850 /* ConfigAppKeyGet.swift */; }; + 2DACC67EED59B29FDC03DA10DC0FEA11 /* LowerTransportPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF09E6A361270E7C2465438BE978E3F /* LowerTransportPdu.swift */; }; + 2DC2330BEE76989BD057536AE6A436B8 /* ProvisioningCapabilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57BFC07AD45778F5C2287ECF3955B0BD /* ProvisioningCapabilities.swift */; }; + 2E01FBF9A10892AC259835628907906A /* ConfigAppKeyDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA86313241B1164B0C0DE70D5DD3AFE /* ConfigAppKeyDelete.swift */; }; + 2E5B3B326309204725900995E5261BB1 /* ProvisioningData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC59CD173C690ADE3B9C9A324DEE74F3 /* ProvisioningData.swift */; }; + 319D9BE0F1F7608D225703707DADD568 /* ProxyConfigurationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89815C7A1C1C1A4C8114F685903178FB /* ProxyConfigurationMessage.swift */; }; + 32C51C0148C5D67C02144DCF5B859AD2 /* ConfigModelPublicationSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07EF75FEB86696ADDF95F0CDB9E5C996 /* ConfigModelPublicationSet.swift */; }; + 33308880A9A3A400BB1C5BCBD6665D76 /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEF8B3F660BB9769949A322EC0C457A7 /* Models.swift */; }; + 3424CCDE360B68DB1059BF753720DCA9 /* MeshNetwork+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39FBFA8A1CA8990AFF7D95A4C6CB3E25 /* MeshNetwork+Keys.swift */; }; + 342B68954D1E6EB5A29A02E69FCB1C2E /* Node+Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A6F409EB75CF4A34C7156AE92F1D636 /* Node+Address.swift */; }; + 359F582695ECC5F61A3E8B93E844C6B5 /* MeshNetworkError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 022AE903AEDEFCE981A2AF2D666BBA57 /* MeshNetworkError.swift */; }; + 366B3ACD1463E4FC8E4CF3A614DC7B3C /* ConfigRelayStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6607D3481792C4281C36CC1641798C95 /* ConfigRelayStatus.swift */; }; + 36FAFF34204DE8EA7A10790ADDB1E61F /* LightLightnessSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18C6422216F1E3697A24148BBAC421D /* LightLightnessSetUnacknowledged.swift */; }; + 370319C40632F17F82EBA4829BF06784 /* LightCTLSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC9E218D9B07768716C55663353D320E /* LightCTLSet.swift */; }; + 39AF4882FF7ED8AB480D1F0C94CEF789 /* SceneClientHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C6BE5F3C587F2FCDD5F1A801F253DD0 /* SceneClientHandler.swift */; }; + 3AB0C73D580E798E1A9B090479C1F62E /* Data+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8851873E33ADEF60C900C1652B002C0E /* Data+Keys.swift */; }; + 3D024067433912D08FEDDDEDFADA6DCA /* ConfigNetKeyGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29DFCB057C5BAF59A240814335789E74 /* ConfigNetKeyGet.swift */; }; + 3EA45BC82472D76599AEEDF17772C108 /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0114E9587826C418D92C09F2B13BB810 /* Data.swift */; }; + 3EB3B0B38D68BF29932A74A39FC0F7EF /* Pods-nRFMeshProvision_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CEAC6C669DF2BB23730633F28084C3E0 /* Pods-nRFMeshProvision_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FC7E69627A40D8C9A40826B42A2FA8C /* ConfigHeartbeatPublicationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = A859841DB4AB11DB7B3543A149F69737 /* ConfigHeartbeatPublicationStatus.swift */; }; + 400527659460EFDD5D9DFA7F1AA19969 /* LightHSLSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEEBBC28EA4BE3DC2ED9730D2BB925FD /* LightHSLSet.swift */; }; + 406AF72C35D521A7A35EDEF8998A3776 /* GenericPowerLevelGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1E6BE40F109716DAF8B44570AAC569 /* GenericPowerLevelGet.swift */; }; + 40BD4134D67801BC7534F8BA6EDC54B6 /* BearerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ED469B21495B04B7C32A5A655EAD439 /* BearerDelegate.swift */; }; + 40E5281F20C68C2C11FC91F675DB9DC7 /* LightCTLDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A8304ED6C132EF0EE3F6A96BE7CAFC /* LightCTLDefaultSet.swift */; }; + 4161A61F0A1C69F2E98B3FC85D74F2C3 /* Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64CF22409E6C51CC320C000914BF8FF6 /* Group.swift */; }; + 41A44200C64A9AF2E9A8E2E1E4DE62BE /* GenericDefaultTransitionTimeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF5BA45B207A40265FB04841C04AD6B /* GenericDefaultTransitionTimeSetUnacknowledged.swift */; }; + 42C8FA284151C6F4AE957DEFEC970593 /* Model+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC5EB656030DEB92E49C3255DE0A3105 /* Model+Name.swift */; }; + 42CBD357C58EB38C1A9D36A1805ECE59 /* SceneRecallUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE2EE26B7267441D38DF5E9DD785BC80 /* SceneRecallUnacknowledged.swift */; }; + 42D5072AC9B1FF743E5ADA54494FD3CD /* ConfigMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF056508210287CF307DF2B23DE499E /* ConfigMessage.swift */; }; + 43C8E43DB5FF987351ADAFBAE7883E38 /* FilterStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6039A842FCD1D5F1FD0A03BF1714B614 /* FilterStatus.swift */; }; + 44132C24123A4D88C9E65BD315F43395 /* ConfigAppKeyAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088B78981965335FC658081F89775614 /* ConfigAppKeyAdd.swift */; }; + 444DEDBC803D706DEA1BABEB873C445B /* GenericLevelSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDE8A5B21C1C59A51A6E40F001F1AF90 /* GenericLevelSet.swift */; }; + 44AD0E1F589618A084E08DD1EC6C2A51 /* ConfigKeyRefreshPhaseGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9BCDDCFF6EC8409E6433BF2B1D9331B /* ConfigKeyRefreshPhaseGet.swift */; }; + 44C3E41F9B7DF9639E0EAB4CCB18F3CB /* LightLightnessStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 136042984F60F4EE89500C36041309AC /* LightLightnessStatus.swift */; }; + 45AB146A637BC8C1C30A100E5C57B877 /* LightLightnessRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56357DB1DB2398979F6C74CCD4D46A5 /* LightLightnessRangeSetUnacknowledged.swift */; }; + 47570B6FDA9544CA4DF4F6141D5929C4 /* ConfigVendorModelSubscriptionGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA6F0E696D509E1E5D0B399852E989 /* ConfigVendorModelSubscriptionGet.swift */; }; + 47D7769A5819474D4B9092EA459C5292 /* ConfigRelaySet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 635EEE83E4585FE1C9B74161BFEC45E7 /* ConfigRelaySet.swift */; }; + 47EB5E3A5510C9C8328CC9BB2FDEFC72 /* Publish.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E6B1F4760DB963DFF72B47134DBF69A /* Publish.swift */; }; + 4915B67B3E1548A37D2D05DD30421D70 /* GattBearerError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23C39210A796564FC54301F26CC022D3 /* GattBearerError.swift */; }; + 493512AE7C915D65698D91FBB38E895E /* CompositionElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E6988FF9933344F6D9783EBEF82E166 /* CompositionElement.swift */; }; + 4A87CF9646C607CC6081C148FB50F91D /* SceneStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B55ED0BAFD5554E3DC353D85F2A4F61 /* SceneStatus.swift */; }; + 4A9FB3ED153F515167CC358CFD193747 /* GenericPowerRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD1CDFB2A30CA63D7579659413584DF1 /* GenericPowerRangeSet.swift */; }; + 4BA00E6E5DCF9188024861C08234E46C /* MessageHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D997141E7D47601A5C290C0BCBDAFA24 /* MessageHandle.swift */; }; + 4BFA679961B23A257708F2CF855A8193 /* SegmentedControlMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8D865E50973C19DF351D7053D35814B /* SegmentedControlMessage.swift */; }; + 4C2824D5BA702B5C0A31DD408B433DA7 /* Element+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B4B5C6095D94B29E3D26B82CB9F0DC /* Element+Keys.swift */; }; + 4E91F2791FDD8C1F352C285E0E15D482 /* ApplicationKey+MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96D77A389E0E469A326F4DB389CE2345 /* ApplicationKey+MeshNetwork.swift */; }; + 4EED6A2E2747A2E94CF40A3F733CCB29 /* ConfigVendorModelSubscriptionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4BE0B1A335DC2D7C78C1D8A8E43E99B /* ConfigVendorModelSubscriptionList.swift */; }; + 507D04B88FA0589580A713A5063DE839 /* Bearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A62933CDC8DEE3EC06AC374D4B83EEFC /* Bearer.swift */; }; + 5145DD9A8B814EA6ECB7B8ADA0015D12 /* GenericPowerLevelSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 768E2F5ACE03F27FDE7C12532DA62447 /* GenericPowerLevelSet.swift */; }; + 518A284ED129F14EA44EFA2BCCB03FC6 /* GattBearerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081942080DD78D8AF4492EE5A4BCD305 /* GattBearerDelegate.swift */; }; + 51EEE8E88F0B5D6CF3BD3597EBB08ABC /* Beacon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78796DAA8875AD3C1716AF6623B6DA70 /* Beacon.swift */; }; + 541836B71185C1848B7349F490FC0DEB /* AccessPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EE159560F671302D998BD653389CA2B /* AccessPdu.swift */; }; + 55E2F7042D4C909B0EA7F0DCA87DCD05 /* ConfigNetKeyStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C83C9B870B3054DE4B4ED3DAC009F75 /* ConfigNetKeyStatus.swift */; }; + 562247108185ACE54CDE40BCD8385BE8 /* BackgroundTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084FC342130C4348A2C22596D410A001 /* BackgroundTimer.swift */; }; + 568AD94AA35FB1464D0647709E750D97 /* LightHSLHueStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044A70D158D3F380E9C9D1BFA558B23D /* LightHSLHueStatus.swift */; }; + 5859E00B973B35800F1268541171BC02 /* ConfigHeartbeatPublicationGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E824E85B590F0731B75235CB48AD98A /* ConfigHeartbeatPublicationGet.swift */; }; + 58642573D968444512C6CB88C31D98BD /* BeaconPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31A6E2A535B4FC1E615503C9E1510293 /* BeaconPdu.swift */; }; + 58A9FD9D5437F2F1FD64BC18D85EAC23 /* SceneDeleteUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = A13300957A2ABB8DE686A6CAAE5B3814 /* SceneDeleteUnacknowledged.swift */; }; + 59465CC52639024038D843AB126172A0 /* Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEE8391CDEC7B3BBE2E716F3A891B023 /* Ranges.swift */; }; + 59D4DBC6676B9B57D022BA892C2C65F5 /* BaseGattProxyBearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45AB77CC1B4A7641A6C3E1CCBF45964E /* BaseGattProxyBearer.swift */; }; + 5A30CD1E69AECC5A3BE0443F628B5E58 /* CompanyIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EF01D69CF0FC06A5AAFF454AADB0FA4 /* CompanyIdentifier.swift */; }; + 5C5AB79C12311E7A1925BB491835365B /* LightHSLStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC3BB33CBFFD90C5EFE24A31C0B9D13E /* LightHSLStatus.swift */; }; + 5D1375D33DEA9882C024F6037A0E86DC /* KeyRefreshPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB0CC68D6B319CE9846AA9C2DCDAEB8 /* KeyRefreshPhase.swift */; }; + 5D1941D34968B21A68F0848A12777525 /* AccessLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CD665A3137FFC6F83C5791A15DFA7A2 /* AccessLayer.swift */; }; + 601DCBEEE7F501058D1D632CA237AE26 /* GenericLevelSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = B58C430B47AC2826C69508926607FF65 /* GenericLevelSetUnacknowledged.swift */; }; + 603472AB248F474CB3C5FC3BB9C68007 /* ConfigModelSubscriptionVirtualAddressOverwrite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04259882C54E2564C9BAFDBCC509318F /* ConfigModelSubscriptionVirtualAddressOverwrite.swift */; }; + 606F0FEA2734FB3E2268AA9003DA1EA0 /* GenericOnOffGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EC106BF29EEA4F49EF57EC5E310C97B /* GenericOnOffGet.swift */; }; + 615BD47B245685F740D2F8674789317C /* KeySet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D4A80331A2F71239B4A8590F5FA21 /* KeySet.swift */; }; + 632FB323DAFFA9151233A84F87AABC19 /* Provisioner+Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BB14115260B8103F56E37CF09317EB /* Provisioner+Ranges.swift */; }; + 637E79596D67903BA25B8CC0314EC851 /* MeshConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = E87793E250CBB5C19FF36E9DFCEEA939 /* MeshConstants.swift */; }; + 638A9BD37401EA9E8809B50C9261BCC7 /* ConfigNetworkTransmitGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4885352355ABF803DEDE1B33C3B7C992 /* ConfigNetworkTransmitGet.swift */; }; + 675EF2A7057FFA40DCDE2604A5E93C83 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; + 67C2C931F612580E0561E3823BCD4E27 /* GenericBatteryStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDAF0A018CC882A972EAF20FDF71259B /* GenericBatteryStatus.swift */; }; + 6885D5313CDBD50CAEF027116B96A389 /* LightLightnessLinearSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC6BEC7A7369312E0E3EF7BE3E268254 /* LightLightnessLinearSet.swift */; }; + 68B487BD16393943DBC0F010D657583A /* LightHSLTargetStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = E274D961F6E45E659CE13EC3216B1D1B /* LightHSLTargetStatus.swift */; }; + 6AB23E7FCB30C6B0875A6B1CADE49699 /* GenericOnPowerUpStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = E719A748E0BD6CC54E70695DC274E116 /* GenericOnPowerUpStatus.swift */; }; + 6BEE181DA80061BBF39DABC7FC5ED88B /* UnprovisionedDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7AEA7035CF7252E74909BD2578FE6D1 /* UnprovisionedDevice.swift */; }; + 6D2F0D99DF4C5DAF039AB4FFFBD8C867 /* GenericDefaultTransitionTimeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 191A9E7A4F700571DBD90AB571A69B67 /* GenericDefaultTransitionTimeSet.swift */; }; + 6EF9754F183CB007F9235094FCBDB12D /* UpperTransportLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 616C1D2483DBD4B539C2501049B88E6E /* UpperTransportLayer.swift */; }; + 6F7083451475114F35A95FBF226ED23C /* ConfigNetworkTransmitSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 190150023B9DB820890E386CF2E6D290 /* ConfigNetworkTransmitSet.swift */; }; + 6FC6FB471E614A7F0E7E7499BCA6D50E /* GattBearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C734431A19A4BCD7259AA120CD9EB3 /* GattBearer.swift */; }; + 6FDF478F0B9F8F5A3EB5D9396FA4EAFB /* GenericDefaultTransitionTimeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 633BF3763BC4E3B8D3C37CC1A55BE59E /* GenericDefaultTransitionTimeGet.swift */; }; + 6FE5D7178D6B134063206AB4C3486609 /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5590A91F2AB8E80A34443A3DE54AF329 /* NetworkManager.swift */; }; + 7077FA9B9A5204E7222649642DD7A7D1 /* MeshNetwork+Scenes.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB0924EC0C6D7D36B3D27285EB959D6F /* MeshNetwork+Scenes.swift */; }; + 70DF0F837C0AA8879D11C94178D5D50C /* ProvisioningPdu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F831808C2548697125657A813E8F3F7 /* ProvisioningPdu.swift */; }; + 724A97029DD135A2DC324653931C9906 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; + 7372D63E5FA426B66095BC8DDCC45882 /* ConfigSIGModelSubscriptionGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B7D7E2F957186176D78E51927E76A2F /* ConfigSIGModelSubscriptionGet.swift */; }; + 745D2F45C5C7F9337EEC4077E4F3E290 /* LightCTLSetUnackowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = B801E361EF9C76ED27F0D151765C43C7 /* LightCTLSetUnackowledged.swift */; }; + 746DB4DB657749B17828CF8B73F2901B /* LightHSLRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786B5EFAE94186E04E78AAD6E0C4B4EC /* LightHSLRangeSet.swift */; }; + 74E6274ADE1B30D708D839DF31FF0DA7 /* Element+Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = F062E389D722C07A410D7EB275A4DB29 /* Element+Address.swift */; }; + 75A851CCE885673977427E3088A44751 /* ConfigHeartbeatSubscriptionSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CDF70CD80160DE8FEADCF25B28F849A /* ConfigHeartbeatSubscriptionSet.swift */; }; + 770029D9F53552A8FE86F7CF82D8BD07 /* LightLightnessLinearGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4600B8D510228245582FA97C3FDA8C1A /* LightLightnessLinearGet.swift */; }; + 7705932F20B05508CDAAB357E6B47CB3 /* LightHSLSaturationSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07DDB32795BE6AC1402F2EA6C20116CD /* LightHSLSaturationSet.swift */; }; + 77846D52165A0ABF92C4F07EF31A046A /* Element+Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 863113D0AE0433D94DC43C82C14FBD96 /* Element+Models.swift */; }; + 7B51087A27EC290C718CF5023769038F /* LightCTLTemperatureRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C11A6FC5F3C7F8A250D757953C868036 /* LightCTLTemperatureRangeGet.swift */; }; + 7B5A4640D2E93CD0C0F2E071D3010552 /* LightCTLDefaultStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07F43471636E09D3F3BC231EDA577E48 /* LightCTLDefaultStatus.swift */; }; + 7BA59F5704B78950957BC2C938B882B3 /* ConfigGATTProxyGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 119F4539DA3ED8DF7F4760EE8756A7FE /* ConfigGATTProxyGet.swift */; }; + 7DEE40B9EE2A7E600FFEDF55123A5353 /* ConfigDefaultTtlSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2CB9EF22098378AD53FC365E116F70 /* ConfigDefaultTtlSet.swift */; }; + 7E5DFA12FC6DD38A97373B727823A062 /* MeshAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A2B14BE74901244F02B1EA9AE7AC2AD /* MeshAddress.swift */; }; + 7E73AA18B529449FF6B905AF667D68F5 /* NetworkKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB206B3FA4A91A0CC10DC97E0C801C73 /* NetworkKey.swift */; }; + 8069A9903B2344F200A9A9068E516920 /* GenericPowerDefaultSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0B0A43CBE8CFA9306868214DF651FC /* GenericPowerDefaultSetUnacknowledged.swift */; }; + 8079FB868CC84A262CF9717B237CC488 /* ConfigFriendGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F2921B9B52FFE769BC94EDF3A5CAEE6 /* ConfigFriendGet.swift */; }; + 810D09C2A04BFFC1018467FD9D458926 /* LightLightnessDefaultGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED93C5490BE270D91CF24847CEC5D105 /* LightLightnessDefaultGet.swift */; }; + 810D856B4CB7789BAEC0A544955FF9A0 /* Int+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5AB6D8291E6E63CF9E0996DC1871DC8 /* Int+Hex.swift */; }; + 8138F1434B8C0D0E8B5BFF37509FE0F5 /* ApplicationKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3F618692DE7365A5628BDAEE4754E39 /* ApplicationKey.swift */; }; + 83F400C08C9D670A6D504C3E1949582E /* ConfigGATTProxyStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F8C507C97C8606628374BCBD36DCFAF /* ConfigGATTProxyStatus.swift */; }; + 859F0663391FBECF99C545D0C5C12202 /* SceneStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E79AE1B74FE67EA0F5F5B9718CE41CF2 /* SceneStore.swift */; }; + 86E54EE904A8BE65867C367F59D7EB10 /* LightHSLRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021B20216E73C616F938550783CEE90E /* LightHSLRangeSetUnacknowledged.swift */; }; + 8731E79BDDCEE309403E979238FD396A /* GenericPowerRangeSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD9A993178D2BD55B7FA1695A2078D5A /* GenericPowerRangeSetUnacknowledged.swift */; }; + 87EF0EA6C70B66D2C8CD27C7BC501D7B /* ConfigSIGModelSubscriptionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A7F330DF3F19FF08DB2055F8B0CBB3D /* ConfigSIGModelSubscriptionList.swift */; }; + 8934EA9EC54CCD66F02E3B7EB998A044 /* GenericPowerLastStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C67B7C030BA825A4856A7E78D33D6A1 /* GenericPowerLastStatus.swift */; }; + 893F98EE563FB5864199B6552C5927CB /* LightCTLGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE174073358AA65452FC46AD1365D019 /* LightCTLGet.swift */; }; + 89DC60CACC49CE9D6C75B1B7D3553248 /* GenericOnOffStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F2DF6DF9F41A66EB89698E4A6C02ABA /* GenericOnOffStatus.swift */; }; + 8A0D98A5198BA2127BD0EA7AB12C3F90 /* ConfigModelSubscriptionVirtualAddressDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC4D47F435009AB25054FB84FC8C596 /* ConfigModelSubscriptionVirtualAddressDelete.swift */; }; + 8AE03823DDEA6E5D7E87A4C922C298E4 /* SegmentedAccessMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A1618FF967AF6F4B95826CAD36EBAC1 /* SegmentedAccessMessage.swift */; }; + 8AEE19AE7BCDC6D8712F3A8B4C91DA13 /* ProxyFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E59DC204BB60506D29298A0F1EB8AA0D /* ProxyFilter.swift */; }; + 8B1915E43B0A75B385149A1227BD43FA /* MeshStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5196C7F6E7C27B3BBF4A0533308E120 /* MeshStateManager.swift */; }; + 8C0890F2F0653FCED9C7001E82853BF0 /* SceneGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F058FC1D5604DB3C01B6F41059E1FB7 /* SceneGet.swift */; }; + 8C49E282AB68E917C4B5497761D1115B /* ConfigNetworkTransmitStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD2811CDA13C3E416CCE28786F15F7C9 /* ConfigNetworkTransmitStatus.swift */; }; + 8D5DA16846E07E191504B83C178F127B /* LightHSLDefaultGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32BE2F099E659862DFDA9F010FD76338 /* LightHSLDefaultGet.swift */; }; + 8E75440E6F1541F4DFCFA1F05824FDCE /* LightHSLHueGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D9ED46CECC39E47DE6C58FBA58FB959 /* LightHSLHueGet.swift */; }; + 8EEE5AE1AEDD7806BAA17E43FD59A953 /* LightHSLSaturationGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FC981837A5E3B921424F3A07E9116F /* LightHSLSaturationGet.swift */; }; + 8F6795AE1792BC0BE783554BEB9ED3D4 /* LightLightnessRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B56A5743DFDF7095EA5619D4D3139BE /* LightLightnessRangeSet.swift */; }; + 8F98D30CF5C9267FA6F2CAB8B974A10D /* AddressRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA02EAB04F52150DA37B147F5B81F6B0 /* AddressRange.swift */; }; + 90632218BE01EB26397119915902DF6B /* SceneRegisterGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE3E008B94B089FACB6AAEBED3B7688 /* SceneRegisterGet.swift */; }; + 90C7496DFE041ADE840807F99C5F8A5E /* MeshNodeEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E50E1D8743786CAB553B7AECD34037 /* MeshNodeEntry.swift */; }; + 90D2F3A2B702534A65B2AD3E93871646 /* ConfigModelSubscriptionDeleteAll.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7A927FC28850BA3116592BFC680EB7C /* ConfigModelSubscriptionDeleteAll.swift */; }; + 91854A7CD266F0F26681E1C424066027 /* MeshNetwork+Provisioner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 357159A8F09BB8520DC8DC85E59CF519 /* MeshNetwork+Provisioner.swift */; }; + 91B5FF05B5C82343E683B4D7F1A0662C /* ConfigAppKeyUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043BF794162864AEAFD9582939B9AF35 /* ConfigAppKeyUpdate.swift */; }; + 93C122190438CDDFA8B464F0FAFC2F41 /* ConfigDefaultTtlStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8E6AAEE1CFFF04FF7F210D5C7377F0 /* ConfigDefaultTtlStatus.swift */; }; + 94352D37CA3F4FD2C4965F43F5C53F86 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */; }; + 956389CF46325984FB9EECF5C4C148AA /* GenericOnOffSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA537B1DC16674937E923F22F09ED67 /* GenericOnOffSet.swift */; }; + 96DD649E45A40600C5A7A0AF7A901395 /* OpenSSLHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = C4D135C6D7B69488F92FD3A60DE234F8 /* OpenSSLHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 971BA286BFCBB27CB54E44691554F076 /* ConfigModelAppBind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FD255DE9CC2A718CDA1614369C2DE71 /* ConfigModelAppBind.swift */; }; + 97EC56D41BD24ECD8E3C03933079B7FF /* GenericOnPowerUpSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7803B6B4982AC81EFDC5FD3AFC243E8 /* GenericOnPowerUpSet.swift */; }; + 9930AC7372C13225D44D709D41158C57 /* ConfigHeartbeatSubscriptionGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6ECE47FC76D77F01276E57665C19E67 /* ConfigHeartbeatSubscriptionGet.swift */; }; + 9A2011440422555A7CC447A5A7F4C0B6 /* nRFMeshProvision-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 16FA40299AD6D5783F6D020303330E7A /* nRFMeshProvision-dummy.m */; }; + 9B6FD9A18420EFD6A48430595085BC83 /* TransitionTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3BC3E6859E89A8E1F506B9996B9AF88 /* TransitionTime.swift */; }; + 9E4AF6D954B0B2D8C990074B4B7B79F6 /* GenericDeltaSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9110CBE60926DAD974BA9DBE117B406D /* GenericDeltaSetUnacknowledged.swift */; }; + 9FC7A3237D8A0F8E74219BBA1F8C0F25 /* RemoveAddressesFromFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C0F068C2323BDD90265FE3916AF067 /* RemoveAddressesFromFilter.swift */; }; + A00D6DC71EED1AFD0E5A39C4B6DE71AF /* Data+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB79A07FC2C0F070D83720D365B9F1C3 /* Data+Hex.swift */; }; + A023EA64382BBEC28CF1E0F93879509C /* GenericOnPowerUpSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02253CE2B973F25075E7D0BA3AE3FB10 /* GenericOnPowerUpSetUnacknowledged.swift */; }; + A173AE08349D3FE07D9E89E83B057093 /* ConfigModelSubscriptionStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42212E4980B79CBF3B3FF92CB0E85766 /* ConfigModelSubscriptionStatus.swift */; }; + A2FB1C1CC2C33907E4E1BFE7ABB7E542 /* LightCTLStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 617DCFF3EA5F507667EE331823E9A4C5 /* LightCTLStatus.swift */; }; + A6EAD5A162C864712FE329EFA2392C98 /* ProvisioningState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E06300E22F76A537419F0D19EE14C9 /* ProvisioningState.swift */; }; + A81FE2D375CA786AD1CB9BB9E79A0006 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFE1AEED42610AB1208D72E52D3FF8EE /* Storage.swift */; }; + A91CA7AF71BFA034C21EC48F1FA35EC4 /* LightHSLHueSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = D857568D92F1FBEC08F9A5DF684B72CF /* LightHSLHueSetUnacknowledged.swift */; }; + A95D0D50B1B8A132B4AAAA1AB6B83C88 /* LightHSLSaturationSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17591E6D83B6F285B709C52824A11EB /* LightHSLSaturationSetUnacknowledged.swift */; }; + AAC998FF43C06E6ABDD152CA65504956 /* MeshNetwork+IvIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 069E4C69CD3D2AEB264D72140A4C84AA /* MeshNetwork+IvIndex.swift */; }; + AC217E949A62C060180192A06BAB58AC /* GenericPowerLevelSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EF807CC420EF58CCFB042B39FBFD435 /* GenericPowerLevelSetUnacknowledged.swift */; }; + ACB574BD666CF3071B59835022D8DE6E /* GenericBatteryGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EA95B9804BA6F660A4010B60E25D958 /* GenericBatteryGet.swift */; }; + ACE5CB30419988D908E40C8C7E959F6D /* Node+Elements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A28A87A172B55A851A908F66794F692 /* Node+Elements.swift */; }; + ADFC7829DA40F2EBB7B3991F0B3EA59C /* SetFilterType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B2B633AEC71C43C84B96DCE23D7021F /* SetFilterType.swift */; }; + AE5727206485157AD37475490A7D4F24 /* KeyIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE90E8A2965A705EB89DBB3C41B323A3 /* KeyIndex.swift */; }; + AE9EF44291E71347B6E358BACE22DFA0 /* NetworkKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B654D4666EF481AC689C355E0377F2D /* NetworkKeys.swift */; }; + AF09EBE980AC7BC4D42C0A570D2830CE /* ConfigNodeReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = F02B81509EA41034045058146F734680 /* ConfigNodeReset.swift */; }; + AF6C76A3FE8839BFE19E35893A8A9990 /* ConfigGATTProxySet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5409C60ABD4550F300F37E99F1576EC5 /* ConfigGATTProxySet.swift */; }; + AFAA341674803AE2D8672BFFF9BBC1C8 /* ConfigNetKeyList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3027FF28A9C2BFFEE81166BF7EFB4B6 /* ConfigNetKeyList.swift */; }; + B29AF2DC105E195BBF48AC295928987F /* GenericPowerRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B5C4D61E2BB0FD9A1EBE760D3630E7B /* GenericPowerRangeStatus.swift */; }; + B32C090733BC342891F209D3B22467B8 /* Oob.swift in Sources */ = {isa = PBXBuildFile; fileRef = F92BF1F7959A892CA9B31DC80B66EF24 /* Oob.swift */; }; + B38FC417703C34E9AA16C95EF9926084 /* ConfigFriendSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD7E094DC5C92CAB627A13965A1E0856 /* ConfigFriendSet.swift */; }; + B5A09BA41DBEE3A1B5F358A3FB7303AA /* ConfigModelAppUnbind.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6BCD9C04758D3DDFB89FF8BFB1DF5FE /* ConfigModelAppUnbind.swift */; }; + B7471E4183941F35D51FA74ED2377C46 /* ClosedRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF2D7985C10F2E7511EBD2885031013C /* ClosedRange.swift */; }; + B79345C7EB61F0D50592203D4DEABC3B /* ConfigBeaconStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73382CDDD7C7283E7B9C766187A25EE /* ConfigBeaconStatus.swift */; }; + B79EAD5059538F4276EC71E98C374ECD /* ConfigModelPublicationGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B760C868552B51D62C5AB60E11053122 /* ConfigModelPublicationGet.swift */; }; + B87D3A76369B7C63CE9EDCBB88BF49FC /* GenericDeltaSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C04582F1AF96FE5189C0C942643E841 /* GenericDeltaSet.swift */; }; + B8C4EAB37A937BFC552F91767AC5A62C /* Algorithm.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE96C4753C898D3F9F3EA768D2AFF3D6 /* Algorithm.swift */; }; + B908DD6BECA28EB2EF0C61ECC6F73E8D /* GenericPowerLevelStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 354350BACB41B5EE63825C3F56B00E3B /* GenericPowerLevelStatus.swift */; }; + BA02C46B403BD63343D2620AF9452655 /* ExportConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65340DBA3A79A084E1B53BBC399D2A1E /* ExportConfiguration.swift */; }; + BA88BBE4F7616C655F2B3BCC55D862A0 /* NodeFeatures.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6852408D02E509AF8434F400283B459 /* NodeFeatures.swift */; }; + BAF925794FF18CC95314C529C0E7041B /* LightCTLTemperatureStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB91A917EE590C0F01D55A4A2D80EB2 /* LightCTLTemperatureStatus.swift */; }; + BC03F65132176E2BA462A9272322BBC2 /* GenericPowerDefautGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8DA8AA1B10227642E7080CB88EB3012 /* GenericPowerDefautGet.swift */; }; + BC0ECC4392F0EBD1DA202A2E5AC23B07 /* MeshNetwork+Groups.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13E311C7A590245DDE0F92794976D6 /* MeshNetwork+Groups.swift */; }; + BD807B6C61472A8EA039FEAC9B7FD574 /* ConfigRelayGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 104DA4C2354EC2D4EA7F5D08715E16CA /* ConfigRelayGet.swift */; }; + BDA0127442F7B637F3ECC2D631E4DC02 /* MeshState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8393A20734DC4DCAA7CBDA0713418E2 /* MeshState.swift */; }; + BDEC06C606C344491577DAE9B8EA0271 /* AddAddressesToFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4263CE2320DCDCE436A7F76512356ABC /* AddAddressesToFilter.swift */; }; + BE1597CF66649ED63012102D443D4A21 /* NetworkKey+MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285C7E188C7324018C8E4293B1AB0DC0 /* NetworkKey+MeshNetwork.swift */; }; + BFD1AB52839C778915DCBFEBE701D30F /* SceneStoreUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A4E1FD0EFB3304369BE0CDF99A3B83E /* SceneStoreUnacknowledged.swift */; }; + C2C880C692D23F72260380E812FCEF85 /* ConfigModelSubscriptionVirtualAddressAdd.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF67E965129C7DB236D84E0C5727843F /* ConfigModelSubscriptionVirtualAddressAdd.swift */; }; + C475281D110647C259851D27333BC86E /* ConfigHeartbeatPublicationSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39A26B9C5DDFAA07EF23E472CA1F9841 /* ConfigHeartbeatPublicationSet.swift */; }; + C4A2D1AE3EEB24EF4BA0778B31E4CC6C /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86777731FF05E6F236B7CEC7975BA1C /* Node.swift */; }; + C52A7A2B0F891E155DD4FB3A087BE787 /* MeshMessageError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD75BFAD8E25AEC208C6A0810227EDC7 /* MeshMessageError.swift */; }; + C66041755EB29D1756F3D7326508E8DE /* OptionSet+Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 367B943AEB08A4EF953FB78F7E73DEC8 /* OptionSet+Data.swift */; }; + C9004D00D6FB14D22A08F030C797D916 /* LightLightnessLinearStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E2423912C2848A893C2B9D92F63EC2 /* LightLightnessLinearStatus.swift */; }; + C9A8C026375BFE21ABB23E5D37ECED73 /* VendorMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7DAEED2B880E2B28B5F60E62480617 /* VendorMessage.swift */; }; + C9AFADAD907AFE588F99D961C545992D /* LightLightnessLinearSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D189A20A021D3C6024D80E29F839F7B /* LightLightnessLinearSetUnacknowledged.swift */; }; + C9D60FCEB07D4FB1F4027A978FF9BAA9 /* ConfigAppKeyList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203C613775E2B7CB5C3CAB948E573EF1 /* ConfigAppKeyList.swift */; }; + C9E5E1E36F30EDD73B6CFEC6899B4F5C /* LightLightnessSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E98FEBD3CE4F142EC9E7585C633CEC71 /* LightLightnessSet.swift */; }; + CA3F220141B628588761BDE7CC5D9A39 /* Location.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DD2CA5E5F9218479A62BEF24E9D789C /* Location.swift */; }; + CB1A7F8FFB802ABE159E02F6C61E176E /* ConfigVendorModelAppList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00616B1A66FB0EF0A73173C6AFD5445B /* ConfigVendorModelAppList.swift */; }; + CC4CB9FD15BFA8DC7C7EA6E7FF028DA1 /* LightHSLTargetGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38AE40F0734B7CDD0F0A7E3477453BD1 /* LightHSLTargetGet.swift */; }; + CDAE8A06296166642009C3613085334F /* GenericPowerLastGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 617C71C82DDE824525F163BF38BA747B /* GenericPowerLastGet.swift */; }; + CDC1B3EB55B49DC95FE0F35DEB5BBB26 /* ProxyProtocolHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1151EEE973E1C89BFD29C0ABF1B60B46 /* ProxyProtocolHandler.swift */; }; + CE406F3BE48E74C5C1051F3F14B69EC8 /* ConfigNetKeyDelete.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEA1E2956C0C5BAC151E6E9F2E4F376D /* ConfigNetKeyDelete.swift */; }; + CEA89497C95BFE4A08283B0C3213872D /* ConfigLowPowerNodePollTimeoutStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A026E7E26E6CC90D58F995E4D287D01 /* ConfigLowPowerNodePollTimeoutStatus.swift */; }; + CEE109A11A0E1684AF3591C679DD164F /* LightCTLDefaultGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC01AE02C9CC3A3EEA7262ACB36A3633 /* LightCTLDefaultGet.swift */; }; + CEE140B539D6667252FAAAF15EC7EF3A /* LightCTLTemperatureSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAD00A7184EB36266E55D8BFADDFB5F1 /* LightCTLTemperatureSet.swift */; }; + CEECA9FBC91A310D1880649599601B72 /* HeartbeatSubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FF00211FB3CE12EDC81F62BFF3BD3FC /* HeartbeatSubscription.swift */; }; + D21EE5B6E5C180B8986BCB4FA5F41D0E /* LightLightnessGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4341776A2847F321EC212A711A151DE0 /* LightLightnessGet.swift */; }; + D28E72D9D22D53B6052D7687E997285E /* GenericMoveSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03DF8DCF16097CFFA36999FB1DC19CC9 /* GenericMoveSet.swift */; }; + D302A331FAC45AD7048F6D905B724B50 /* GenericMoveSetUnacknowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1C0C1A07A3AD00DD421CEB8F99F39FC /* GenericMoveSetUnacknowledged.swift */; }; + D417F94A7AAF05A1B29D669CD5B8C137 /* Scenes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86AAC82ABC592010DB8AA76A04EEEBAE /* Scenes.swift */; }; + D46EF6DB6BD79A4B5606F1B6AF75CB84 /* OnPowerUp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBD46A118518D32C99E31523D320866 /* OnPowerUp.swift */; }; + D545BA3F50EAE11FA307D16A0C89BE6D /* Provisioner+Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE68C5FFB47CCA00621F63ED1F75CE8 /* Provisioner+Node.swift */; }; + D64DA9A86BEA1574F5990E348B849DD0 /* ConfigModelPublicationVirtualAddressSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A09EFD81ADC973B8AA1F51E09F5DDD3 /* ConfigModelPublicationVirtualAddressSet.swift */; }; + D883BD2F0B03D45C6765143FBB15E7E7 /* OpenSSLHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C361A99C817A064EF9EF47D2FDD3BEE /* OpenSSLHelper.m */; }; + DA3245EC28E97838CE8E8F79B58026B7 /* ConfigurationServerHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDFAFBBCD533A1C00784C45FF0C99AD3 /* ConfigurationServerHandler.swift */; }; + DB15BA6A2E04B560F6327702E6F89519 /* UnprovisionedDeviceBeacon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DAABCFE49834A707220404517B3B2DA /* UnprovisionedDeviceBeacon.swift */; }; + DB96E6DA9A4514B77080FBF4D0ABE326 /* Group+Scenes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F594F1A3E786DB7FC126279C38A2DB8 /* Group+Scenes.swift */; }; + DBE17F838BB2FEE1A74D411AD6DA55FD /* LowerTransportLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06529719D484DC9708E45C8D403B8971 /* LowerTransportLayer.swift */; }; + DD3B47BF437314A5F1CD3EF0658909B2 /* MeshNetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A009CE54B920D289BB0A36AD631F66F /* MeshNetworkManager.swift */; }; + E00F488B700D5BBBEE0A18E0E781CB7D /* HeartbeatMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 141E2E2E208AB9FF44FAB7DE6FC6F97E /* HeartbeatMessage.swift */; }; + E0AC2DAF3B9C9E2CC67A50D1A4540647 /* LightCTLTemperatureGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5487B0BF4FF46BE147AD05D6692219DF /* LightCTLTemperatureGet.swift */; }; + E19C979E3A6542EAE7CC50ED98EF829A /* LightLightnessLastGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C28BD919AB288DF9C2388DE7912164D /* LightLightnessLastGet.swift */; }; + E217C8380D8A447398707192C966676C /* AccessMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050367D2FB7D44B5220AF4C9578633D2 /* AccessMessage.swift */; }; + E47F8DACE0A7E1E44FEA2003CDFD5F2B /* Pods-nRFMeshProvision_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A43359B7BDF9C665A7737B649DD79C1E /* Pods-nRFMeshProvision_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4BBC68F6EE78189B09EC15B09BF15A3 /* LightHSLSetUnackowledged.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C31489DFDE459F42392C773B7887B32 /* LightHSLSetUnackowledged.swift */; }; + E5B1E6609ECD08B96A966429D88877F9 /* LightCTLTemperatureRangeSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F7A5E95547B1B38707816CDDD41D269 /* LightCTLTemperatureRangeSet.swift */; }; + E5C7443F496606D0EAA83FCE236D6AEC /* ConfigCompositionDataGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2440A05305925E74EE6CFBFAF8DE019 /* ConfigCompositionDataGet.swift */; }; + E6D94F7F13A2DEB43081B345CF12842F /* MeshNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1896DF907DDA488BF13D1ACFCAEE915B /* MeshNetwork.swift */; }; + E6DCB652910FAB099B5818DD8A656549 /* ConfigHeartbeatSubscriptionStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66ABCDE961B670BB3FC9ACF1FC2EDD09 /* ConfigHeartbeatSubscriptionStatus.swift */; }; + E745582F437B9099CEA508E3DA15274C /* MeshUUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047CCCC2666106218A6EF75A4D2C6B91 /* MeshUUID.swift */; }; + E7FA6CEB4E8C4619C0BA5DC4EBA97254 /* GenericMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0B92D846B747F521AB81CF88C8BFF2 /* GenericMessage.swift */; }; + E8A72E927398FE6234F5C68ACDF49CF5 /* UUID+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AF4B7D64CCE82616BF3A34E77C80A88 /* UUID+Hex.swift */; }; + E9F326286EDB02F20410CB39127AF31C /* IvIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADEF1335E8E050B1868AF7CC386D6EF5 /* IvIndex.swift */; }; + EAE5E54CA796BE7B74E9D79CCB3BABFA /* ConfigVendorModelAppGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C990CF383F64CA9D5D9DF253A9190204 /* ConfigVendorModelAppGet.swift */; }; + EBAB07D17EAC31ED5FB5A4A57850EE6E /* ConfigDefaultTtlGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 430E40C0FF85CB3FACFF440F3BAAEAE3 /* ConfigDefaultTtlGet.swift */; }; + EBBBFE10B30E769D041C1DFB6CE70806 /* ConfigurationClientHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 214B01C8CA43EA16BB23DB504FD357E6 /* ConfigurationClientHandler.swift */; }; + EBE54DF6D983E3509722A074DE240341 /* GenericLevelStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6740FD536321E2DD1303AA39813DE797 /* GenericLevelStatus.swift */; }; + EC7E1C96F90D53D268711822EF192254 /* ConfigSIGModelAppList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B8B8A759B4C8B4083854BE887ACA4EB /* ConfigSIGModelAppList.swift */; }; + EC7F198453AFD26AC5D388E0D2B5D717 /* Node+Scenes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 394F03CAE28D4A587367D327FF1A0682 /* Node+Scenes.swift */; }; + ECEF71EA2C9840D182121EE5FDB4D7A9 /* Node+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70CFA7B3BA308216DDCC444B4F4A82C6 /* Node+Keys.swift */; }; + ED3551DB4A509B0D62CE9077A5D5BDAC /* LightHSLGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B514C6C630BB86F20391C17ECD1B099F /* LightHSLGet.swift */; }; + EE0FD09D1031E78F1B2B198C38B21357 /* LightLightnessLastStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 482A3C1C37236811115C68ABA30A931A /* LightLightnessLastStatus.swift */; }; + EEA6D294B8F1519F6D9BC2ECA457F872 /* LightLightnessRangeGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E5256577DE078126516A653574C2601 /* LightLightnessRangeGet.swift */; }; + EEDB976FA31C2E081F98B40210872A9F /* Pods-nRFMeshProvision_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 21CDD8648681CE8D31824BB49C8D17A6 /* Pods-nRFMeshProvision_Tests-dummy.m */; }; + F0A2AC3E1F298B620F0D3391DB2CC85D /* ControlMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DDBF68D032C7EB3E470EF81DC784264 /* ControlMessage.swift */; }; + F2E00B7A6967DF7564F5765A478AC264 /* AccessError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46893EB49A5E3BFF3AD893BD854F3F46 /* AccessError.swift */; }; + F2EB1595D7B46AFCF98F4CC5E3D276BA /* Provisioner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E687EDDA18714A3F0958232F9E3290 /* Provisioner.swift */; }; + F35FF8383A379B6D6C91F3D22F1458EA /* ConfigModelPublicationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD7620FA4C3615F1D29836495300CCD /* ConfigModelPublicationStatus.swift */; }; + F41BEDED619D25BACC2AD0C4E7FDFB82 /* MeshNetwork+Ranges.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE0BB037FBD45F8F275E8EDDCA0738CC /* MeshNetwork+Ranges.swift */; }; + F530E1E8A422ED59FC5D778F53182E98 /* LightHSLRangeStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B601630F004DF2100FCD042A24471954 /* LightHSLRangeStatus.swift */; }; + F66384CF9B8AEFFDC1B6DC9679465C9B /* PBGattBearer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91E6F8AF07D0A8B6DA301BAA7D2A8104 /* PBGattBearer.swift */; }; + F723B027847AF09B4E7F1912EA1B9996 /* ModelDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 783E3B11336EB68249609BAEF65F7BA3 /* ModelDelegate.swift */; }; + F8152E93777FE2442590D960C5EA4393 /* Scene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29DA850837892D1293613A2CBAB9FB75 /* Scene.swift */; }; + FA27944098C0B5EBF959BAE8EB33DB09 /* ConfigSIGModelAppGet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51545409FD1A65E85BF26461955CC451 /* ConfigSIGModelAppGet.swift */; }; + FA3FCC8F40B43C06849E080E286DBB3A /* GenericPowerDefaultSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6307DF621D131225F793C80651768EB7 /* GenericPowerDefaultSet.swift */; }; + FA82AE3E444772F40E121288C3F43C2C /* Scene+Nodes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57FBC1C848BBB7425F742DFB2E8DE98C /* Scene+Nodes.swift */; }; + FBE5F7632DA9CCC94F14A8900013D18E /* ConfigKeyRefreshPhaseStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2218BA1D33AD9FB557FA2F586FA5B544 /* ConfigKeyRefreshPhaseStatus.swift */; }; + FC2874092002CEC99D4C35AADFE8DF30 /* ProvisioningManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBB22AA9C6AB1EC8EE50CB6FF09BF517 /* ProvisioningManager.swift */; }; + FC922C988FE106D3A97166C1F7F46107 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = BADB886E25ECC573130500DCC32BC33F /* Model.swift */; }; + FE4E06815537D3800F8B09AC47BD2749 /* ApplicationKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD3DB5E9AA3D62916415CE0FE3CC278B /* ApplicationKeys.swift */; }; + FE70709C3706156523D623C8B9264B4C /* ApplicationKey+NetworkKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26902C578F7758A4E59836CDEE77EFD6 /* ApplicationKey+NetworkKey.swift */; }; + FE8014F1417317042B63D194584810B6 /* Key.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78B481BF1A8D895CC20E4A761C92244A /* Key.swift */; }; + FEFFC5035F417DDCDCA0B31262F430E1 /* SecureNetworkBeacon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 137A351D25C03847A810B4C190300A5B /* SecureNetworkBeacon.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0882DEE393BEA79E7304C3612DEA566F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DBF639A39D1896128BCA040EDD84174E; - remoteInfo = nRFMeshProvision; - }; - 44AD7821A9F9F4B6FBDA74621A090F43 /* PBXContainerItemProxy */ = { + 07983FBB3AE22903B1314BB58FDA135D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = B9ED5194E665042005069EF06C82A050; remoteInfo = "OpenSSL-Universal"; }; - B159FB876C1CE42925419543C798FE84 /* PBXContainerItemProxy */ = { + 097E23CBF3690C853760A751811FA406 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = B9ED5194E665042005069EF06C82A050; remoteInfo = "OpenSSL-Universal"; }; - D4026AC12C135EC21FF0566349AF373E /* PBXContainerItemProxy */ = { + 5C30D3478F7092F7AD785F0FDF4A918F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 52B60EC2A583F24ACBB69C113F5488B9; - remoteInfo = SwiftLint; + remoteGlobalIDString = 22072749B8AB997E54D438CB4B7DE84D; + remoteInfo = "Pods-nRFMeshProvision_Example"; }; - F5788798F98529FB5E873DD07169F764 /* PBXContainerItemProxy */ = { + A1884D750E2EF347AFB0F62662E379B6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 22072749B8AB997E54D438CB4B7DE84D; - remoteInfo = "Pods-nRFMeshProvision_Example"; + remoteGlobalIDString = DBF639A39D1896128BCA040EDD84174E; + remoteInfo = nRFMeshProvision; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 010B08819C407B094175745BA42882E6 /* Element+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Element+Keys.swift"; sourceTree = ""; }; - 0128130FDDAA93816383BDDB5EEFFAFA /* MessageHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageHandle.swift; sourceTree = ""; }; - 01419A6DD362C3A35A29C53F24D2DC87 /* LightHSLStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLStatus.swift; sourceTree = ""; }; - 019512222742ED36961BC5881981465F /* ConfigNetKeyDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyDelete.swift; sourceTree = ""; }; - 03F24D5C39141857DA2B9541863CAD8F /* MeshNetworkError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MeshNetworkError.swift; path = nRFMeshProvision/Classes/MeshNetworkError.swift; sourceTree = ""; }; - 05259A0BDB256F91A39213AF8CCAE36A /* libssl.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libssl.a; path = ios/lib/libssl.a; sourceTree = ""; }; - 0671F9A5A27248CD09444D00F3E26CE4 /* Scene.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Scene.swift; sourceTree = ""; }; - 06B5ECA9A5CB4947408A35D3E27232C5 /* ecdh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdh.h; path = ios/include/openssl/ecdh.h; sourceTree = ""; }; - 0809184D9B5E35D7E971ABBD653E4959 /* SegmentAcknowledgmentMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentAcknowledgmentMessage.swift; sourceTree = ""; }; - 081EAD623866368C7671D11D9B2658EE /* NetworkLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkLayer.swift; sourceTree = ""; }; - 0853F88584ABFF8C5D0C54DB22C49133 /* rsa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rsa.h; path = ios/include/openssl/rsa.h; sourceTree = ""; }; - 0A0F8F36208D882DDA9B0F94F16858CF /* ConfigVendorModelSubscriptionGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelSubscriptionGet.swift; sourceTree = ""; }; - 0A426A693811B44EBA9FAF080689FDCC /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; - 0A5DAE36EF5F0D97920D3AB7F5A79D72 /* Data+Hex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Data+Hex.swift"; sourceTree = ""; }; - 0A5DC2434FC2B09AEDD2E3E5AF59DDAC /* OpenSSLHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OpenSSLHelper.h; sourceTree = ""; }; - 0B6DE2B413E4C191250E1A92B8148E99 /* ssl23.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl23.h; path = ios/include/openssl/ssl23.h; sourceTree = ""; }; - 0C7AB13F8128D1C3941E3A29C5B69C30 /* LightHSLSaturationStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationStatus.swift; sourceTree = ""; }; - 0CC7C76EB155EE56D2A3041E855A0666 /* ApplicationKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ApplicationKey.swift; sourceTree = ""; }; - 0D52291E7D8F400A8478B5A3E5457BC7 /* Pods_nRFMeshProvision_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_nRFMeshProvision_Example.framework; path = "Pods-nRFMeshProvision_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0D8EBBF36F76690DEA798BB3714D0FFA /* evp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = evp.h; path = ios/include/openssl/evp.h; sourceTree = ""; }; - 0DD80B3A0C6644F8EACDDA46EBCDCC50 /* pqueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pqueue.h; path = ios/include/openssl/pqueue.h; sourceTree = ""; }; - 0F7EEC370FCA77181BCDBE169C4D5E6C /* Model+Name.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Model+Name.swift"; sourceTree = ""; }; - 102EFEAF34163D6DC20D5D9A524F8CCB /* ConfigGATTProxyStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigGATTProxyStatus.swift; sourceTree = ""; }; - 116016D9E7CAF5D7B7447AD027A2AADA /* GenericPowerLastGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLastGet.swift; sourceTree = ""; }; - 11A9F100FB07A821694839C04CF49141 /* AddressRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AddressRange.swift; sourceTree = ""; }; - 11BEF48DE3ED9BFEC286C62E9D9B4BB0 /* ConfigDefaultTtlStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigDefaultTtlStatus.swift; sourceTree = ""; }; - 11CAB0C647173EEB60E98E0B0CDD4A60 /* ConfigNetworkTransmitStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetworkTransmitStatus.swift; sourceTree = ""; }; - 12045479F74544041FA3CA2F30CA80B2 /* LightHSLTargetStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLTargetStatus.swift; sourceTree = ""; }; - 12070EFF388C88F8F36525F061621F72 /* ProvisioningManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningManager.swift; sourceTree = ""; }; - 1238D39D601CD74AA2491DF79C283FBA /* ConfigBeaconSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigBeaconSet.swift; sourceTree = ""; }; - 12F1000703E09E8D1FF4B475F9FADD0C /* GenericDeltaSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDeltaSet.swift; sourceTree = ""; }; - 136A871AC6BE69F7BF5770C379B0BBFA /* ApplicationKeys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ApplicationKeys.swift; sourceTree = ""; }; - 13AF65795732EC5B7153E200AD166C2E /* GenericLevelGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelGet.swift; sourceTree = ""; }; - 14EF4EB62A4A7A4241646BCE3F1A7DA0 /* nRFMeshProvision-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nRFMeshProvision-dummy.m"; sourceTree = ""; }; - 1675A6423047E7B2314146A482E4CE3F /* GenericPowerDefautGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefautGet.swift; sourceTree = ""; }; - 1690647A8327F3756BA53019B3EB3C12 /* LightLightnessRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeGet.swift; sourceTree = ""; }; - 17CE76F641DB38485019AFEB30ED9BEC /* AddAddressesToFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AddAddressesToFilter.swift; sourceTree = ""; }; - 183B1318D89CDB4B5F500E75E99E1A0D /* ripemd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ripemd.h; path = ios/include/openssl/ripemd.h; sourceTree = ""; }; - 18D390D47C6B95A04620C1B4CA8089C6 /* dsa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dsa.h; path = ios/include/openssl/dsa.h; sourceTree = ""; }; - 193979972B552079ECF570FF98A1252A /* ModelDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ModelDelegate.swift; path = nRFMeshProvision/Classes/ModelDelegate.swift; sourceTree = ""; }; - 1A5E86959F49A0F4B0FB33D3E82235F8 /* GenericOnOffStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffStatus.swift; sourceTree = ""; }; - 1A9445051AC704B63B4416B0E544A66C /* LightHSLDefaultGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultGet.swift; sourceTree = ""; }; - 1AB42D917A68F9EBA3DADEB36E7A3841 /* GenericOnPowerUpGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpGet.swift; sourceTree = ""; }; - 1B5FF462B80E3D42E2AC0D243D1E86B5 /* Models.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Models.swift; sourceTree = ""; }; - 1BD82F065F0C258600DA938454295140 /* Int+Hex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Int+Hex.swift"; sourceTree = ""; }; - 1C367C7850D0CE90FF5C2D9C784BE1FB /* x509.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = x509.h; path = ios/include/openssl/x509.h; sourceTree = ""; }; - 1C62310A89D292E53685A22813C74E53 /* mdc2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mdc2.h; path = ios/include/openssl/mdc2.h; sourceTree = ""; }; - 1C96F1083BBA8D28290D28E1D0B1D873 /* Location.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Location.swift; sourceTree = ""; }; - 1CB175CE5FD8E4A5A5E758108A4F92AE /* RangeObject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RangeObject.swift; sourceTree = ""; }; - 1D2FE8143EF7E049DBF956D08F89896F /* ApplicationKey+MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ApplicationKey+MeshNetwork.swift"; sourceTree = ""; }; - 1D52BE616007CF5E0D57EF9FDEFED698 /* GenericDefaultTransitionTimeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeSetUnacknowledged.swift; sourceTree = ""; }; - 1E2730C4A62DAFC1BA2491B3FB81CB8D /* GenericDeltaSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDeltaSetUnacknowledged.swift; sourceTree = ""; }; - 1EA0F99FAA094AE139E13F6E1681E808 /* des.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = des.h; path = ios/include/openssl/des.h; sourceTree = ""; }; - 1FE9C9A8915BD6881F9341E0AC27CE77 /* MeshState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshState.swift; sourceTree = ""; }; - 2059BD0065FE9600F1C7C3837FD9AEC9 /* libcrypto.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libcrypto.a; path = ios/lib/libcrypto.a; sourceTree = ""; }; - 20F225458DB441DA5ECCC3E27276E851 /* Element+Models.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Element+Models.swift"; sourceTree = ""; }; - 216CC0A519245D382C4C1D293134D4BB /* LightHSLHueGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueGet.swift; sourceTree = ""; }; - 21895FCBAB3D775C52ED6C57952CE444 /* CompanyIdentifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompanyIdentifier.swift; sourceTree = ""; }; + 00616B1A66FB0EF0A73173C6AFD5445B /* ConfigVendorModelAppList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelAppList.swift; sourceTree = ""; }; + 0086C4EAB2EAB1D9FD6493558315BE69 /* SegmentedMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentedMessage.swift; sourceTree = ""; }; + 0114E9587826C418D92C09F2B13BB810 /* Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; + 021B20216E73C616F938550783CEE90E /* LightHSLRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeSetUnacknowledged.swift; sourceTree = ""; }; + 02253CE2B973F25075E7D0BA3AE3FB10 /* GenericOnPowerUpSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpSetUnacknowledged.swift; sourceTree = ""; }; + 022AE903AEDEFCE981A2AF2D666BBA57 /* MeshNetworkError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MeshNetworkError.swift; path = nRFMeshProvision/Classes/MeshNetworkError.swift; sourceTree = ""; }; + 03DF8DCF16097CFFA36999FB1DC19CC9 /* GenericMoveSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericMoveSet.swift; sourceTree = ""; }; + 04259882C54E2564C9BAFDBCC509318F /* ConfigModelSubscriptionVirtualAddressOverwrite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionVirtualAddressOverwrite.swift; sourceTree = ""; }; + 043BF794162864AEAFD9582939B9AF35 /* ConfigAppKeyUpdate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyUpdate.swift; sourceTree = ""; }; + 044A70D158D3F380E9C9D1BFA558B23D /* LightHSLHueStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueStatus.swift; sourceTree = ""; }; + 047CCCC2666106218A6EF75A4D2C6B91 /* MeshUUID.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshUUID.swift; sourceTree = ""; }; + 050367D2FB7D44B5220AF4C9578633D2 /* AccessMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessMessage.swift; sourceTree = ""; }; + 05096E337F051EE9AB0E2B48FF718FCA /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 0614ABA62D747D65C04DA080C9FEE309 /* MeshNetwork+Nodes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Nodes.swift"; sourceTree = ""; }; + 06529719D484DC9708E45C8D403B8971 /* LowerTransportLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LowerTransportLayer.swift; sourceTree = ""; }; + 069E4C69CD3D2AEB264D72140A4C84AA /* MeshNetwork+IvIndex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+IvIndex.swift"; sourceTree = ""; }; + 07DDB32795BE6AC1402F2EA6C20116CD /* LightHSLSaturationSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationSet.swift; sourceTree = ""; }; + 07EF75FEB86696ADDF95F0CDB9E5C996 /* ConfigModelPublicationSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationSet.swift; sourceTree = ""; }; + 07F43471636E09D3F3BC231EDA577E48 /* LightCTLDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultStatus.swift; sourceTree = ""; }; + 081942080DD78D8AF4492EE5A4BCD305 /* GattBearerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GattBearerDelegate.swift; sourceTree = ""; }; + 084FC342130C4348A2C22596D410A001 /* BackgroundTimer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BackgroundTimer.swift; sourceTree = ""; }; + 086D4A80331A2F71239B4A8590F5FA21 /* KeySet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeySet.swift; sourceTree = ""; }; + 088B78981965335FC658081F89775614 /* ConfigAppKeyAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyAdd.swift; sourceTree = ""; }; + 08B851FBD6661AE0C9428FE3E47A73F9 /* bn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bn.h; path = ios/include/openssl/bn.h; sourceTree = ""; }; + 0A28A87A172B55A851A908F66794F692 /* Node+Elements.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Elements.swift"; sourceTree = ""; }; + 0B55ED0BAFD5554E3DC353D85F2A4F61 /* SceneStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneStatus.swift; sourceTree = ""; }; + 0BC99DAB89C503E9B0C1EC60550FE6AE /* GenericPowerDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefaultStatus.swift; sourceTree = ""; }; + 0CBD46A118518D32C99E31523D320866 /* OnPowerUp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = OnPowerUp.swift; sourceTree = ""; }; + 0D52291E7D8F400A8478B5A3E5457BC7 /* Pods_nRFMeshProvision_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_nRFMeshProvision_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E0C731C1CA760BDF2D048381A777985 /* opensslconf-x86_64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-x86_64.h"; path = "ios/include/openssl/opensslconf-x86_64.h"; sourceTree = ""; }; + 0E6988FF9933344F6D9783EBEF82E166 /* CompositionElement.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompositionElement.swift; sourceTree = ""; }; + 0EA262D23FE616D01E82958C96814D91 /* e_os2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = e_os2.h; path = ios/include/openssl/e_os2.h; sourceTree = ""; }; + 0F2921B9B52FFE769BC94EDF3A5CAEE6 /* ConfigFriendGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigFriendGet.swift; sourceTree = ""; }; + 104CF54BBFD3CF633F4A4B764499F330 /* ebcdic.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ebcdic.h; path = ios/include/openssl/ebcdic.h; sourceTree = ""; }; + 104DA4C2354EC2D4EA7F5D08715E16CA /* ConfigRelayGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigRelayGet.swift; sourceTree = ""; }; + 1151EEE973E1C89BFD29C0ABF1B60B46 /* ProxyProtocolHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProxyProtocolHandler.swift; sourceTree = ""; }; + 119F4539DA3ED8DF7F4760EE8756A7FE /* ConfigGATTProxyGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigGATTProxyGet.swift; sourceTree = ""; }; + 136042984F60F4EE89500C36041309AC /* LightLightnessStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessStatus.swift; sourceTree = ""; }; + 137A351D25C03847A810B4C190300A5B /* SecureNetworkBeacon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SecureNetworkBeacon.swift; sourceTree = ""; }; + 141E2E2E208AB9FF44FAB7DE6FC6F97E /* HeartbeatMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HeartbeatMessage.swift; sourceTree = ""; }; + 15C79D3001CE29875442114180C1AF92 /* whrlpool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = whrlpool.h; path = ios/include/openssl/whrlpool.h; sourceTree = ""; }; + 16FA40299AD6D5783F6D020303330E7A /* nRFMeshProvision-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nRFMeshProvision-dummy.m"; sourceTree = ""; }; + 176DE988E7850F4E3B301E1A41A2262E /* UpperTransportPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UpperTransportPdu.swift; sourceTree = ""; }; + 177B6E59C57202285350545AB7707112 /* NetworkPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkPdu.swift; sourceTree = ""; }; + 1896DF907DDA488BF13D1ACFCAEE915B /* MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshNetwork.swift; sourceTree = ""; }; + 190150023B9DB820890E386CF2E6D290 /* ConfigNetworkTransmitSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetworkTransmitSet.swift; sourceTree = ""; }; + 191A9E7A4F700571DBD90AB571A69B67 /* GenericDefaultTransitionTimeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeSet.swift; sourceTree = ""; }; + 19C3F82858921883FB9394DF39D23A2E /* nRFMeshProvision.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = nRFMeshProvision.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 19D0382069DC755371013699445C6528 /* ts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ts.h; path = ios/include/openssl/ts.h; sourceTree = ""; }; + 1A95A87D9610658F7CB79621E80410CD /* ui.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ui.h; path = ios/include/openssl/ui.h; sourceTree = ""; }; + 1CE5C57A06807CA13EDA22A1FC84C3D7 /* HeartbeatPublication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HeartbeatPublication.swift; sourceTree = ""; }; + 1CFB92639A7D3CF3ACD3CE98D3445844 /* LightHSLSaturationStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationStatus.swift; sourceTree = ""; }; + 1DAABCFE49834A707220404517B3B2DA /* UnprovisionedDeviceBeacon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnprovisionedDeviceBeacon.swift; sourceTree = ""; }; + 1E4E0360E1BF49D93046ED659EE76F20 /* ssl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl.h; path = ios/include/openssl/ssl.h; sourceTree = ""; }; + 1E824E85B590F0731B75235CB48AD98A /* ConfigHeartbeatPublicationGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigHeartbeatPublicationGet.swift; sourceTree = ""; }; + 1EA537B1DC16674937E923F22F09ED67 /* GenericOnOffSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffSet.swift; sourceTree = ""; }; + 1ED469B21495B04B7C32A5A655EAD439 /* BearerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BearerDelegate.swift; sourceTree = ""; }; + 1EF807CC420EF58CCFB042B39FBFD435 /* GenericPowerLevelSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelSetUnacknowledged.swift; sourceTree = ""; }; + 1F4B62615D9CE86638F7D1FBB0B2D66B /* dh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dh.h; path = ios/include/openssl/dh.h; sourceTree = ""; }; + 1F594F1A3E786DB7FC126279C38A2DB8 /* Group+Scenes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Group+Scenes.swift"; sourceTree = ""; }; + 1FE3E008B94B089FACB6AAEBED3B7688 /* SceneRegisterGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRegisterGet.swift; sourceTree = ""; }; + 203C613775E2B7CB5C3CAB948E573EF1 /* ConfigAppKeyList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyList.swift; sourceTree = ""; }; + 214B01C8CA43EA16BB23DB504FD357E6 /* ConfigurationClientHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigurationClientHandler.swift; sourceTree = ""; }; 21CDD8648681CE8D31824BB49C8D17A6 /* Pods-nRFMeshProvision_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-nRFMeshProvision_Tests-dummy.m"; sourceTree = ""; }; - 23F133F7120DA99A60097C753325E268 /* BearerError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BearerError.swift; sourceTree = ""; }; - 2479DEB1A09AA026AE385BB567A4722C /* ConfigVendorModelAppGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelAppGet.swift; sourceTree = ""; }; - 24B73186CE83020E1B0D60D19F363886 /* LightHSLRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeStatus.swift; sourceTree = ""; }; - 24BB185C3E8BAD662ECE491EF37DA961 /* GenericOnPowerUpSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpSet.swift; sourceTree = ""; }; - 280C85603813ECC5E52B725757F08E1F /* ConfigModelSubscriptionOverwrite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionOverwrite.swift; sourceTree = ""; }; - 28D00482DA5F4F0A57630249F0118349 /* SceneRegisterStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRegisterStatus.swift; sourceTree = ""; }; - 290340F733ED3A07351DD8E7B773510D /* ts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ts.h; path = ios/include/openssl/ts.h; sourceTree = ""; }; - 29399E6C634E1578CF48EC684125264E /* LightCTLTemperatureRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeStatus.swift; sourceTree = ""; }; - 2A1D4F7584E47C8233117CE574B145A5 /* GenericPowerDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefaultSet.swift; sourceTree = ""; }; - 2AD1310A338736EFEC07A803E5DDA9CE /* NetworkPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkPdu.swift; sourceTree = ""; }; - 2AD69E91DAD4B877FAC270F5F6E2EA56 /* kssl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = kssl.h; path = ios/include/openssl/kssl.h; sourceTree = ""; }; - 2B29BDFB0CB9AF56DC4A54283861CA12 /* blowfish.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = blowfish.h; path = ios/include/openssl/blowfish.h; sourceTree = ""; }; - 2BAEDDDCB95D7A1BD48F33D350653E8E /* OpenSSL-Universal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "OpenSSL-Universal.xcconfig"; sourceTree = ""; }; - 2C21A692EB11EBFEB652BC278363FABE /* shim.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = shim.h; path = ios/include/openssl/shim.h; sourceTree = ""; }; - 2E129F379D212DC631B25A6FDE037F36 /* GenericPowerRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeGet.swift; sourceTree = ""; }; - 2F16FEB6F3A2D59D63FAA52D576DB35B /* ConfigModelPublicationVirtualAddressSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationVirtualAddressSet.swift; sourceTree = ""; }; - 2F91F5AB98654B7892AA4A2544E76BB4 /* pem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pem.h; path = ios/include/openssl/pem.h; sourceTree = ""; }; - 2F95F20A5450D304188B4DA656E26B46 /* SetFilterType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SetFilterType.swift; sourceTree = ""; }; - 2FFFB354277BE8A54B76B14DC9A42C53 /* LightLightnessLastStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLastStatus.swift; sourceTree = ""; }; - 315CB18BED0BE31D685439E753EFD368 /* LightHSLHueSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueSet.swift; sourceTree = ""; }; + 21DB446008C555FD340559F24D649460 /* LightCTLTemperatureSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureSetUnacknowledged.swift; sourceTree = ""; }; + 2218BA1D33AD9FB557FA2F586FA5B544 /* ConfigKeyRefreshPhaseStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigKeyRefreshPhaseStatus.swift; sourceTree = ""; }; + 230B2F47FFC221CD5F853213E3846B07 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 23C39210A796564FC54301F26CC022D3 /* GattBearerError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GattBearerError.swift; sourceTree = ""; }; + 244D2F506BD37CA3E1A52FDCAF3D9669 /* Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Address.swift; sourceTree = ""; }; + 251285B7608C9D869B2B399E6B9FC909 /* OpenSSL-Universal.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "OpenSSL-Universal.debug.xcconfig"; sourceTree = ""; }; + 252AB5F58423A7FA0E4382B384690638 /* ec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ec.h; path = ios/include/openssl/ec.h; sourceTree = ""; }; + 257AA84A91BFCC5095021C5A1AD2F872 /* ConfigKeyRefreshPhaseSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigKeyRefreshPhaseSet.swift; sourceTree = ""; }; + 26902C578F7758A4E59836CDEE77EFD6 /* ApplicationKey+NetworkKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ApplicationKey+NetworkKey.swift"; sourceTree = ""; }; + 284E1DDA13DE1F7B1ED4995C6F690DBF /* GenericPowerRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeGet.swift; sourceTree = ""; }; + 285C7E188C7324018C8E4293B1AB0DC0 /* NetworkKey+MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "NetworkKey+MeshNetwork.swift"; sourceTree = ""; }; + 286C7FA634F521AE986CBE5F7EA94321 /* asn1_mac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = asn1_mac.h; path = ios/include/openssl/asn1_mac.h; sourceTree = ""; }; + 28D04AF454F82ABD2CB3A08987D0A441 /* rand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rand.h; path = ios/include/openssl/rand.h; sourceTree = ""; }; + 29615FF44CE98DB3EC91D66BCD88DBA4 /* Node+Provisioner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Provisioner.swift"; sourceTree = ""; }; + 29DA850837892D1293613A2CBAB9FB75 /* Scene.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Scene.swift; sourceTree = ""; }; + 29DFCB057C5BAF59A240814335789E74 /* ConfigNetKeyGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyGet.swift; sourceTree = ""; }; + 2CD7620FA4C3615F1D29836495300CCD /* ConfigModelPublicationStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationStatus.swift; sourceTree = ""; }; + 2CDF70CD80160DE8FEADCF25B28F849A /* ConfigHeartbeatSubscriptionSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigHeartbeatSubscriptionSet.swift; sourceTree = ""; }; + 2D7528E1A131FB7478A069884DB8FEFD /* ssl2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl2.h; path = ios/include/openssl/ssl2.h; sourceTree = ""; }; + 2F7DAEED2B880E2B28B5F60E62480617 /* VendorMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VendorMessage.swift; sourceTree = ""; }; + 3149A08CBABABC2535315A0EFE197187 /* ecdh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdh.h; path = ios/include/openssl/ecdh.h; sourceTree = ""; }; + 31A6E2A535B4FC1E615503C9E1510293 /* BeaconPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeaconPdu.swift; sourceTree = ""; }; 3212113385A8FBBDB272BD23C409FF61 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 32B6E45BA98554B6A036ADDC5969CCF4 /* GenericPowerRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeSet.swift; sourceTree = ""; }; - 32B93B1E9B6EAA625BC38E6E434364FC /* ControlMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ControlMessage.swift; sourceTree = ""; }; - 3379AFBFE46D5987C50691C2155B1217 /* OpenSSLHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OpenSSLHelper.m; sourceTree = ""; }; - 33862777B67E6F778FA101D66A54179A /* LightHSLSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSet.swift; sourceTree = ""; }; - 33C33F00D93B77BEC50F5A9EF3388BCC /* ConfigurationClientHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigurationClientHandler.swift; sourceTree = ""; }; - 34FB4CB3FD6B60123E75C2FFA5DF0B9F /* GenericOnPowerUpStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpStatus.swift; sourceTree = ""; }; - 350BA3BF14B883C741AE1BE3FC5A413D /* GenericPowerLevelSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelSetUnacknowledged.swift; sourceTree = ""; }; - 3530FF80C676EBE031E7A065EE6FC512 /* ConfigModelSubscriptionVirtualAddressDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionVirtualAddressDelete.swift; sourceTree = ""; }; - 365DB2FD709DBE3B85E9D0C4F4655998 /* rand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rand.h; path = ios/include/openssl/rand.h; sourceTree = ""; }; - 36917E6A31C54EAF6E3F0D5CCAC86693 /* Element+Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Element+Address.swift"; sourceTree = ""; }; - 37EC3959BB5B469DDCDA0A082014E1F5 /* LightLightnessGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessGet.swift; sourceTree = ""; }; - 38E44CFDD30E8196AB182620090077A7 /* asn1t.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = asn1t.h; path = ios/include/openssl/asn1t.h; sourceTree = ""; }; - 39D5550D1FE961D228BF66813367C2ED /* opensslconf-x86_64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-x86_64.h"; path = "ios/include/openssl/opensslconf-x86_64.h"; sourceTree = ""; }; - 3A393CA06738942FE9E5343169BE59E0 /* bn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bn.h; path = ios/include/openssl/bn.h; sourceTree = ""; }; - 3AA184343761882A81453DE5935627AA /* ConfigBeaconStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigBeaconStatus.swift; sourceTree = ""; }; - 3B3EB40AEB868FDD471922FF6753C73E /* Provisioner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Provisioner.swift; sourceTree = ""; }; - 3BBC8E101E888F3F7FD47A8A7040129F /* FilterStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FilterStatus.swift; sourceTree = ""; }; - 3C8BBC5023678873636B2264C4E2CB79 /* CompositionElement.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompositionElement.swift; sourceTree = ""; }; - 3CB19A3A0B17E8C388563EA2BA780718 /* LightCTLTemperatureStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureStatus.swift; sourceTree = ""; }; - 3E2C9C363D07FDC39CD6382BD77AB136 /* ConfigurationServerHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigurationServerHandler.swift; sourceTree = ""; }; - 3E73A000C74E3B30A464B36D3485E8DA /* obj_mac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = obj_mac.h; path = ios/include/openssl/obj_mac.h; sourceTree = ""; }; - 3EA2CA4A7E4FDC95619977869C163C7D /* cast.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cast.h; path = ios/include/openssl/cast.h; sourceTree = ""; }; + 32BE2F099E659862DFDA9F010FD76338 /* LightHSLDefaultGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultGet.swift; sourceTree = ""; }; + 33FC981837A5E3B921424F3A07E9116F /* LightHSLSaturationGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationGet.swift; sourceTree = ""; }; + 354350BACB41B5EE63825C3F56B00E3B /* GenericPowerLevelStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelStatus.swift; sourceTree = ""; }; + 357159A8F09BB8520DC8DC85E59CF519 /* MeshNetwork+Provisioner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Provisioner.swift"; sourceTree = ""; }; + 359A4A9BB62489E9CA1E9E2F8916B3CB /* LightHSLDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultSet.swift; sourceTree = ""; }; + 367B943AEB08A4EF953FB78F7E73DEC8 /* OptionSet+Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "OptionSet+Data.swift"; sourceTree = ""; }; + 36CE91A78389D943B1662E004AB9E933 /* ssl3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl3.h; path = ios/include/openssl/ssl3.h; sourceTree = ""; }; + 370C4DC979638CF7EDCDE590DB219EF1 /* ConfigFriendStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigFriendStatus.swift; sourceTree = ""; }; + 37D4CEA08FC1B90563EB7B7844B7C89E /* SceneNumber.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneNumber.swift; sourceTree = ""; }; + 389E335256E38697D5986DFBF9B28E0B /* sha.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sha.h; path = ios/include/openssl/sha.h; sourceTree = ""; }; + 389F7787D2ACF58D953436BB322F65CB /* BearerError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BearerError.swift; sourceTree = ""; }; + 38AE40F0734B7CDD0F0A7E3477453BD1 /* LightHSLTargetGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLTargetGet.swift; sourceTree = ""; }; + 38E687EDDA18714A3F0958232F9E3290 /* Provisioner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Provisioner.swift; sourceTree = ""; }; + 3900445EB0492670900280E64DB5728E /* KeyedDecodingContainer+Legacy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "KeyedDecodingContainer+Legacy.swift"; sourceTree = ""; }; + 390DCA691B2467DEAE49C19161FAB0D0 /* MeshNetworkDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MeshNetworkDelegate.swift; path = nRFMeshProvision/Classes/MeshNetworkDelegate.swift; sourceTree = ""; }; + 394F03CAE28D4A587367D327FF1A0682 /* Node+Scenes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Scenes.swift"; sourceTree = ""; }; + 39A26B9C5DDFAA07EF23E472CA1F9841 /* ConfigHeartbeatPublicationSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigHeartbeatPublicationSet.swift; sourceTree = ""; }; + 39FBFA8A1CA8990AFF7D95A4C6CB3E25 /* MeshNetwork+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Keys.swift"; sourceTree = ""; }; + 3A6F409EB75CF4A34C7156AE92F1D636 /* Node+Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Address.swift"; sourceTree = ""; }; + 3A7713B8351753240FB917FB85520188 /* LowerTransportError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LowerTransportError.swift; sourceTree = ""; }; + 3A8D5DDBF3290D795F9A22E75EC62747 /* LightCTLTemperatureRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeSetUnacknowledged.swift; sourceTree = ""; }; + 3AA46AA63A242B252060ABAE578671D1 /* asn1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = asn1.h; path = ios/include/openssl/asn1.h; sourceTree = ""; }; + 3AB91A917EE590C0F01D55A4A2D80EB2 /* LightCTLTemperatureStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureStatus.swift; sourceTree = ""; }; + 3B654D4666EF481AC689C355E0377F2D /* NetworkKeys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkKeys.swift; sourceTree = ""; }; + 3B94863F2F43B1A558AEA4A87F32170B /* rc4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rc4.h; path = ios/include/openssl/rc4.h; sourceTree = ""; }; + 3C28BD919AB288DF9C2388DE7912164D /* LightLightnessLastGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLastGet.swift; sourceTree = ""; }; + 3EC106BF29EEA4F49EF57EC5E310C97B /* GenericOnOffGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffGet.swift; sourceTree = ""; }; + 3F25ABC8C175D73C798CA470B26ECB0C /* SegmentAcknowledgmentMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentAcknowledgmentMessage.swift; sourceTree = ""; }; 3F6476B1800BA5207B02D531EAF72AEF /* Pods-nRFMeshProvision_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-nRFMeshProvision_Example-acknowledgements.plist"; sourceTree = ""; }; - 3F85AB7FC8BB273D6B2730C97363009D /* GenericMoveSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericMoveSetUnacknowledged.swift; sourceTree = ""; }; - 3FEF22695B2AD3E77B038283A222494D /* ProvisioningCapabilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningCapabilities.swift; sourceTree = ""; }; - 40EE2B90580B68FA262FA6F41721CC96 /* nRFMeshProvision-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nRFMeshProvision-umbrella.h"; sourceTree = ""; }; - 420867CCA79B0B87A7AFA8BAE85E2A05 /* GenericOnOffGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffGet.swift; sourceTree = ""; }; - 42ECE2D03C9D384EE01311C58256AA3C /* ProxyProtocolHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProxyProtocolHandler.swift; sourceTree = ""; }; - 43201E9851B176A882539D622D983450 /* ConfigMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigMessage.swift; sourceTree = ""; }; - 43993776BCB717466C26B404C567F5EE /* LightLightnessSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessSet.swift; sourceTree = ""; }; - 45941F789BD94EDB9190B84F63FA4A9F /* MeshData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshData.swift; sourceTree = ""; }; - 463FAB2DA56E85A4F21B1B6823902588 /* Group+MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Group+MeshNetwork.swift"; sourceTree = ""; }; - 4665699539B446FF0D900E1A0BE586D6 /* GenericDefaultTransitionTimeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeSet.swift; sourceTree = ""; }; - 46C5A6B96FA76C126AC3AB1583B753C6 /* whrlpool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = whrlpool.h; path = ios/include/openssl/whrlpool.h; sourceTree = ""; }; - 46FA9061ED8D93522997BBC6C0EF0CF0 /* MeshNetwork+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Keys.swift"; sourceTree = ""; }; - 47B2C04429BC1B5E4E6E8AF80FBBBA4D /* LightCTLSetUnackowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLSetUnackowledged.swift; sourceTree = ""; }; - 47E13B1DF62FB81606700B39FB9F7493 /* ProvisioningPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningPdu.swift; sourceTree = ""; }; - 480C74D5F2708A172E458036924784BD /* AccessLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessLayer.swift; sourceTree = ""; }; - 4884CABA37581DE4BBC1D30CA8692F93 /* hmac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hmac.h; path = ios/include/openssl/hmac.h; sourceTree = ""; }; - 48891B981E1D2B401B010AB6EEE4B8F9 /* conf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = conf.h; path = ios/include/openssl/conf.h; sourceTree = ""; }; - 488D15F191C7C08B4DE8ABD1F5512CA6 /* ConfigGATTProxyGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigGATTProxyGet.swift; sourceTree = ""; }; - 48F4593FEA5A01177B8E1D23865F40EC /* nRFMeshProvision-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "nRFMeshProvision-Info.plist"; sourceTree = ""; }; - 490989DD553F93363A49771D8C029816 /* Bearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bearer.swift; sourceTree = ""; }; - 494BBAB6971A932B603979B947DF47F6 /* NetworkKeys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkKeys.swift; sourceTree = ""; }; - 4ABD46EE3B6F78346CC5435DF94DF0EC /* ConfigFriendStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigFriendStatus.swift; sourceTree = ""; }; - 4B26D2C36F46E680A535F8D7A74BE8A3 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; - 4B364AEDC521DDF6DC5E078DBA1EF2F8 /* ConfigModelSubscriptionDeleteAll.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionDeleteAll.swift; sourceTree = ""; }; - 4BE77A4A734C944D3B6F3BB4266E153F /* GenericLevelSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelSet.swift; sourceTree = ""; }; - 4D562F649FFF959A925DE822AB157BE4 /* Algorithm.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Algorithm.swift; sourceTree = ""; }; - 4E0881D75865E2DF5F038B4CA9BC4540 /* GenericPowerDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefaultStatus.swift; sourceTree = ""; }; - 4E0FCF14DCEFE53ED203BA4345162056 /* MeshNetwork+Groups.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Groups.swift"; sourceTree = ""; }; - 4EC8BFD4CEB3E05ED9D6D91FF907270E /* Data+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Data+Keys.swift"; sourceTree = ""; }; - 4EF37B47DA4B0178FF1820AF5BECAA41 /* ConfigAppKeyGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyGet.swift; sourceTree = ""; }; - 4EF4B1A501DF20EF9F6DC03F1A0BED3A /* ClosedRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ClosedRange.swift; sourceTree = ""; }; - 4FEFDF236CAAAE266100F711238423E0 /* nRFMeshProvision.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = nRFMeshProvision.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 50A6987D9A91483E9C9842A2FFEAD00A /* ConfigNetKeyUpdate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyUpdate.swift; sourceTree = ""; }; - 50E3D64B04CAD991A9D53D79854F7A6F /* MeshNetwork+Nodes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Nodes.swift"; sourceTree = ""; }; - 518BA6F4ACEEF57F1B0586844E0F8252 /* lhash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lhash.h; path = ios/include/openssl/lhash.h; sourceTree = ""; }; + 3F8E6AAEE1CFFF04FF7F210D5C7377F0 /* ConfigDefaultTtlStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigDefaultTtlStatus.swift; sourceTree = ""; }; + 3FD255DE9CC2A718CDA1614369C2DE71 /* ConfigModelAppBind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelAppBind.swift; sourceTree = ""; }; + 40CFEDAB3996AA204577A1EA3F8F141E /* pem2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pem2.h; path = ios/include/openssl/pem2.h; sourceTree = ""; }; + 42212E4980B79CBF3B3FF92CB0E85766 /* ConfigModelSubscriptionStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionStatus.swift; sourceTree = ""; }; + 4263CE2320DCDCE436A7F76512356ABC /* AddAddressesToFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AddAddressesToFilter.swift; sourceTree = ""; }; + 430E40C0FF85CB3FACFF440F3BAAEAE3 /* ConfigDefaultTtlGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigDefaultTtlGet.swift; sourceTree = ""; }; + 430E66E8094273A9A38C84A2ED79DC0A /* SceneRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRange.swift; sourceTree = ""; }; + 4341776A2847F321EC212A711A151DE0 /* LightLightnessGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessGet.swift; sourceTree = ""; }; + 454690EF6913F4BEADFBE904A83AD6C3 /* x509.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = x509.h; path = ios/include/openssl/x509.h; sourceTree = ""; }; + 45AB77CC1B4A7641A6C3E1CCBF45964E /* BaseGattProxyBearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseGattProxyBearer.swift; sourceTree = ""; }; + 45C0F068C2323BDD90265FE3916AF067 /* RemoveAddressesFromFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RemoveAddressesFromFilter.swift; sourceTree = ""; }; + 4600B8D510228245582FA97C3FDA8C1A /* LightLightnessLinearGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearGet.swift; sourceTree = ""; }; + 46893EB49A5E3BFF3AD893BD854F3F46 /* AccessError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessError.swift; sourceTree = ""; }; + 482A3C1C37236811115C68ABA30A931A /* LightLightnessLastStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLastStatus.swift; sourceTree = ""; }; + 4884D46681B26B05BAD7D3B4A5DECDC6 /* rsa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rsa.h; path = ios/include/openssl/rsa.h; sourceTree = ""; }; + 4885352355ABF803DEDE1B33C3B7C992 /* ConfigNetworkTransmitGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetworkTransmitGet.swift; sourceTree = ""; }; + 4A009CE54B920D289BB0A36AD631F66F /* MeshNetworkManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MeshNetworkManager.swift; path = nRFMeshProvision/Classes/MeshNetworkManager.swift; sourceTree = ""; }; + 4A1618FF967AF6F4B95826CAD36EBAC1 /* SegmentedAccessMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentedAccessMessage.swift; sourceTree = ""; }; + 4A528476CD64288120D1D3570EBD901D /* LightLightnessDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultSet.swift; sourceTree = ""; }; + 4B5C4D61E2BB0FD9A1EBE760D3630E7B /* GenericPowerRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeStatus.swift; sourceTree = ""; }; + 4C32BFAA81ACA270F848AF3588321CEC /* libssl.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libssl.a; path = ios/lib/libssl.a; sourceTree = ""; }; + 4DF30A1C20F72552A97837549C91EE14 /* symhacks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = symhacks.h; path = ios/include/openssl/symhacks.h; sourceTree = ""; }; + 4E5256577DE078126516A653574C2601 /* LightLightnessRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeGet.swift; sourceTree = ""; }; + 4F123257FA76D67A21DF960FE73DF29E /* nRFMeshProvision.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = nRFMeshProvision.debug.xcconfig; sourceTree = ""; }; + 4FF00211FB3CE12EDC81F62BFF3BD3FC /* HeartbeatSubscription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HeartbeatSubscription.swift; sourceTree = ""; }; + 51545409FD1A65E85BF26461955CC451 /* ConfigSIGModelAppGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelAppGet.swift; sourceTree = ""; }; 51BBAA3978BFB1C9BAA0B3563DB01A48 /* Pods-nRFMeshProvision_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-nRFMeshProvision_Example-Info.plist"; sourceTree = ""; }; - 52FC263AF94BB4945735E2B0566073C1 /* LightLightnessLinearGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearGet.swift; sourceTree = ""; }; - 53756E93A95E6AD14FB0A43577386DD6 /* LightCTLGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLGet.swift; sourceTree = ""; }; - 53B9C61F2CDA3980500BB05284E512BA /* ConfigCompositionDataGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigCompositionDataGet.swift; sourceTree = ""; }; - 54166318474ABE72B33B2889738B52B6 /* GenericOnOffSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffSetUnacknowledged.swift; sourceTree = ""; }; - 548B39DF6F19451C85B8A7E3C6C9CE89 /* ConfigModelSubscriptionDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionDelete.swift; sourceTree = ""; }; - 54D46E885849E926E51E34E33D1A5E92 /* ConfigDefaultTtlSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigDefaultTtlSet.swift; sourceTree = ""; }; - 551C02521B09FE0546ACF9740C8AF9FD /* pkcs7.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pkcs7.h; path = ios/include/openssl/pkcs7.h; sourceTree = ""; }; - 552D0D5175110B3B0CA57BB06FCA0491 /* NetworkKey+MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "NetworkKey+MeshNetwork.swift"; sourceTree = ""; }; - 56F4989D082BCF7AF2FB1AA9615B33AD /* md4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = md4.h; path = ios/include/openssl/md4.h; sourceTree = ""; }; - 571972362DDFB200E6688EF31C01D9D2 /* Oob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Oob.swift; sourceTree = ""; }; + 52473EF190638F8B70BB7B106E956029 /* pem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pem.h; path = ios/include/openssl/pem.h; sourceTree = ""; }; + 5409C60ABD4550F300F37E99F1576EC5 /* ConfigGATTProxySet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigGATTProxySet.swift; sourceTree = ""; }; + 5487B0BF4FF46BE147AD05D6692219DF /* LightCTLTemperatureGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureGet.swift; sourceTree = ""; }; + 54A8304ED6C132EF0EE3F6A96BE7CAFC /* LightCTLDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultSet.swift; sourceTree = ""; }; + 5590A91F2AB8E80A34443A3DE54AF329 /* NetworkManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; + 573D11CCD45B2D7C7BB5CFF9DE25E52C /* obj_mac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = obj_mac.h; path = ios/include/openssl/obj_mac.h; sourceTree = ""; }; + 57BFC07AD45778F5C2287ECF3955B0BD /* ProvisioningCapabilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningCapabilities.swift; sourceTree = ""; }; 57E13D43B8F7A9E973DAAF745860C9AA /* Pods-nRFMeshProvision_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-nRFMeshProvision_Tests-acknowledgements.plist"; sourceTree = ""; }; + 57FBC1C848BBB7425F742DFB2E8DE98C /* Scene+Nodes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Scene+Nodes.swift"; sourceTree = ""; }; 58DC9D1A5325334A535FD0B2CC6DE827 /* Pods-nRFMeshProvision_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-nRFMeshProvision_Tests-Info.plist"; sourceTree = ""; }; - 5910BFA2C60F84D519AAE2C0D4410D33 /* ocsp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ocsp.h; path = ios/include/openssl/ocsp.h; sourceTree = ""; }; - 59B7B4B8DC0649A7B15F84C7AAD05CA8 /* SceneRecall.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRecall.swift; sourceTree = ""; }; - 59EFB2A5A275FDC979D1DCBCE8BEA700 /* LightCTLSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLSet.swift; sourceTree = ""; }; - 5A1D94B87B296C5A3D3E48EE4617D476 /* ProvisioningState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningState.swift; sourceTree = ""; }; - 5A32564BCA26A1AC3CFA2623EAEB0E70 /* BaseGattProxyBearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseGattProxyBearer.swift; sourceTree = ""; }; - 5AA16A953EA62C180AAD56CEBE34F524 /* BearerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BearerDelegate.swift; sourceTree = ""; }; - 5B2806D8A55D3AACAC06D351B90FF243 /* crypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto.h; path = ios/include/openssl/crypto.h; sourceTree = ""; }; - 5B2809EDBFAF2D7CFA012EDB6C68DECB /* ssl3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl3.h; path = ios/include/openssl/ssl3.h; sourceTree = ""; }; - 5B97D7D11587FAB3BFA98746E577C93B /* cmac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cmac.h; path = ios/include/openssl/cmac.h; sourceTree = ""; }; - 5CF4B3EED2A9B049C85ACB7A4EBEDFC4 /* LightCTLStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLStatus.swift; sourceTree = ""; }; - 5D1064AE7769CE96C69DAF830939B26B /* Pods_nRFMeshProvision_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_nRFMeshProvision_Tests.framework; path = "Pods-nRFMeshProvision_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 59BECF6C906EF4134A0FF23A6530BC7F /* Security.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Security.swift; sourceTree = ""; }; + 5A026E7E26E6CC90D58F995E4D287D01 /* ConfigLowPowerNodePollTimeoutStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigLowPowerNodePollTimeoutStatus.swift; sourceTree = ""; }; + 5A09EFD81ADC973B8AA1F51E09F5DDD3 /* ConfigModelPublicationVirtualAddressSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationVirtualAddressSet.swift; sourceTree = ""; }; + 5A2B14BE74901244F02B1EA9AE7AC2AD /* MeshAddress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshAddress.swift; sourceTree = ""; }; + 5A4E1FD0EFB3304369BE0CDF99A3B83E /* SceneStoreUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneStoreUnacknowledged.swift; sourceTree = ""; }; + 5AF4B7D64CCE82616BF3A34E77C80A88 /* UUID+Hex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UUID+Hex.swift"; sourceTree = ""; }; + 5B56A5743DFDF7095EA5619D4D3139BE /* LightLightnessRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeSet.swift; sourceTree = ""; }; + 5BC6897145BC96AD4D95DEBDC833AFC6 /* SceneRecall.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRecall.swift; sourceTree = ""; }; + 5BEF8EB470CB77C08B6B4A0CAB72C8F0 /* asn1t.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = asn1t.h; path = ios/include/openssl/asn1t.h; sourceTree = ""; }; + 5C0AADA999641CA0EC874CAE5B354287 /* Model+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Model+Keys.swift"; sourceTree = ""; }; + 5C31489DFDE459F42392C773B7887B32 /* LightHSLSetUnackowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSetUnackowledged.swift; sourceTree = ""; }; + 5C361A99C817A064EF9EF47D2FDD3BEE /* OpenSSLHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OpenSSLHelper.m; sourceTree = ""; }; + 5CB831F04DA9BAFEE7DF154FEFBC9628 /* shim.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = shim.h; path = ios/include/openssl/shim.h; sourceTree = ""; }; + 5D1064AE7769CE96C69DAF830939B26B /* Pods_nRFMeshProvision_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_nRFMeshProvision_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5D189A20A021D3C6024D80E29F839F7B /* LightLightnessLinearSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearSetUnacknowledged.swift; sourceTree = ""; }; + 5D96BE6505E8D1491A3AE2A15DEC7820 /* RangeObject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RangeObject.swift; sourceTree = ""; }; 5DA0C56E010C5B3B34895D46C778D56A /* Pods-nRFMeshProvision_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-nRFMeshProvision_Example.modulemap"; sourceTree = ""; }; - 5DF99819328F1E0444EB6A55E4542F55 /* Node+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Keys.swift"; sourceTree = ""; }; - 5F753B2F1B496E312CC509485D9B73A8 /* ProxyConfigurationMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProxyConfigurationMessage.swift; sourceTree = ""; }; - 5F836FBFB07B5CE3E479E76B35548E52 /* LightCTLTemperatureRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeSetUnacknowledged.swift; sourceTree = ""; }; - 5FA685AB6FD4A37A6CC6BABE72CB8511 /* ConfigSIGModelAppList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelAppList.swift; sourceTree = ""; }; - 60773780809048AC8E986E1B2E1075B7 /* SceneDeleteUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneDeleteUnacknowledged.swift; sourceTree = ""; }; - 608942E0B77A5541D732F910E4D92AB6 /* ConfigRelayStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigRelayStatus.swift; sourceTree = ""; }; - 60F03887E49A2E1BC786255F40013721 /* LightHSLHueSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueSetUnacknowledged.swift; sourceTree = ""; }; - 6103853A1B7136C9092BAFC1253532FA /* LowerTransportPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LowerTransportPdu.swift; sourceTree = ""; }; - 618F6FAB91F56A0D8A7DD8CCBF5760FE /* ConfigBeaconGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigBeaconGet.swift; sourceTree = ""; }; - 6237B544B013FE7BEA77BAFB71185AD0 /* SegmentedAccessMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentedAccessMessage.swift; sourceTree = ""; }; - 6261B7319B76EADB97867131FEF9BE4C /* SceneRegisterGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRegisterGet.swift; sourceTree = ""; }; - 637231D1D1F5E36A51DC5B6820E594AF /* GenericPowerLastStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLastStatus.swift; sourceTree = ""; }; - 639F400E3BB98C1DCDF6AF27B881A6AA /* ConfigSIGModelSubscriptionList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelSubscriptionList.swift; sourceTree = ""; }; - 64561A577F5AF24B9C3DCE9D4667546B /* conf_api.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = conf_api.h; path = ios/include/openssl/conf_api.h; sourceTree = ""; }; - 648466E1E96A51C266D40D32FC114E04 /* LightCTLTemperatureSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureSet.swift; sourceTree = ""; }; - 658F26DF09F1F69B194DC98FF3F82EE2 /* MeshStateManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshStateManager.swift; sourceTree = ""; }; - 65C5220EEBD9334D6BC81D0F888EEFE6 /* GattBearerError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GattBearerError.swift; sourceTree = ""; }; - 663E12E415761E3EA80046BF50229916 /* AccessError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessError.swift; sourceTree = ""; }; - 66D23CB075F4F3057F364B5D10EB01CB /* ConfigModelSubscriptionVirtualAddressOverwrite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionVirtualAddressOverwrite.swift; sourceTree = ""; }; - 67CBD965B229300D28125A8C206E9C6B /* opensslconf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = opensslconf.h; path = ios/include/openssl/opensslconf.h; sourceTree = ""; }; - 6859C37A0FDCA6A418DD5C5722EF8F33 /* Group.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Group.swift; sourceTree = ""; }; - 687977F55B48F4CBE2671F023E509ED5 /* ApplicationKey+NetworkKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ApplicationKey+NetworkKey.swift"; sourceTree = ""; }; - 68E75783BCC8B2DCB3C8E9757A41143B /* ConfigAppKeyStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyStatus.swift; sourceTree = ""; }; - 69227A1E733C06F58F4331532535F679 /* GenericLevelStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelStatus.swift; sourceTree = ""; }; - 69FD466B7D6A76C45BA8E857F7FAD9B4 /* MeshUUID.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshUUID.swift; sourceTree = ""; }; + 5E6B1F4760DB963DFF72B47134DBF69A /* Publish.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Publish.swift; sourceTree = ""; }; + 5EA95B9804BA6F660A4010B60E25D958 /* GenericBatteryGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericBatteryGet.swift; sourceTree = ""; }; + 5EB7525D191990221D4900FE9247705F /* ConfigNetKeyUpdate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyUpdate.swift; sourceTree = ""; }; + 5EE159560F671302D998BD653389CA2B /* AccessPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessPdu.swift; sourceTree = ""; }; + 5EF01D69CF0FC06A5AAFF454AADB0FA4 /* CompanyIdentifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompanyIdentifier.swift; sourceTree = ""; }; + 5F1EAC28DEA6267500B3B56A25EB453E /* pqueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pqueue.h; path = ios/include/openssl/pqueue.h; sourceTree = ""; }; + 5F8C507C97C8606628374BCBD36DCFAF /* ConfigGATTProxyStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigGATTProxyStatus.swift; sourceTree = ""; }; + 5FB853532AA33FFA03211994D88A34C4 /* opensslconf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = opensslconf.h; path = ios/include/openssl/opensslconf.h; sourceTree = ""; }; + 5FD78B3F8DFAB955F17ABBD649BB473E /* GenericOnPowerUpGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpGet.swift; sourceTree = ""; }; + 6039A842FCD1D5F1FD0A03BF1714B614 /* FilterStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = FilterStatus.swift; sourceTree = ""; }; + 60F659933A0EDC3406DBE1AAF1B30F10 /* OpenSSL-Universal.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "OpenSSL-Universal.release.xcconfig"; sourceTree = ""; }; + 616C1D2483DBD4B539C2501049B88E6E /* UpperTransportLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UpperTransportLayer.swift; sourceTree = ""; }; + 617C71C82DDE824525F163BF38BA747B /* GenericPowerLastGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLastGet.swift; sourceTree = ""; }; + 617DCFF3EA5F507667EE331823E9A4C5 /* LightCTLStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLStatus.swift; sourceTree = ""; }; + 627B469D265D2DB083EC47FDD12EF87B /* LightLightnessRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeStatus.swift; sourceTree = ""; }; + 6307DF621D131225F793C80651768EB7 /* GenericPowerDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefaultSet.swift; sourceTree = ""; }; + 633BF3763BC4E3B8D3C37CC1A55BE59E /* GenericDefaultTransitionTimeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeGet.swift; sourceTree = ""; }; + 635EEE83E4585FE1C9B74161BFEC45E7 /* ConfigRelaySet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigRelaySet.swift; sourceTree = ""; }; + 63F04204BC27CBF295635C3BA1837B6B /* MeshLoggerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshLoggerDelegate.swift; sourceTree = ""; }; + 646C0C57E8296162EE0C512355696EA3 /* ConfigLowPowerNodePollTimeoutGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigLowPowerNodePollTimeoutGet.swift; sourceTree = ""; }; + 64CF22409E6C51CC320C000914BF8FF6 /* Group.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Group.swift; sourceTree = ""; }; + 64E2423912C2848A893C2B9D92F63EC2 /* LightLightnessLinearStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearStatus.swift; sourceTree = ""; }; + 65340DBA3A79A084E1B53BBC399D2A1E /* ExportConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExportConfiguration.swift; path = nRFMeshProvision/Classes/ExportConfiguration.swift; sourceTree = ""; }; + 655C312DA6FA77AC8F085F361C19D840 /* buffer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = buffer.h; path = ios/include/openssl/buffer.h; sourceTree = ""; }; + 65853B7D96D4EFB317A33C89B8947319 /* ConfigNetKeyAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyAdd.swift; sourceTree = ""; }; + 65C7FA8A8B0E4F07B49BC7701B5BFD19 /* lhash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lhash.h; path = ios/include/openssl/lhash.h; sourceTree = ""; }; + 6607D3481792C4281C36CC1641798C95 /* ConfigRelayStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigRelayStatus.swift; sourceTree = ""; }; + 66ABCDE961B670BB3FC9ACF1FC2EDD09 /* ConfigHeartbeatSubscriptionStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigHeartbeatSubscriptionStatus.swift; sourceTree = ""; }; + 67304003ED1F9CD50AFFF4C8D22F0C9B /* MeshNetwork+Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Address.swift"; sourceTree = ""; }; + 6740FD536321E2DD1303AA39813DE797 /* GenericLevelStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelStatus.swift; sourceTree = ""; }; + 688EB4111B004AEA4C5F935EB415F850 /* ConfigAppKeyGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyGet.swift; sourceTree = ""; }; + 693B00854E3F9CF8CD807027FED10C49 /* srp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = srp.h; path = ios/include/openssl/srp.h; sourceTree = ""; }; 6A25DF3DB0BCCCB46A2D5E573775C3B1 /* Pods-nRFMeshProvision_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-nRFMeshProvision_Tests.modulemap"; sourceTree = ""; }; - 6B1DB51A481F75CA371CBC17389B0BDB /* buffer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = buffer.h; path = ios/include/openssl/buffer.h; sourceTree = ""; }; - 6B2B87A0BE281989A7802521D93F92C6 /* LightHSLTargetGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLTargetGet.swift; sourceTree = ""; }; - 6B3BFF1E4E33650A00A0D1C0DCBA71AC /* x509_vfy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = x509_vfy.h; path = ios/include/openssl/x509_vfy.h; sourceTree = ""; }; - 6B7D1CC424ECDCC78458895C6C84CFC0 /* MeshLoggerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshLoggerDelegate.swift; sourceTree = ""; }; - 6B844F95AE5B5B580DB1F288F2759C3E /* Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Address.swift; sourceTree = ""; }; - 6B8E92E6E5C22AD1FF4019A14C748B78 /* StepResolution.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StepResolution.swift; sourceTree = ""; }; - 6BDF51397267B17036156922C150C1CC /* UnknownMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnknownMessage.swift; sourceTree = ""; }; - 6BF3C54112737715A3472C3DDEF7D28F /* GenericBatteryStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericBatteryStatus.swift; sourceTree = ""; }; - 6C3C04000E21EAF8AADA9AE4AAC88093 /* LightHSLHueStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueStatus.swift; sourceTree = ""; }; - 6DEE963CC23797F89660C6672FB98075 /* camellia.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = camellia.h; path = ios/include/openssl/camellia.h; sourceTree = ""; }; - 6E737A539ADA1ACF490352BF2E080A58 /* rc2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rc2.h; path = ios/include/openssl/rc2.h; sourceTree = ""; }; - 6E80C142A0FE78DC6F1289615E3022D9 /* KeyRefreshPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyRefreshPhase.swift; sourceTree = ""; }; - 6EFBA9E2D51FD2BF6B5149CABB31044B /* GenericMoveSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericMoveSet.swift; sourceTree = ""; }; - 6FC78BBDBEB3317C7A2C489B0874C531 /* LightCTLDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultSet.swift; sourceTree = ""; }; - 71A5FF666F3314C2DB65B7133B3DE941 /* MeshNetworkDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MeshNetworkDelegate.swift; path = nRFMeshProvision/Classes/MeshNetworkDelegate.swift; sourceTree = ""; }; - 73440C1F1D10DCF1756ED168045CB714 /* UnprovisionedDevice.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnprovisionedDevice.swift; sourceTree = ""; }; - 738D45A1C1CF99298B70FD91C3BF6839 /* ConfigDefaultTtlGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigDefaultTtlGet.swift; sourceTree = ""; }; - 76B5718955C80345B5ABED92FCA9B6AE /* ui.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ui.h; path = ios/include/openssl/ui.h; sourceTree = ""; }; - 76EA37D476259DC133F0D874B66FE43D /* dso.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dso.h; path = ios/include/openssl/dso.h; sourceTree = ""; }; - 770C565E68279DEFEB7CB8E2415A4F26 /* LightHSLDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultSetUnacknowledged.swift; sourceTree = ""; }; - 77A9793E6DC587AA823E0BAA1C75C873 /* ConfigNetworkTransmitGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetworkTransmitGet.swift; sourceTree = ""; }; - 78087E38460D8F6D0646E85E8D4201C3 /* nRFMeshProvision.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = nRFMeshProvision.modulemap; sourceTree = ""; }; - 78BF560DF56001E1733550D309CA1130 /* ConfigAppKeyList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyList.swift; sourceTree = ""; }; - 7A8D942025825F779D6E6468069A88AC /* Node+Provisioner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Provisioner.swift"; sourceTree = ""; }; - 7AE2B87D29A92A272AA7110CC7D1DF8A /* LightLightnessDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultStatus.swift; sourceTree = ""; }; - 7AFF0E742DBE30CEC0164F913795E816 /* MeshNetwork+Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Address.swift"; sourceTree = ""; }; - 7B36BB957A2CCFCEC95290723D744BC5 /* LowerTransportError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LowerTransportError.swift; sourceTree = ""; }; - 7CDB0E8144E43EF595DF7BDBD4292FE1 /* sha.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sha.h; path = ios/include/openssl/sha.h; sourceTree = ""; }; - 7D0E13C6F233D3517B6C68DFB4E89D1E /* GenericPowerLevelSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelSet.swift; sourceTree = ""; }; - 7E77A79A09C188F27D5948B54098582F /* GenericPowerLevelStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelStatus.swift; sourceTree = ""; }; - 7E86EAE7C007F98C915E3D3DD06257A9 /* Element.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Element.swift; sourceTree = ""; }; - 7FC3174CDBDF2103FAD5E759E8F5C5A4 /* GattBearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GattBearer.swift; sourceTree = ""; }; - 815FA66C8A9FE319EFF5B8AD3B5EF9CD /* Provisioner+Ranges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Provisioner+Ranges.swift"; sourceTree = ""; }; - 826F143CFCEEB7462FF9C36E3381075D /* aes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = aes.h; path = ios/include/openssl/aes.h; sourceTree = ""; }; - 8393B32B917BC7FDB4496FEACE354D3E /* comp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = comp.h; path = ios/include/openssl/comp.h; sourceTree = ""; }; - 83C50267A7A0C995893B289591D75AB3 /* SwiftLint.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLint.xcconfig; sourceTree = ""; }; - 8415C6D72A1E8E63C8031230B27DF226 /* LightLightnessDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultSetUnacknowledged.swift; sourceTree = ""; }; - 84395293D1AABED5AD348DC93B30EA16 /* BackgroundTimer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BackgroundTimer.swift; sourceTree = ""; }; - 849972502FF92A80EBB092E354A27997 /* rc4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rc4.h; path = ios/include/openssl/rc4.h; sourceTree = ""; }; - 862BA501FB72D70CEA6B69ECBA0056BB /* MeshNetwork+Ranges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Ranges.swift"; sourceTree = ""; }; - 89FF4A292C289923B79E3A6AFEEDF046 /* LightLightnessRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeSetUnacknowledged.swift; sourceTree = ""; }; - 8C5AE79B048F76019959132156348F31 /* ConfigCompositionDataStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigCompositionDataStatus.swift; sourceTree = ""; }; - 8C94E9B032AA8E4D62FED160E4EA98F5 /* GenericPowerLevelGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelGet.swift; sourceTree = ""; }; - 8D5F4813D73AC7AA00C96E641BC4B65D /* ssl2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl2.h; path = ios/include/openssl/ssl2.h; sourceTree = ""; }; - 8DA000EBAC840A41801D51BFADA2BDA2 /* MeshAddress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshAddress.swift; sourceTree = ""; }; - 8DBD6F7BD10FF05DC55E48D2441D2F1D /* opensslv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = opensslv.h; path = ios/include/openssl/opensslv.h; sourceTree = ""; }; - 8DF53E8D4B3300108937C4AE498A66B1 /* Publish.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Publish.swift; sourceTree = ""; }; - 8E109CFD5F7F1FA64EA027D3C25C7A66 /* MeshNetworkManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MeshNetworkManager.swift; path = nRFMeshProvision/Classes/MeshNetworkManager.swift; sourceTree = ""; }; - 8EA0DD2C386D7D4E38582312A97ED05A /* ui_compat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ui_compat.h; path = ios/include/openssl/ui_compat.h; sourceTree = ""; }; - 8F521C0619E90ABCDB06AA611CD08FC7 /* objects.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = objects.h; path = ios/include/openssl/objects.h; sourceTree = ""; }; - 8F6D17CFFBD81514F68C97BBD1FC1FAD /* asn1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = asn1.h; path = ios/include/openssl/asn1.h; sourceTree = ""; }; + 6B7D7E2F957186176D78E51927E76A2F /* ConfigSIGModelSubscriptionGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelSubscriptionGet.swift; sourceTree = ""; }; + 6C6DF29D6C3418F10A5CFA8B5E30C684 /* objects.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = objects.h; path = ios/include/openssl/objects.h; sourceTree = ""; }; + 6C83C9B870B3054DE4B4ED3DAC009F75 /* ConfigNetKeyStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyStatus.swift; sourceTree = ""; }; + 6C913E7FC0921FCE5F05D1EB975511FB /* ossl_typ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ossl_typ.h; path = ios/include/openssl/ossl_typ.h; sourceTree = ""; }; + 6DDBF68D032C7EB3E470EF81DC784264 /* ControlMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ControlMessage.swift; sourceTree = ""; }; + 6F046F861FB9CD57CDCD951A9F840F54 /* ConfigCompositionDataStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigCompositionDataStatus.swift; sourceTree = ""; }; + 6F7A5E95547B1B38707816CDDD41D269 /* LightCTLTemperatureRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeSet.swift; sourceTree = ""; }; + 700BC3D4DABBFAB1F96E4319ACA1AD2B /* UnknownMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnknownMessage.swift; sourceTree = ""; }; + 702AB8141977DB58656AC01A9CD3E65C /* ConfigBeaconSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigBeaconSet.swift; sourceTree = ""; }; + 70CFA7B3BA308216DDCC444B4F4A82C6 /* Node+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Keys.swift"; sourceTree = ""; }; + 717EF5F786251EFFBB0BF0B895C36B76 /* ConfigModelSubscriptionDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionDelete.swift; sourceTree = ""; }; + 71C63C575EF17A2DBBABDBC060E3B0D9 /* x509_vfy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = x509_vfy.h; path = ios/include/openssl/x509_vfy.h; sourceTree = ""; }; + 71F4788A283F3695C868AA5CA687C429 /* nRFMeshProvision.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = nRFMeshProvision.modulemap; sourceTree = ""; }; + 73CE6E893C4DE00F62F33B3890A19D6D /* cms.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cms.h; path = ios/include/openssl/cms.h; sourceTree = ""; }; + 748680464209070FF8ACE88E07E5B3BF /* ConfigModelSubscriptionAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionAdd.swift; sourceTree = ""; }; + 7601E906317C44AFF808451B65F3F86C /* idea.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = idea.h; path = ios/include/openssl/idea.h; sourceTree = ""; }; + 768E2F5ACE03F27FDE7C12532DA62447 /* GenericPowerLevelSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelSet.swift; sourceTree = ""; }; + 783E3B11336EB68249609BAEF65F7BA3 /* ModelDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ModelDelegate.swift; path = nRFMeshProvision/Classes/ModelDelegate.swift; sourceTree = ""; }; + 786B5EFAE94186E04E78AAD6E0C4B4EC /* LightHSLRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeSet.swift; sourceTree = ""; }; + 78796DAA8875AD3C1716AF6623B6DA70 /* Beacon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Beacon.swift; sourceTree = ""; }; + 78B481BF1A8D895CC20E4A761C92244A /* Key.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Key.swift; sourceTree = ""; }; + 7AC4D47F435009AB25054FB84FC8C596 /* ConfigModelSubscriptionVirtualAddressDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionVirtualAddressDelete.swift; sourceTree = ""; }; + 7B0B0178F7F9FFA0E6683038930CDE90 /* GenericDefaultTransitionTimeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeStatus.swift; sourceTree = ""; }; + 7C04582F1AF96FE5189C0C942643E841 /* GenericDeltaSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDeltaSet.swift; sourceTree = ""; }; + 7C04CB8F9C60CA901FCF79B3A746A78E /* libcrypto.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = libcrypto.a; path = ios/lib/libcrypto.a; sourceTree = ""; }; + 7C67B7C030BA825A4856A7E78D33D6A1 /* GenericPowerLastStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLastStatus.swift; sourceTree = ""; }; + 7EB2873BDECB382E2463189DBE25C044 /* NetworkLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkLayer.swift; sourceTree = ""; }; + 7F4EAF28DF885DE55BE604255E7F5F49 /* seed.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = seed.h; path = ios/include/openssl/seed.h; sourceTree = ""; }; + 7FEF0582C7933A1A1EC5321166035E8F /* nRFMeshProvision-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nRFMeshProvision-umbrella.h"; sourceTree = ""; }; + 81DB13BFE2B83B1CB61D1284C815DD0B /* opensslconf-i386.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-i386.h"; path = "ios/include/openssl/opensslconf-i386.h"; sourceTree = ""; }; + 83648F3CBC31C87BC56E9E01867E9857 /* ConfigModelAppStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelAppStatus.swift; sourceTree = ""; }; + 84350BA16E6D1DCF096DAAD2B45B0162 /* StepResolution.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StepResolution.swift; sourceTree = ""; }; + 84E06300E22F76A537419F0D19EE14C9 /* ProvisioningState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningState.swift; sourceTree = ""; }; + 863113D0AE0433D94DC43C82C14FBD96 /* Element+Models.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Element+Models.swift"; sourceTree = ""; }; + 86532DAF370C0B1071BEFB53940211A8 /* ConfigBeaconGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigBeaconGet.swift; sourceTree = ""; }; + 86AAC82ABC592010DB8AA76A04EEEBAE /* Scenes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Scenes.swift; sourceTree = ""; }; + 86AEFB6ACB89A47827F740E4A8C74C40 /* Element.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Element.swift; sourceTree = ""; }; + 88445F26375AA6A2EF899EF55235BAD4 /* md4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = md4.h; path = ios/include/openssl/md4.h; sourceTree = ""; }; + 8851873E33ADEF60C900C1652B002C0E /* Data+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Data+Keys.swift"; sourceTree = ""; }; + 8893741324EC959B62786D282B759A78 /* LightHSLDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultStatus.swift; sourceTree = ""; }; + 88BBB5682E23D921A6B44339AE02D9FD /* evp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = evp.h; path = ios/include/openssl/evp.h; sourceTree = ""; }; + 89815C7A1C1C1A4C8114F685903178FB /* ProxyConfigurationMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProxyConfigurationMessage.swift; sourceTree = ""; }; + 899A4A4C07F9E166A98356908E6A5671 /* dtls1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dtls1.h; path = ios/include/openssl/dtls1.h; sourceTree = ""; }; + 89BAD858A3AFCAA82ED096D8B4C6CB45 /* LightHSLRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeGet.swift; sourceTree = ""; }; + 8A7F330DF3F19FF08DB2055F8B0CBB3D /* ConfigSIGModelSubscriptionList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelSubscriptionList.swift; sourceTree = ""; }; + 8AF5BA45B207A40265FB04841C04AD6B /* GenericDefaultTransitionTimeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeSetUnacknowledged.swift; sourceTree = ""; }; + 8B2B633AEC71C43C84B96DCE23D7021F /* SetFilterType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SetFilterType.swift; sourceTree = ""; }; + 8C6BE5F3C587F2FCDD5F1A801F253DD0 /* SceneClientHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneClientHandler.swift; sourceTree = ""; }; + 8CD665A3137FFC6F83C5791A15DFA7A2 /* AccessLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessLayer.swift; sourceTree = ""; }; + 8D9ED46CECC39E47DE6C58FBA58FB959 /* LightHSLHueGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueGet.swift; sourceTree = ""; }; + 8DD2CA5E5F9218479A62BEF24E9D789C /* Location.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Location.swift; sourceTree = ""; }; + 8F1FFCB14E8CDD6550C3739C5E9C6ED7 /* tls1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = tls1.h; path = ios/include/openssl/tls1.h; sourceTree = ""; }; + 8F2DF6DF9F41A66EB89698E4A6C02ABA /* GenericOnOffStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffStatus.swift; sourceTree = ""; }; 8FDAEBF0242FD76DFDE2DBF48C7BAF58 /* Pods-nRFMeshProvision_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-nRFMeshProvision_Example-dummy.m"; sourceTree = ""; }; + 900E12CCB7C91C2620232582B2842190 /* stack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stack.h; path = ios/include/openssl/stack.h; sourceTree = ""; }; 90FDAE8B3527574AE4B150B6FE67C582 /* Pods-nRFMeshProvision_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-nRFMeshProvision_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 92A0339B9D22018F3EAAF40708E9C86B /* ConfigNodeReset.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNodeReset.swift; sourceTree = ""; }; - 93AA2E365E150CE856017A2307CDE080 /* engine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = engine.h; path = ios/include/openssl/engine.h; sourceTree = ""; }; - 9426567D0BC2F7931DF60284DB65ACAF /* LightHSLSaturationSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationSet.swift; sourceTree = ""; }; - 945613B52FF3907CD5347F764E0FA387 /* safestack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = safestack.h; path = ios/include/openssl/safestack.h; sourceTree = ""; }; - 956DDEBE1BCC60D07B5B2E29D56BF1DD /* ConfigModelAppUnbind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelAppUnbind.swift; sourceTree = ""; }; - 95E5638447767A8F60F884BDD9C504C6 /* Beacon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Beacon.swift; sourceTree = ""; }; - 972C6FE50A4D1449EC11116960AA29EC /* LightHSLRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeGet.swift; sourceTree = ""; }; - 97896B9201878EBA9DBA0A7AE13092D7 /* Node+Elements.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Elements.swift"; sourceTree = ""; }; - 988CFEC0FDA68C6E21040920A7A614FA /* NodeFeatures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NodeFeatures.swift; sourceTree = ""; }; - 98F58CDCCB224C584D8F86E82CEAF9CA /* err.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = err.h; path = ios/include/openssl/err.h; sourceTree = ""; }; - 9B74254409C6B1864E62EFB2F093C764 /* ProxyFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ProxyFilter.swift; path = nRFMeshProvision/Classes/ProxyFilter.swift; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9E3E67C0820BDE8B7F9767F1600B9D37 /* ConfigVendorModelAppList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelAppList.swift; sourceTree = ""; }; - 9F62F62727752017D58F66604A931908 /* ConfigGATTProxySet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigGATTProxySet.swift; sourceTree = ""; }; - A048E7B07E2B5DB65AC4BCDEC7FD46C8 /* e_os2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = e_os2.h; path = ios/include/openssl/e_os2.h; sourceTree = ""; }; - A0909F38896F8E4BCB3AFD183CC55D9C /* idea.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = idea.h; path = ios/include/openssl/idea.h; sourceTree = ""; }; - A09D380947F5F6A824666F6E5CB69780 /* pkcs12.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pkcs12.h; path = ios/include/openssl/pkcs12.h; sourceTree = ""; }; - A2C616047ED678DA44EEE3CEA2888859 /* ConfigNetworkTransmitSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetworkTransmitSet.swift; sourceTree = ""; }; - A3BE6F574E372EA72089A017B05DE928 /* LightHSLSetUnackowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSetUnackowledged.swift; sourceTree = ""; }; - A3F34939E715377F5A72C10670BEFDE8 /* x509v3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = x509v3.h; path = ios/include/openssl/x509v3.h; sourceTree = ""; }; - A3F8BC4A3934FE8B98F1D76046A8A54C /* ConfigModelPublicationStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationStatus.swift; sourceTree = ""; }; - A400E289342EA6D1D2693E91EBD5FDDB /* ConfigNetKeyAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyAdd.swift; sourceTree = ""; }; + 9110CBE60926DAD974BA9DBE117B406D /* GenericDeltaSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDeltaSetUnacknowledged.swift; sourceTree = ""; }; + 91E6F8AF07D0A8B6DA301BAA7D2A8104 /* PBGattBearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PBGattBearer.swift; sourceTree = ""; }; + 921F8E0DE8BEC10D9EA917D1CBD7B82E /* des_old.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = des_old.h; path = ios/include/openssl/des_old.h; sourceTree = ""; }; + 9331C27B43215366B04AE2A21144D97B /* ui_compat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ui_compat.h; path = ios/include/openssl/ui_compat.h; sourceTree = ""; }; + 93CC9E37275CBA868EF39430ED033928 /* safestack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = safestack.h; path = ios/include/openssl/safestack.h; sourceTree = ""; }; + 94E4B3C078C12B59877CFC4555F55BA4 /* nRFMeshProvision-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nRFMeshProvision-prefix.pch"; sourceTree = ""; }; + 955466EDE2479D5063AAFEFD00808574 /* ripemd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ripemd.h; path = ios/include/openssl/ripemd.h; sourceTree = ""; }; + 96D77A389E0E469A326F4DB389CE2345 /* ApplicationKey+MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ApplicationKey+MeshNetwork.swift"; sourceTree = ""; }; + 9736842361C536D76A5AE196FCFE294D /* opensslconf-arm64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-arm64.h"; path = "ios/include/openssl/opensslconf-arm64.h"; sourceTree = ""; }; + 9773AEAA16553FBA92C4C1E4D87BA002 /* comp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = comp.h; path = ios/include/openssl/comp.h; sourceTree = ""; }; + 992AF82D5D6B3A8B5FDCF51E035BECD5 /* pkcs7.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pkcs7.h; path = ios/include/openssl/pkcs7.h; sourceTree = ""; }; + 9A80A9813E5DC9C72CDC0FAB87FAECF7 /* ecdsa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdsa.h; path = ios/include/openssl/ecdsa.h; sourceTree = ""; }; + 9B8B8A759B4C8B4083854BE887ACA4EB /* ConfigSIGModelAppList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelAppList.swift; sourceTree = ""; }; + 9BBEECD02EDF3BF4C360018F0BC1D4C8 /* UserDefaults+SeqAuth.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UserDefaults+SeqAuth.swift"; sourceTree = ""; }; + 9BDA6F0E696D509E1E5D0B399852E989 /* ConfigVendorModelSubscriptionGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelSubscriptionGet.swift; sourceTree = ""; }; + 9CA67B85919ED9318CE4BC27957BA465 /* ConfigModelSubscriptionOverwrite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionOverwrite.swift; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9F058FC1D5604DB3C01B6F41059E1FB7 /* SceneGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneGet.swift; sourceTree = ""; }; + 9F0B92D846B747F521AB81CF88C8BFF2 /* GenericMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericMessage.swift; sourceTree = ""; }; + 9F831808C2548697125657A813E8F3F7 /* ProvisioningPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningPdu.swift; sourceTree = ""; }; + A05651A28BB0BA1F8F2C99A942758B62 /* md5.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = md5.h; path = ios/include/openssl/md5.h; sourceTree = ""; }; + A13300957A2ABB8DE686A6CAAE5B3814 /* SceneDeleteUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneDeleteUnacknowledged.swift; sourceTree = ""; }; + A1C0C1A07A3AD00DD421CEB8F99F39FC /* GenericMoveSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericMoveSetUnacknowledged.swift; sourceTree = ""; }; A43359B7BDF9C665A7737B649DD79C1E /* Pods-nRFMeshProvision_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-nRFMeshProvision_Example-umbrella.h"; sourceTree = ""; }; - A478BB51CCDD72A1ED0B041BF739BAC6 /* ebcdic.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ebcdic.h; path = ios/include/openssl/ebcdic.h; sourceTree = ""; }; - A587ADA1263AD5C8A4F74E9D01FC8FCC /* IvIndex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = IvIndex.swift; sourceTree = ""; }; - A6563E3670EA10B84AD69E5530EE94F5 /* dtls1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dtls1.h; path = ios/include/openssl/dtls1.h; sourceTree = ""; }; - A77D3BA3E47A21B35072BA4B471B88B0 /* ConfigModelSubscriptionStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionStatus.swift; sourceTree = ""; }; - A7E62745922D4389311F14CA1911B1A2 /* GenericPowerDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefaultSetUnacknowledged.swift; sourceTree = ""; }; - A7EBF677A3BB55780224DA9B6A131D12 /* bio.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bio.h; path = ios/include/openssl/bio.h; sourceTree = ""; }; - A7F547843B03D14B11D408683557B12B /* SceneDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneDelete.swift; sourceTree = ""; }; - A9F3AA907874402F2290FC79A252752B /* LightHSLRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeSetUnacknowledged.swift; sourceTree = ""; }; - AA6F8A9C411146CE356BDEA7E91B9270 /* PBGattBearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PBGattBearer.swift; sourceTree = ""; }; - AB0387B22960ADAE0DF66447D1B9A219 /* opensslconf-i386.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-i386.h"; path = "ios/include/openssl/opensslconf-i386.h"; sourceTree = ""; }; - AB3F98F808787F4809E3E3B28B60C6AC /* GenericPowerRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeSetUnacknowledged.swift; sourceTree = ""; }; - ABA47A2314B513BCAED6289FDDACEF2B /* LightLightnessRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeStatus.swift; sourceTree = ""; }; - AC9A77880EAAB7551F16814BAF689253 /* MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshNetwork.swift; sourceTree = ""; }; - ACABCDE1989494206E89DE1F8D35C54B /* LightLightnessLinearSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearSetUnacknowledged.swift; sourceTree = ""; }; - AE203DB409D68FAC6E3B561FABA79620 /* ConfigNetKeyList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyList.swift; sourceTree = ""; }; - AE9CAA39610F7307C6AF900AB86F7D6D /* MeshMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshMessage.swift; sourceTree = ""; }; - B0572AE881F56C0C29C9C5B16C71B2CA /* pem2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pem2.h; path = ios/include/openssl/pem2.h; sourceTree = ""; }; - B12068F54B27B191B1F5F4ADA0145EE5 /* ConfigNodeResetStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNodeResetStatus.swift; sourceTree = ""; }; - B21D2D5515F691DBF664CD396187FCC8 /* LightLightnessLinearStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearStatus.swift; sourceTree = ""; }; - B22C6574E40AB34D5D5C85955206F403 /* LightLightnessDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultSet.swift; sourceTree = ""; }; - B2BB347089F5440DBF0B3C14C0825396 /* Security.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Security.swift; sourceTree = ""; }; - B35CBCE958F3282E861FC90FD558A87A /* ConfigModelPublicationSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationSet.swift; sourceTree = ""; }; - B3BB8A2DF7DD75D205A72EF7E214C6A2 /* BeaconPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BeaconPdu.swift; sourceTree = ""; }; - B3BF6054FDAC3A9ECD9BA0B63B5D3125 /* ConfigNetKeyStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyStatus.swift; sourceTree = ""; }; - B3D3F336EC35DE66420FEB21AFBC9FD9 /* ConfigRelaySet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigRelaySet.swift; sourceTree = ""; }; - B44819F3C3283F02F92CB912FA489CB3 /* opensslconf-armv7s.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-armv7s.h"; path = "ios/include/openssl/opensslconf-armv7s.h"; sourceTree = ""; }; - B484DCB831B756BC13A8FDC08209CF0E /* LightCTLTemperatureRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeSet.swift; sourceTree = ""; }; - B4C001B7D2FB9649EC19C565872AF0D8 /* nRFMeshProvision.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = nRFMeshProvision.framework; path = nRFMeshProvision.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B5438BAACE142F3554AB28CA47CF1BB0 /* MeshNetwork+Provisioner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Provisioner.swift"; sourceTree = ""; }; - B5DF4ED14A1420B98112771A9AF1AAD1 /* LightLightnessRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeSet.swift; sourceTree = ""; }; - B5F6C63209ACE2CAD63D9D936C8D0E83 /* ConfigAppKeyAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyAdd.swift; sourceTree = ""; }; - B623887027B125E6CBEF90AA69CC6882 /* SecureNetworkBeacon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SecureNetworkBeacon.swift; sourceTree = ""; }; - B68CFD6D659AA0C80CC0BD9E9128FB73 /* ConfigFriendSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigFriendSet.swift; sourceTree = ""; }; - B7981CF0EAB038F85C31F56374AE26E7 /* LightCTLTemperatureGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureGet.swift; sourceTree = ""; }; - B828C4260D655858ED7E3FE6BFE0D890 /* LightCTLDefaultGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultGet.swift; sourceTree = ""; }; - B84F8EB7D50D67F22FEB32EC3374ECD6 /* LightHSLSaturationSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationSetUnacknowledged.swift; sourceTree = ""; }; + A4BE0B1A335DC2D7C78C1D8A8E43E99B /* ConfigVendorModelSubscriptionList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelSubscriptionList.swift; sourceTree = ""; }; + A4C3C0E2ED409AF99FE89B021A2749B3 /* srtp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = srtp.h; path = ios/include/openssl/srtp.h; sourceTree = ""; }; + A5F1C9EF646A868BA88EE5AD3C953DB1 /* nRFMeshProvision-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "nRFMeshProvision-Info.plist"; sourceTree = ""; }; + A62933CDC8DEE3EC06AC374D4B83EEFC /* Bearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Bearer.swift; sourceTree = ""; }; + A63522AA7576CCEDB831D6843DBA8521 /* Group+MeshNetwork.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Group+MeshNetwork.swift"; sourceTree = ""; }; + A638434BF044CAA27D67194ACDD5A688 /* conf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = conf.h; path = ios/include/openssl/conf.h; sourceTree = ""; }; + A73382CDDD7C7283E7B9C766187A25EE /* ConfigBeaconStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigBeaconStatus.swift; sourceTree = ""; }; + A742788447ABBB1A41B9F06AD2D6C0E3 /* MeshData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshData.swift; sourceTree = ""; }; + A7803B6B4982AC81EFDC5FD3AFC243E8 /* GenericOnPowerUpSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpSet.swift; sourceTree = ""; }; + A7C734431A19A4BCD7259AA120CD9EB3 /* GattBearer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GattBearer.swift; sourceTree = ""; }; + A859841DB4AB11DB7B3543A149F69737 /* ConfigHeartbeatPublicationStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigHeartbeatPublicationStatus.swift; sourceTree = ""; }; + AA02EAB04F52150DA37B147F5B81F6B0 /* AddressRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AddressRange.swift; sourceTree = ""; }; + AC193B48BBE76B8B26FDCAED9C6968EC /* krb5_asn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = krb5_asn.h; path = ios/include/openssl/krb5_asn.h; sourceTree = ""; }; + AD75BFAD8E25AEC208C6A0810227EDC7 /* MeshMessageError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshMessageError.swift; sourceTree = ""; }; + AD7E094DC5C92CAB627A13965A1E0856 /* ConfigFriendSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigFriendSet.swift; sourceTree = ""; }; + ADEF1335E8E050B1868AF7CC386D6EF5 /* IvIndex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = IvIndex.swift; sourceTree = ""; }; + B1E50E1D8743786CAB553B7AECD34037 /* MeshNodeEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshNodeEntry.swift; sourceTree = ""; }; + B2440A05305925E74EE6CFBFAF8DE019 /* ConfigCompositionDataGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigCompositionDataGet.swift; sourceTree = ""; }; + B3B4B5C6095D94B29E3D26B82CB9F0DC /* Element+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Element+Keys.swift"; sourceTree = ""; }; + B4C001B7D2FB9649EC19C565872AF0D8 /* nRFMeshProvision.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = nRFMeshProvision.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B514C6C630BB86F20391C17ECD1B099F /* LightHSLGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLGet.swift; sourceTree = ""; }; + B5196C7F6E7C27B3BBF4A0533308E120 /* MeshStateManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshStateManager.swift; sourceTree = ""; }; + B58C430B47AC2826C69508926607FF65 /* GenericLevelSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelSetUnacknowledged.swift; sourceTree = ""; }; + B601630F004DF2100FCD042A24471954 /* LightHSLRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeStatus.swift; sourceTree = ""; }; + B760C868552B51D62C5AB60E11053122 /* ConfigModelPublicationGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationGet.swift; sourceTree = ""; }; + B7AEA7035CF7252E74909BD2578FE6D1 /* UnprovisionedDevice.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnprovisionedDevice.swift; sourceTree = ""; }; + B7BF3689CACBA6DE1EA34A02C7C39EE7 /* LightCTLTemperatureRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeStatus.swift; sourceTree = ""; }; + B801E361EF9C76ED27F0D151765C43C7 /* LightCTLSetUnackowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLSetUnackowledged.swift; sourceTree = ""; }; + B86777731FF05E6F236B7CEC7975BA1C /* Node.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Node.swift; sourceTree = ""; }; + B8A04A8DFDD6D967828E76FE2F334930 /* GenericLevelGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelGet.swift; sourceTree = ""; }; + B9C45743916C8265483EEEF05FDE15F8 /* SceneDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneDelete.swift; sourceTree = ""; }; B9D04B533177E6D6318ED83EE13C71AC /* Pods-nRFMeshProvision_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRFMeshProvision_Tests.release.xcconfig"; sourceTree = ""; }; - BA5CF2529EA2E461ECA971FAF21AB9B9 /* srp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = srp.h; path = ios/include/openssl/srp.h; sourceTree = ""; }; - BA625D3C261369DA6CF17A01A60B2711 /* ConfigAppKeyDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyDelete.swift; sourceTree = ""; }; - BB8BCE0461EB3E09617551F05961D382 /* nRFMeshProvision.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = nRFMeshProvision.xcconfig; sourceTree = ""; }; - BBA2CDED6A3599B8FE08E7F52C614020 /* UpperTransportLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UpperTransportLayer.swift; sourceTree = ""; }; - BC5BFB1F974B00797F9546B984301F95 /* ConfigAppKeyUpdate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyUpdate.swift; sourceTree = ""; }; + BAC47C1A6E8E4864A4F8C1F9AF229A12 /* err.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = err.h; path = ios/include/openssl/err.h; sourceTree = ""; }; + BADB886E25ECC573130500DCC32BC33F /* Model.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = ""; }; + BAF09E6A361270E7C2465438BE978E3F /* LowerTransportPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LowerTransportPdu.swift; sourceTree = ""; }; + BC01AE02C9CC3A3EEA7262ACB36A3633 /* LightCTLDefaultGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultGet.swift; sourceTree = ""; }; + BC5EB656030DEB92E49C3255DE0A3105 /* Model+Name.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Model+Name.swift"; sourceTree = ""; }; BCC620391E6CEC4900E7C1F315B6144B /* Pods-nRFMeshProvision_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRFMeshProvision_Example.debug.xcconfig"; sourceTree = ""; }; - BD891F189D0CE92F0C2B149017CFA991 /* opensslconf-armv7.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-armv7.h"; path = "ios/include/openssl/opensslconf-armv7.h"; sourceTree = ""; }; - BDE5B13B82E755BB156EB385EDE5E57D /* KeyIndex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyIndex.swift; sourceTree = ""; }; - BE1C76BCBE2D9A73CB79BCDDC4457C1C /* LightCTLDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultSetUnacknowledged.swift; sourceTree = ""; }; - BEE394C1B12977A209AD33A1E721CDD1 /* md5.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = md5.h; path = ios/include/openssl/md5.h; sourceTree = ""; }; - BF2C46F50D9B9E91AE6E9B9CFA36863D /* GenericDefaultTransitionTimeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeStatus.swift; sourceTree = ""; }; - BF89BEE4A2BB2D30065996C90C2248AA /* GenericOnOffSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffSet.swift; sourceTree = ""; }; - C00AFFAEF156231AA2995F0E9BCDC774 /* ecdsa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdsa.h; path = ios/include/openssl/ecdsa.h; sourceTree = ""; }; - C21E604DBF682D1158244522366BC5DB /* ConfigModelSubscriptionVirtualAddressAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionVirtualAddressAdd.swift; sourceTree = ""; }; - C2A194E323C0E28EA51D6D7D29A451A0 /* symhacks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = symhacks.h; path = ios/include/openssl/symhacks.h; sourceTree = ""; }; - C33951985C0BB1C6B4AAAD399735FCCE /* UUID+Hex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UUID+Hex.swift"; sourceTree = ""; }; - C38860760DBFC5062DA9F4ABCDA426FD /* GenericPowerRangeStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeStatus.swift; sourceTree = ""; }; - C388617EBE1E2980DE69677752FE3E7D /* ssl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl.h; path = ios/include/openssl/ssl.h; sourceTree = ""; }; + BCDA10809C2F06861AC05402A13D8503 /* LightLightnessDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultStatus.swift; sourceTree = ""; }; + BD9A993178D2BD55B7FA1695A2078D5A /* GenericPowerRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeSetUnacknowledged.swift; sourceTree = ""; }; + BDBD7224D16A5CEEFFD77F8ACA196ABB /* dso.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dso.h; path = ios/include/openssl/dso.h; sourceTree = ""; }; + BDFAFBBCD533A1C00784C45FF0C99AD3 /* ConfigurationServerHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigurationServerHandler.swift; sourceTree = ""; }; + BE0BB037FBD45F8F275E8EDDCA0738CC /* MeshNetwork+Ranges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Ranges.swift"; sourceTree = ""; }; + BEE8391CDEC7B3BBE2E716F3A891B023 /* Ranges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Ranges.swift; sourceTree = ""; }; + BEEBBC28EA4BE3DC2ED9730D2BB925FD /* LightHSLSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSet.swift; sourceTree = ""; }; + BF2D7985C10F2E7511EBD2885031013C /* ClosedRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ClosedRange.swift; sourceTree = ""; }; + C020C84D5F8DF89F12AA24FE7B481E88 /* ExclusionList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExclusionList.swift; sourceTree = ""; }; + C11A6FC5F3C7F8A250D757953C868036 /* LightCTLTemperatureRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeGet.swift; sourceTree = ""; }; + C18C6422216F1E3697A24148BBAC421D /* LightLightnessSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessSetUnacknowledged.swift; sourceTree = ""; }; + C2CE75CEF148E08F5A90D484ED3B14BA /* blowfish.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = blowfish.h; path = ios/include/openssl/blowfish.h; sourceTree = ""; }; + C3BC3E6859E89A8E1F506B9996B9AF88 /* TransitionTime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TransitionTime.swift; sourceTree = ""; }; C3D98F8EB8135E8C314EE50FD1C8FE7D /* Pods-nRFMeshProvision_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-nRFMeshProvision_Example-acknowledgements.markdown"; sourceTree = ""; }; - C481344D02E205C678C7092C6BC08932 /* ossl_typ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ossl_typ.h; path = ios/include/openssl/ossl_typ.h; sourceTree = ""; }; - C48D89AB80479892C5A41BB09EBE4246 /* des_old.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = des_old.h; path = ios/include/openssl/des_old.h; sourceTree = ""; }; - C49E697491769CD10D65DBA103F18C15 /* NetworkManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; - C4B6C0195405B1889EB8028C9A52E290 /* srtp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = srtp.h; path = ios/include/openssl/srtp.h; sourceTree = ""; }; - C4D6F13A30B64D8F2AC4FBC2A83AE73C /* SceneGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneGet.swift; sourceTree = ""; }; - C50D88BEC69D7479417530A13EEC36EB /* SceneStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneStore.swift; sourceTree = ""; }; - C5D3C2E48A8CEAAEB1E6DF00B2689E1A /* txt_db.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = txt_db.h; path = ios/include/openssl/txt_db.h; sourceTree = ""; }; - C5F4441C288DF3384A08FDD14D31102E /* LightCTLDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultStatus.swift; sourceTree = ""; }; - CC89C81370A46A43B5120A337F695FCF /* modes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = modes.h; path = ios/include/openssl/modes.h; sourceTree = ""; }; + C4D135C6D7B69488F92FD3A60DE234F8 /* OpenSSLHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OpenSSLHelper.h; sourceTree = ""; }; + C6ECE47FC76D77F01276E57665C19E67 /* ConfigHeartbeatSubscriptionGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigHeartbeatSubscriptionGet.swift; sourceTree = ""; }; + C7A927FC28850BA3116592BFC680EB7C /* ConfigModelSubscriptionDeleteAll.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionDeleteAll.swift; sourceTree = ""; }; + C7EBA7F5C53E4F865A69524A5A7F721D /* txt_db.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = txt_db.h; path = ios/include/openssl/txt_db.h; sourceTree = ""; }; + C8393A20734DC4DCAA7CBDA0713418E2 /* MeshState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshState.swift; sourceTree = ""; }; + C8809C3B3D672CC4CEF2759C0CFC01C7 /* opensslv.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = opensslv.h; path = ios/include/openssl/opensslv.h; sourceTree = ""; }; + C990CF383F64CA9D5D9DF253A9190204 /* ConfigVendorModelAppGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelAppGet.swift; sourceTree = ""; }; + CA00CF3D55CC760EC0F7423345EB8851 /* mdc2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mdc2.h; path = ios/include/openssl/mdc2.h; sourceTree = ""; }; + CB168D95937E27E4684CA3C53D1FE4FE /* camellia.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = camellia.h; path = ios/include/openssl/camellia.h; sourceTree = ""; }; + CBB22AA9C6AB1EC8EE50CB6FF09BF517 /* ProvisioningManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningManager.swift; sourceTree = ""; }; + CC59CD173C690ADE3B9C9A324DEE74F3 /* ProvisioningData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningData.swift; sourceTree = ""; }; + CCA370595AFDDF0A2CB2B4E497F61F51 /* cast.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cast.h; path = ios/include/openssl/cast.h; sourceTree = ""; }; + CD1CDFB2A30CA63D7579659413584DF1 /* GenericPowerRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerRangeSet.swift; sourceTree = ""; }; + CDCA89FC5406C6D97E0013C95C4AF81D /* ConfigNodeResetStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNodeResetStatus.swift; sourceTree = ""; }; + CE174073358AA65452FC46AD1365D019 /* LightCTLGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLGet.swift; sourceTree = ""; }; + CE2EE26B7267441D38DF5E9DD785BC80 /* SceneRecallUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRecallUnacknowledged.swift; sourceTree = ""; }; + CE96C4753C898D3F9F3EA768D2AFF3D6 /* Algorithm.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Algorithm.swift; sourceTree = ""; }; CEAC6C669DF2BB23730633F28084C3E0 /* Pods-nRFMeshProvision_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-nRFMeshProvision_Tests-umbrella.h"; sourceTree = ""; }; - CF8A2A51FFE8A3AC73F007F4776B5873 /* MeshConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshConstants.swift; sourceTree = ""; }; - CFAED0F4E2313A19604FA3FFC975483B /* KeySet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeySet.swift; sourceTree = ""; }; - D0B950D4B4DE30E5015690DE2D47B9B8 /* LightHSLRangeSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLRangeSet.swift; sourceTree = ""; }; - D208C81B50773AEC8D0D73B6A10FCC38 /* SegmentedControlMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentedControlMessage.swift; sourceTree = ""; }; - D2160331838FF3FF116BE31DBBB57C6E /* AccessMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessMessage.swift; sourceTree = ""; }; - D24B5B4903EDD1522601CC27B38BFF68 /* RemoveAddressesFromFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RemoveAddressesFromFilter.swift; sourceTree = ""; }; - D276E093A2F982265C747D3AC51C9ECF /* NetworkKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkKey.swift; sourceTree = ""; }; - D293E520C8600EAEE5D7CA4BCCB73D25 /* LightHSLGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLGet.swift; sourceTree = ""; }; - D49FDD60B702BE67743F9112272A5795 /* OnPowerUp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = OnPowerUp.swift; sourceTree = ""; }; - D4C4ABEEA989899065D8A6E85D1D92C6 /* Model+Keys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Model+Keys.swift"; sourceTree = ""; }; - D60EDD660A00E98527FD5816D1DDB490 /* GenericOnPowerUpSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpSetUnacknowledged.swift; sourceTree = ""; }; - D67BCF31204B04969671509DCBCF0EB1 /* krb5_asn.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = krb5_asn.h; path = ios/include/openssl/krb5_asn.h; sourceTree = ""; }; - D796DFA4C046B9BF34622046781D3A60 /* Node.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Node.swift; sourceTree = ""; }; - D7BA6B8010CF5DAC5D1BF00392EB6E69 /* ConfigModelAppBind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelAppBind.swift; sourceTree = ""; }; - D8FB991798342ED707DB2DBFE9FFD429 /* LightLightnessStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessStatus.swift; sourceTree = ""; }; - D94C8F82C09E3C8F40F429919075B9DC /* Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = ""; }; - D9615C5BBC4301AB727216D096AE9C58 /* LightHSLDefaultSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultSet.swift; sourceTree = ""; }; - DB4E39A1E7F2D8CFD8BE03EA7324593C /* LightHSLDefaultStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultStatus.swift; sourceTree = ""; }; - DBD783567BEDA58F5EC6B6F50CBFFD9D /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = nRFMeshProvision/Classes/Storage.swift; sourceTree = ""; }; - DDA0290665462AE283BC316F672EE9DC /* GenericMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericMessage.swift; sourceTree = ""; }; - DDA8AD193F58606C6456AE7C8D8AEACC /* ConfigFriendGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigFriendGet.swift; sourceTree = ""; }; - DE64D6CDA415A9A8395BC138A239EB23 /* ConfigSIGModelSubscriptionGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelSubscriptionGet.swift; sourceTree = ""; }; - DEAE4A7E9B9747845296457E61A1A504 /* VendorMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VendorMessage.swift; sourceTree = ""; }; - E12469E56119E9A06B0AF3B2DBE947A6 /* SceneStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneStatus.swift; sourceTree = ""; }; - E1F6E718917863D448F027C7131A1BA6 /* HeartbeatMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HeartbeatMessage.swift; sourceTree = ""; }; - E244993E5A0E30B5A48FFEA7E13F47EC /* Node+Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Node+Address.swift"; sourceTree = ""; }; + CF2101D850D957D91FE76046FC7A23EA /* LightLightnessDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultSetUnacknowledged.swift; sourceTree = ""; }; + D0CCE9EB50578062BD5293E84C485596 /* LightHSLHueSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueSet.swift; sourceTree = ""; }; + D17591E6D83B6F285B709C52824A11EB /* LightHSLSaturationSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationSetUnacknowledged.swift; sourceTree = ""; }; + D3027FF28A9C2BFFEE81166BF7EFB4B6 /* ConfigNetKeyList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyList.swift; sourceTree = ""; }; + D33245484BCFC973E8D3F477700F7EC6 /* modes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = modes.h; path = ios/include/openssl/modes.h; sourceTree = ""; }; + D3F618692DE7365A5628BDAEE4754E39 /* ApplicationKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ApplicationKey.swift; sourceTree = ""; }; + D5474829A698C5D44E6B126417C2BBA4 /* GenericOnOffSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnOffSetUnacknowledged.swift; sourceTree = ""; }; + D56357DB1DB2398979F6C74CCD4D46A5 /* LightLightnessRangeSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessRangeSetUnacknowledged.swift; sourceTree = ""; }; + D60FE2DE2644A676D28BA84A9E45AD38 /* pkcs12.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = pkcs12.h; path = ios/include/openssl/pkcs12.h; sourceTree = ""; }; + D857568D92F1FBEC08F9A5DF684B72CF /* LightHSLHueSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLHueSetUnacknowledged.swift; sourceTree = ""; }; + D9208006DB642A88419614FBEBEBEAE5 /* ConfigAppKeyStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyStatus.swift; sourceTree = ""; }; + D997141E7D47601A5C290C0BCBDAFA24 /* MessageHandle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageHandle.swift; sourceTree = ""; }; + D9BCDDCFF6EC8409E6433BF2B1D9331B /* ConfigKeyRefreshPhaseGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigKeyRefreshPhaseGet.swift; sourceTree = ""; }; + D9BF7F38A18BCE41FD33E57EE32E38BE /* engine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = engine.h; path = ios/include/openssl/engine.h; sourceTree = ""; }; + D9FC721A09B8E304F4F35960D3668571 /* x509v3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = x509v3.h; path = ios/include/openssl/x509v3.h; sourceTree = ""; }; + DA0B0A43CBE8CFA9306868214DF651FC /* GenericPowerDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefaultSetUnacknowledged.swift; sourceTree = ""; }; + DA13E311C7A590245DDE0F92794976D6 /* MeshNetwork+Groups.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Groups.swift"; sourceTree = ""; }; + DA2CB9EF22098378AD53FC365E116F70 /* ConfigDefaultTtlSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigDefaultTtlSet.swift; sourceTree = ""; }; + DA36A093350F13354DD376D6C2EBCF78 /* opensslconf-armv7s.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-armv7s.h"; path = "ios/include/openssl/opensslconf-armv7s.h"; sourceTree = ""; }; + DAA86313241B1164B0C0DE70D5DD3AFE /* ConfigAppKeyDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigAppKeyDelete.swift; sourceTree = ""; }; + DAD00A7184EB36266E55D8BFADDFB5F1 /* LightCTLTemperatureSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureSet.swift; sourceTree = ""; }; + DB79A07FC2C0F070D83720D365B9F1C3 /* Data+Hex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Data+Hex.swift"; sourceTree = ""; }; + DBF056508210287CF307DF2B23DE499E /* ConfigMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigMessage.swift; sourceTree = ""; }; + DCBBA859DCA57C257699D2D1D45FE61F /* LightCTLDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLDefaultSetUnacknowledged.swift; sourceTree = ""; }; + DD3DB5E9AA3D62916415CE0FE3CC278B /* ApplicationKeys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ApplicationKeys.swift; sourceTree = ""; }; + DDAF0A018CC882A972EAF20FDF71259B /* GenericBatteryStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericBatteryStatus.swift; sourceTree = ""; }; + DDB0CC68D6B319CE9846AA9C2DCDAEB8 /* KeyRefreshPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyRefreshPhase.swift; sourceTree = ""; }; + DF67E965129C7DB236D84E0C5727843F /* ConfigModelSubscriptionVirtualAddressAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionVirtualAddressAdd.swift; sourceTree = ""; }; + DFE1AEED42610AB1208D72E52D3FF8EE /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = nRFMeshProvision/Classes/Storage.swift; sourceTree = ""; }; + E1FB77561491E27CC5A3BFA89982FD8C /* SceneRegisterStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRegisterStatus.swift; sourceTree = ""; }; + E23B564BAE419CA928B3757975169B4B /* des.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = des.h; path = ios/include/openssl/des.h; sourceTree = ""; }; + E274D961F6E45E659CE13EC3216B1D1B /* LightHSLTargetStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLTargetStatus.swift; sourceTree = ""; }; E29831B6CFFC923E405B03ECA531E148 /* Pods-nRFMeshProvision_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRFMeshProvision_Example.release.xcconfig"; sourceTree = ""; }; - E2F46DA9CDBB30F4D68439F11161A93B /* nRFMeshProvision-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nRFMeshProvision-prefix.pch"; sourceTree = ""; }; - E348515643BF0358FFE7C6C67E0BB3C7 /* Provisioner+Node.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Provisioner+Node.swift"; sourceTree = ""; }; - E367B2FA244D85513F82419D1A4322DC /* MeshNodeEntry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshNodeEntry.swift; sourceTree = ""; }; - E384C75BA2A25950917EF25F7E59C53E /* SegmentedMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentedMessage.swift; sourceTree = ""; }; - E3878D06CDEC359A85D65E80FA3A8DA5 /* GenericBatteryGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericBatteryGet.swift; sourceTree = ""; }; - E390BC56905E08C4279647F0E1617E57 /* LowerTransportLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LowerTransportLayer.swift; sourceTree = ""; }; - E3C934468025D62648CC48351E370E1F /* OptionSet+Data.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "OptionSet+Data.swift"; sourceTree = ""; }; - E466F5200102C350F89EBF923FD9F922 /* AccessPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessPdu.swift; sourceTree = ""; }; - E4C72DDB355FDAEC083B50197A36D7EC /* TransitionTime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TransitionTime.swift; sourceTree = ""; }; - E5295A7707ABC1FCE73976E05C9559C9 /* LightCTLTemperatureRangeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureRangeGet.swift; sourceTree = ""; }; - E6EE313D5D9DAAD2918E295BF7B8145C /* SceneRecallUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRecallUnacknowledged.swift; sourceTree = ""; }; - E810AA66B017B8FE221FE9EEC02B83AA /* LightCTLTemperatureSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLTemperatureSetUnacknowledged.swift; sourceTree = ""; }; - E8F94FB58A0EF115400523384D6D3A2A /* asn1_mac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = asn1_mac.h; path = ios/include/openssl/asn1_mac.h; sourceTree = ""; }; - E94BD40809CD5F9068BDE796E112DAF0 /* dh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dh.h; path = ios/include/openssl/dh.h; sourceTree = ""; }; - E9A23B5651B26F62AE1AF1EB8FB93534 /* ConfigRelayGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigRelayGet.swift; sourceTree = ""; }; - EADD335D05EEF7CC0F7200355C039EAE /* SceneRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneRange.swift; sourceTree = ""; }; - EB9431B7CAF8B082609FAED976C38656 /* ConfigSIGModelAppGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigSIGModelAppGet.swift; sourceTree = ""; }; - EB96E52D31B652983DAD638B8A89ECD9 /* LightLightnessDefaultGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultGet.swift; sourceTree = ""; }; - ECA06684FE347E31397DB2C0FFEDB631 /* LightLightnessSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessSetUnacknowledged.swift; sourceTree = ""; }; - ED62BDE7DD6AC352ACAEBD1B9D38174E /* LightLightnessLinearSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearSet.swift; sourceTree = ""; }; - EDFEBAFAF29F3979FE4131FACF2CAB20 /* ConfigModelPublicationGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelPublicationGet.swift; sourceTree = ""; }; - EE9BB762BB289CC2D314C3D493D063EB /* LightHSLSaturationGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLSaturationGet.swift; sourceTree = ""; }; + E45439292464F2FA7A648AEC405B2666 /* conf_api.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = conf_api.h; path = ios/include/openssl/conf_api.h; sourceTree = ""; }; + E49294E97502AB9F1DF36C46487E1CC4 /* hmac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hmac.h; path = ios/include/openssl/hmac.h; sourceTree = ""; }; + E4BB14115260B8103F56E37CF09317EB /* Provisioner+Ranges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Provisioner+Ranges.swift"; sourceTree = ""; }; + E59DC204BB60506D29298A0F1EB8AA0D /* ProxyFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ProxyFilter.swift; path = nRFMeshProvision/Classes/ProxyFilter.swift; sourceTree = ""; }; + E5AB6D8291E6E63CF9E0996DC1871DC8 /* Int+Hex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Int+Hex.swift"; sourceTree = ""; }; + E6852408D02E509AF8434F400283B459 /* NodeFeatures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NodeFeatures.swift; sourceTree = ""; }; + E6BCD9C04758D3DDFB89FF8BFB1DF5FE /* ConfigModelAppUnbind.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelAppUnbind.swift; sourceTree = ""; }; + E719A748E0BD6CC54E70695DC274E116 /* GenericOnPowerUpStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericOnPowerUpStatus.swift; sourceTree = ""; }; + E79AE1B74FE67EA0F5F5B9718CE41CF2 /* SceneStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneStore.swift; sourceTree = ""; }; + E7BD78DFE1A2BD03077370C15E974692 /* nRFMeshProvision.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = nRFMeshProvision.release.xcconfig; sourceTree = ""; }; + E87793E250CBB5C19FF36E9DFCEEA939 /* MeshConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshConstants.swift; sourceTree = ""; }; + E98FEBD3CE4F142EC9E7585C633CEC71 /* LightLightnessSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessSet.swift; sourceTree = ""; }; + E9E1304AE8005354EFE3ABEA0635DD1C /* opensslconf-armv7.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-armv7.h"; path = "ios/include/openssl/opensslconf-armv7.h"; sourceTree = ""; }; + EB8CF5CF29F5A682D8089A71AA3CB5BC /* ssl23.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ssl23.h; path = ios/include/openssl/ssl23.h; sourceTree = ""; }; + EBE68C5FFB47CCA00621F63ED1F75CE8 /* Provisioner+Node.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Provisioner+Node.swift"; sourceTree = ""; }; + EC9E218D9B07768716C55663353D320E /* LightCTLSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightCTLSet.swift; sourceTree = ""; }; + ECBAC663564AE92904E03B16744BAB7C /* ocsp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ocsp.h; path = ios/include/openssl/ocsp.h; sourceTree = ""; }; + ED93C5490BE270D91CF24847CEC5D105 /* LightLightnessDefaultGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessDefaultGet.swift; sourceTree = ""; }; + EDE8A5B21C1C59A51A6E40F001F1AF90 /* GenericLevelSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelSet.swift; sourceTree = ""; }; + EE90E8A2965A705EB89DBB3C41B323A3 /* KeyIndex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyIndex.swift; sourceTree = ""; }; EE9E8C1F983733637663B926CB29ECE0 /* Pods-nRFMeshProvision_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-nRFMeshProvision_Tests.debug.xcconfig"; sourceTree = ""; }; - F05AE4080979DB2EF426A97A5C5D43CD /* ConfigNetKeyGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyGet.swift; sourceTree = ""; }; - F0A484173BF1AD613FA68783E90CE320 /* stack.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stack.h; path = ios/include/openssl/stack.h; sourceTree = ""; }; - F1466ECD8D86EBDAB1B7008F2F78EC6E /* UnprovisionedDeviceBeacon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UnprovisionedDeviceBeacon.swift; sourceTree = ""; }; - F441BBC830863D5F3A2610B1AA8DC101 /* tls1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = tls1.h; path = ios/include/openssl/tls1.h; sourceTree = ""; }; - F4D98E1FA536E71C09628A29BB18777A /* ConfigModelAppStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelAppStatus.swift; sourceTree = ""; }; - F650AAF03B082E50EC94C5561AC5EC25 /* UpperTransportPdu.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UpperTransportPdu.swift; sourceTree = ""; }; - F66CE89BEF807338ACBD94C3A9A4B3A6 /* Model.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = ""; }; - F68851D4D5EABCE49C2D4B226DD6FA87 /* Key.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Key.swift; sourceTree = ""; }; - F6D415230012F59B92D0D09CA4401407 /* cms.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cms.h; path = ios/include/openssl/cms.h; sourceTree = ""; }; - F805FE9A45ABDC9FECC32438D95E79D3 /* SceneStoreUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SceneStoreUnacknowledged.swift; sourceTree = ""; }; - F966405A6EF0BAF1CE2106373EE994E3 /* Ranges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Ranges.swift; sourceTree = ""; }; - F9A84F6B8F538F01388759FD9DA3D61C /* GenericDefaultTransitionTimeGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeGet.swift; sourceTree = ""; }; - FA13E8BF02F4C19B33D8D137931D830A /* ec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ec.h; path = ios/include/openssl/ec.h; sourceTree = ""; }; - FAF8A6A3436D61C4695468AC100A4221 /* GattBearerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GattBearerDelegate.swift; sourceTree = ""; }; - FC09084034668EB1211CF503E4664E91 /* MeshMessageError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshMessageError.swift; sourceTree = ""; }; - FCBACD939FD63517EA508FD869BC86E3 /* PublicKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PublicKey.swift; sourceTree = ""; }; - FDD02B804C2CE7A7E5E3B45EDB82CC03 /* GenericLevelSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericLevelSetUnacknowledged.swift; sourceTree = ""; }; - FDDA435474B0D4CD8F9F37D3A0F28A24 /* ConfigModelSubscriptionAdd.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigModelSubscriptionAdd.swift; sourceTree = ""; }; - FE8DF7D66C473B0DCF571AB14D3A4B86 /* ProvisioningData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProvisioningData.swift; sourceTree = ""; }; - FF03B9DCCC524E1C6F89EA356BD435C4 /* seed.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = seed.h; path = ios/include/openssl/seed.h; sourceTree = ""; }; - FF21D731DD85147D2FDC7642BA0A001D /* opensslconf-arm64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "opensslconf-arm64.h"; path = "ios/include/openssl/opensslconf-arm64.h"; sourceTree = ""; }; - FFA375F24C3AB6F4BC1FF8A3AA33EB45 /* ConfigVendorModelSubscriptionList.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigVendorModelSubscriptionList.swift; sourceTree = ""; }; - FFF38BEC46F2A672A9CD02E63E187A64 /* LightLightnessLastGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLastGet.swift; sourceTree = ""; }; + EEF8B3F660BB9769949A322EC0C457A7 /* Models.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Models.swift; sourceTree = ""; }; + EFCF9AB9B534CC94E3B4925607EBD44F /* crypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto.h; path = ios/include/openssl/crypto.h; sourceTree = ""; }; + F02B81509EA41034045058146F734680 /* ConfigNodeReset.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNodeReset.swift; sourceTree = ""; }; + F05701AADE07AE1DE3414B249D1BA650 /* bio.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = bio.h; path = ios/include/openssl/bio.h; sourceTree = ""; }; + F062E389D722C07A410D7EB275A4DB29 /* Element+Address.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Element+Address.swift"; sourceTree = ""; }; + F1C72257B08601AD26DAF775122C6855 /* dsa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = dsa.h; path = ios/include/openssl/dsa.h; sourceTree = ""; }; + F1CE29D4B70BFC4F5293E44D1C192510 /* LightHSLDefaultSetUnacknowledged.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLDefaultSetUnacknowledged.swift; sourceTree = ""; }; + F4726528578F47DF5DDF20D237F30890 /* PublicKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PublicKey.swift; sourceTree = ""; }; + F5951CE56379913A7A373A2040977D20 /* MeshMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MeshMessage.swift; sourceTree = ""; }; + F8D865E50973C19DF351D7053D35814B /* SegmentedControlMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SegmentedControlMessage.swift; sourceTree = ""; }; + F8DA8AA1B10227642E7080CB88EB3012 /* GenericPowerDefautGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerDefautGet.swift; sourceTree = ""; }; + F92BF1F7959A892CA9B31DC80B66EF24 /* Oob.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Oob.swift; sourceTree = ""; }; + FA1E6BE40F109716DAF8B44570AAC569 /* GenericPowerLevelGet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GenericPowerLevelGet.swift; sourceTree = ""; }; + FA2D6BD8DDE8E93CFB8EAC2BAD1F607C /* aes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = aes.h; path = ios/include/openssl/aes.h; sourceTree = ""; }; + FB0924EC0C6D7D36B3D27285EB959D6F /* MeshNetwork+Scenes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "MeshNetwork+Scenes.swift"; sourceTree = ""; }; + FB206B3FA4A91A0CC10DC97E0C801C73 /* NetworkKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NetworkKey.swift; sourceTree = ""; }; + FC3BB33CBFFD90C5EFE24A31C0B9D13E /* LightHSLStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightHSLStatus.swift; sourceTree = ""; }; + FC6BEC7A7369312E0E3EF7BE3E268254 /* LightLightnessLinearSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LightLightnessLinearSet.swift; sourceTree = ""; }; + FD2811CDA13C3E416CCE28786F15F7C9 /* ConfigNetworkTransmitStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetworkTransmitStatus.swift; sourceTree = ""; }; + FD8EF19720631C466AB88605FE5F7FED /* rc2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = rc2.h; path = ios/include/openssl/rc2.h; sourceTree = ""; }; + FEA1E2956C0C5BAC151E6E9F2E4F376D /* ConfigNetKeyDelete.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConfigNetKeyDelete.swift; sourceTree = ""; }; + FEE3A0B48309397581F000C7731A9ABA /* cmac.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cmac.h; path = ios/include/openssl/cmac.h; sourceTree = ""; }; + FFA8601C46B22B4C821F2A811D0129F5 /* kssl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = kssl.h; path = ios/include/openssl/kssl.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 3F293842444C644AEB57F835FF051CF8 /* Frameworks */ = { + 464013AAE748DDC77F7D13BA0228887F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 36E5BC2CC42B6C686F409EFF46555F80 /* Foundation.framework in Frameworks */, + 724A97029DD135A2DC324653931C9906 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E143432239612F417A3081D2D6361169 /* Frameworks */ = { + 942982932FF3F1E06395C93F538DB5E6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2B01FCBBC4A4399BFDDAD861550961BF /* Foundation.framework in Frameworks */, + 675EF2A7057FFA40DCDE2604A5E93C83 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E89BE62B1358720E207CB5FB745FC612 /* Frameworks */ = { + AA2A0FFA6C69447F0F43DA82C8E4DBD7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A50BBBB4CCCA0ADE35BCAEA7EE410939 /* Foundation.framework in Frameworks */, + 94352D37CA3F4FD2C4965F43F5C53F86 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 02076D9DF5CAEDE7F11C9E24B0FD8041 /* Proxy Configuration */ = { + isa = PBXGroup; + children = ( + 4263CE2320DCDCE436A7F76512356ABC /* AddAddressesToFilter.swift */, + 6039A842FCD1D5F1FD0A03BF1714B614 /* FilterStatus.swift */, + 89815C7A1C1C1A4C8114F685903178FB /* ProxyConfigurationMessage.swift */, + 45C0F068C2323BDD90265FE3916AF067 /* RemoveAddressesFromFilter.swift */, + 8B2B633AEC71C43C84B96DCE23D7021F /* SetFilterType.swift */, + ); + path = "Proxy Configuration"; + sourceTree = ""; + }; 0388E585EADAA70CE5FBB971584C0F2B /* Pods-nRFMeshProvision_Example */ = { isa = PBXGroup; children = ( @@ -817,29 +865,16 @@ path = "Target Support Files/Pods-nRFMeshProvision_Example"; sourceTree = ""; }; - 0782D1C60CCADB101ACE6848CB19B1BB /* Layers */ = { + 0B4710EDBFA1AF16DA13631D183D39B7 /* Bearer */ = { isa = PBXGroup; children = ( - CFAED0F4E2313A19604FA3FFC975483B /* KeySet.swift */, - 0128130FDDAA93816383BDDB5EEFFAFA /* MessageHandle.swift */, - C49E697491769CD10D65DBA103F18C15 /* NetworkManager.swift */, - E5511E6DEC301773E8F75FDD1CD58E79 /* Access Layer */, - BAF6B31669500DCB4C4A9C1535E2401B /* Foundation Layer */, - 19E150CDFABFC64958A146F247A90C82 /* Lower Transport Layer */, - B3B7DC179DEA0E9025A4805FA0EA064A /* Network Layer */, - 549E47025D5E7DEF05B851EC64002D4A /* Upper Transport Layer */, + A62933CDC8DEE3EC06AC374D4B83EEFC /* Bearer.swift */, + 1ED469B21495B04B7C32A5A655EAD439 /* BearerDelegate.swift */, + 389F7787D2ACF58D953436BB322F65CB /* BearerError.swift */, + D232B8074F356BCCF2268000300D4470 /* GATT */, ); - name = Layers; - path = nRFMeshProvision/Classes/Layers; - sourceTree = ""; - }; - 07F09E36339D34E54E94A126C0B23D41 /* Support Files */ = { - isa = PBXGroup; - children = ( - 2BAEDDDCB95D7A1BD48F33D350653E8E /* OpenSSL-Universal.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/OpenSSL-Universal"; + name = Bearer; + path = nRFMeshProvision/Classes/Bearer; sourceTree = ""; }; 0F2AA2D9BD90A341389002F3DB529B60 /* Targets Support Files */ = { @@ -851,507 +886,430 @@ name = "Targets Support Files"; sourceTree = ""; }; - 15CB185BD224A574D30A0A084FD2B2A1 /* Time and Scenes */ = { - isa = PBXGroup; - children = ( - A7F547843B03D14B11D408683557B12B /* SceneDelete.swift */, - 60773780809048AC8E986E1B2E1075B7 /* SceneDeleteUnacknowledged.swift */, - C4D6F13A30B64D8F2AC4FBC2A83AE73C /* SceneGet.swift */, - 59B7B4B8DC0649A7B15F84C7AAD05CA8 /* SceneRecall.swift */, - E6EE313D5D9DAAD2918E295BF7B8145C /* SceneRecallUnacknowledged.swift */, - 6261B7319B76EADB97867131FEF9BE4C /* SceneRegisterGet.swift */, - 28D00482DA5F4F0A57630249F0118349 /* SceneRegisterStatus.swift */, - E12469E56119E9A06B0AF3B2DBE947A6 /* SceneStatus.swift */, - C50D88BEC69D7479417530A13EEC36EB /* SceneStore.swift */, - F805FE9A45ABDC9FECC32438D95E79D3 /* SceneStoreUnacknowledged.swift */, - ); - name = "Time and Scenes"; - path = "Time and Scenes"; - sourceTree = ""; - }; - 19E150CDFABFC64958A146F247A90C82 /* Lower Transport Layer */ = { + 1DAE28A78D6F64064A225F067C0D57CF /* Pod */ = { isa = PBXGroup; children = ( - D2160331838FF3FF116BE31DBBB57C6E /* AccessMessage.swift */, - 32B93B1E9B6EAA625BC38E6E434364FC /* ControlMessage.swift */, - 7B36BB957A2CCFCEC95290723D744BC5 /* LowerTransportError.swift */, - E390BC56905E08C4279647F0E1617E57 /* LowerTransportLayer.swift */, - 6103853A1B7136C9092BAFC1253532FA /* LowerTransportPdu.swift */, - 0809184D9B5E35D7E971ABBD653E4959 /* SegmentAcknowledgmentMessage.swift */, - 6237B544B013FE7BEA77BAFB71185AD0 /* SegmentedAccessMessage.swift */, - D208C81B50773AEC8D0D73B6A10FCC38 /* SegmentedControlMessage.swift */, - E384C75BA2A25950917EF25F7E59C53E /* SegmentedMessage.swift */, - ); - name = "Lower Transport Layer"; - path = "Lower Transport Layer"; + 05096E337F051EE9AB0E2B48FF718FCA /* LICENSE */, + 19C3F82858921883FB9394DF39D23A2E /* nRFMeshProvision.podspec */, + 230B2F47FFC221CD5F853213E3846B07 /* README.md */, + ); + name = Pod; sourceTree = ""; }; - 234E0B664419D9BB8F6A05EDD705267D /* Type Extensions */ = { + 20EE7B0013AC2EBFBC7CFE9EA640248F /* Mesh Messages */ = { isa = PBXGroup; children = ( - 4EF4B1A501DF20EF9F6DC03F1A0BED3A /* ClosedRange.swift */, - D94C8F82C09E3C8F40F429919075B9DC /* Data.swift */, - 0A5DAE36EF5F0D97920D3AB7F5A79D72 /* Data+Hex.swift */, - 4EC8BFD4CEB3E05ED9D6D91FF907270E /* Data+Keys.swift */, - 1BD82F065F0C258600DA938454295140 /* Int+Hex.swift */, - E3C934468025D62648CC48351E370E1F /* OptionSet+Data.swift */, - C33951985C0BB1C6B4AAAD399735FCCE /* UUID+Hex.swift */, + DBF056508210287CF307DF2B23DE499E /* ConfigMessage.swift */, + 9F0B92D846B747F521AB81CF88C8BFF2 /* GenericMessage.swift */, + F5951CE56379913A7A373A2040977D20 /* MeshMessage.swift */, + AD75BFAD8E25AEC208C6A0810227EDC7 /* MeshMessageError.swift */, + 700BC3D4DABBFAB1F96E4319ACA1AD2B /* UnknownMessage.swift */, + 2F7DAEED2B880E2B28B5F60E62480617 /* VendorMessage.swift */, + C4C3B91A2E2333FE51E1E7CFAE9F36F1 /* Foundation */, + 3A2D3275ABCDCF28CCEA77A495F5EE26 /* Generic */, + 4CE88E484113EFFF1D0472425DA0DB49 /* Lighting */, + 02076D9DF5CAEDE7F11C9E24B0FD8041 /* Proxy Configuration */, + D7B3FBD1B8A48C1619FA7E2FB13D1025 /* Time and Scenes */, ); - name = "Type Extensions"; - path = "nRFMeshProvision/Classes/Type Extensions"; + name = "Mesh Messages"; + path = "nRFMeshProvision/Classes/Mesh Messages"; sourceTree = ""; }; - 2683208636F110E10C952B38325F5F04 /* Configuration */ = { + 2E6AE8FFB4AF5B384451FA12798EDDF1 /* Support Files */ = { isa = PBXGroup; children = ( - B5F6C63209ACE2CAD63D9D936C8D0E83 /* ConfigAppKeyAdd.swift */, - BA625D3C261369DA6CF17A01A60B2711 /* ConfigAppKeyDelete.swift */, - 4EF37B47DA4B0178FF1820AF5BECAA41 /* ConfigAppKeyGet.swift */, - 78BF560DF56001E1733550D309CA1130 /* ConfigAppKeyList.swift */, - 68E75783BCC8B2DCB3C8E9757A41143B /* ConfigAppKeyStatus.swift */, - BC5BFB1F974B00797F9546B984301F95 /* ConfigAppKeyUpdate.swift */, - 618F6FAB91F56A0D8A7DD8CCBF5760FE /* ConfigBeaconGet.swift */, - 1238D39D601CD74AA2491DF79C283FBA /* ConfigBeaconSet.swift */, - 3AA184343761882A81453DE5935627AA /* ConfigBeaconStatus.swift */, - 53B9C61F2CDA3980500BB05284E512BA /* ConfigCompositionDataGet.swift */, - 8C5AE79B048F76019959132156348F31 /* ConfigCompositionDataStatus.swift */, - 738D45A1C1CF99298B70FD91C3BF6839 /* ConfigDefaultTtlGet.swift */, - 54D46E885849E926E51E34E33D1A5E92 /* ConfigDefaultTtlSet.swift */, - 11BEF48DE3ED9BFEC286C62E9D9B4BB0 /* ConfigDefaultTtlStatus.swift */, - DDA8AD193F58606C6456AE7C8D8AEACC /* ConfigFriendGet.swift */, - B68CFD6D659AA0C80CC0BD9E9128FB73 /* ConfigFriendSet.swift */, - 4ABD46EE3B6F78346CC5435DF94DF0EC /* ConfigFriendStatus.swift */, - 488D15F191C7C08B4DE8ABD1F5512CA6 /* ConfigGATTProxyGet.swift */, - 9F62F62727752017D58F66604A931908 /* ConfigGATTProxySet.swift */, - 102EFEAF34163D6DC20D5D9A524F8CCB /* ConfigGATTProxyStatus.swift */, - D7BA6B8010CF5DAC5D1BF00392EB6E69 /* ConfigModelAppBind.swift */, - F4D98E1FA536E71C09628A29BB18777A /* ConfigModelAppStatus.swift */, - 956DDEBE1BCC60D07B5B2E29D56BF1DD /* ConfigModelAppUnbind.swift */, - EDFEBAFAF29F3979FE4131FACF2CAB20 /* ConfigModelPublicationGet.swift */, - B35CBCE958F3282E861FC90FD558A87A /* ConfigModelPublicationSet.swift */, - A3F8BC4A3934FE8B98F1D76046A8A54C /* ConfigModelPublicationStatus.swift */, - 2F16FEB6F3A2D59D63FAA52D576DB35B /* ConfigModelPublicationVirtualAddressSet.swift */, - FDDA435474B0D4CD8F9F37D3A0F28A24 /* ConfigModelSubscriptionAdd.swift */, - 548B39DF6F19451C85B8A7E3C6C9CE89 /* ConfigModelSubscriptionDelete.swift */, - 4B364AEDC521DDF6DC5E078DBA1EF2F8 /* ConfigModelSubscriptionDeleteAll.swift */, - 280C85603813ECC5E52B725757F08E1F /* ConfigModelSubscriptionOverwrite.swift */, - A77D3BA3E47A21B35072BA4B471B88B0 /* ConfigModelSubscriptionStatus.swift */, - C21E604DBF682D1158244522366BC5DB /* ConfigModelSubscriptionVirtualAddressAdd.swift */, - 3530FF80C676EBE031E7A065EE6FC512 /* ConfigModelSubscriptionVirtualAddressDelete.swift */, - 66D23CB075F4F3057F364B5D10EB01CB /* ConfigModelSubscriptionVirtualAddressOverwrite.swift */, - A400E289342EA6D1D2693E91EBD5FDDB /* ConfigNetKeyAdd.swift */, - 019512222742ED36961BC5881981465F /* ConfigNetKeyDelete.swift */, - F05AE4080979DB2EF426A97A5C5D43CD /* ConfigNetKeyGet.swift */, - AE203DB409D68FAC6E3B561FABA79620 /* ConfigNetKeyList.swift */, - B3BF6054FDAC3A9ECD9BA0B63B5D3125 /* ConfigNetKeyStatus.swift */, - 50A6987D9A91483E9C9842A2FFEAD00A /* ConfigNetKeyUpdate.swift */, - 77A9793E6DC587AA823E0BAA1C75C873 /* ConfigNetworkTransmitGet.swift */, - A2C616047ED678DA44EEE3CEA2888859 /* ConfigNetworkTransmitSet.swift */, - 11CAB0C647173EEB60E98E0B0CDD4A60 /* ConfigNetworkTransmitStatus.swift */, - 92A0339B9D22018F3EAAF40708E9C86B /* ConfigNodeReset.swift */, - B12068F54B27B191B1F5F4ADA0145EE5 /* ConfigNodeResetStatus.swift */, - E9A23B5651B26F62AE1AF1EB8FB93534 /* ConfigRelayGet.swift */, - B3D3F336EC35DE66420FEB21AFBC9FD9 /* ConfigRelaySet.swift */, - 608942E0B77A5541D732F910E4D92AB6 /* ConfigRelayStatus.swift */, - EB9431B7CAF8B082609FAED976C38656 /* ConfigSIGModelAppGet.swift */, - 5FA685AB6FD4A37A6CC6BABE72CB8511 /* ConfigSIGModelAppList.swift */, - DE64D6CDA415A9A8395BC138A239EB23 /* ConfigSIGModelSubscriptionGet.swift */, - 639F400E3BB98C1DCDF6AF27B881A6AA /* ConfigSIGModelSubscriptionList.swift */, - 2479DEB1A09AA026AE385BB567A4722C /* ConfigVendorModelAppGet.swift */, - 9E3E67C0820BDE8B7F9767F1600B9D37 /* ConfigVendorModelAppList.swift */, - 0A0F8F36208D882DDA9B0F94F16858CF /* ConfigVendorModelSubscriptionGet.swift */, - FFA375F24C3AB6F4BC1FF8A3AA33EB45 /* ConfigVendorModelSubscriptionList.swift */, - ); - name = Configuration; - path = Configuration; + 251285B7608C9D869B2B399E6B9FC909 /* OpenSSL-Universal.debug.xcconfig */, + 60F659933A0EDC3406DBE1AAF1B30F10 /* OpenSSL-Universal.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/OpenSSL-Universal"; sourceTree = ""; }; - 30CFA3289975D24484A7A3ECCB072709 /* nRFMeshProvision */ = { + 313CB8F25DBC624F318F23789C8EAFD3 /* Development Pods */ = { isa = PBXGroup; children = ( - 71A5FF666F3314C2DB65B7133B3DE941 /* MeshNetworkDelegate.swift */, - 03F24D5C39141857DA2B9541863CAD8F /* MeshNetworkError.swift */, - 8E109CFD5F7F1FA64EA027D3C25C7A66 /* MeshNetworkManager.swift */, - 193979972B552079ECF570FF98A1252A /* ModelDelegate.swift */, - 9B74254409C6B1864E62EFB2F093C764 /* ProxyFilter.swift */, - DBD783567BEDA58F5EC6B6F50CBFFD9D /* Storage.swift */, - F036F560C40E64400355DC0AC049D42E /* Bearer */, - 0782D1C60CCADB101ACE6848CB19B1BB /* Layers */, - 39C989A8BAA3E7796DD82D70B3F48D92 /* Legacy */, - 9B4713B9C468502809CBF649C3E10BA3 /* Mesh API */, - FAE292CD50ACEC2354418F42281FDEC4 /* Mesh Messages */, - 9498A0AAA58AA458E99943A03807A5DD /* Mesh Model */, - 719219CF234AA9530E13D2F578502A1F /* Pod */, - 6A3FC411C5C630AE846738EC8B3E1645 /* Provisioning */, - E253EA9027F200AD3C228D0EE24E5CD0 /* Support Files */, - 234E0B664419D9BB8F6A05EDD705267D /* Type Extensions */, - B6516236A1C956F137F8C233C410520E /* Utils */, + F38BA0E0D799602E69C634C8EB26D93C /* nRFMeshProvision */, ); - name = nRFMeshProvision; - path = ../..; + name = "Development Pods"; sourceTree = ""; }; - 39C989A8BAA3E7796DD82D70B3F48D92 /* Legacy */ = { + 3A2D3275ABCDCF28CCEA77A495F5EE26 /* Generic */ = { isa = PBXGroup; children = ( - 3C8BBC5023678873636B2264C4E2CB79 /* CompositionElement.swift */, - E367B2FA244D85513F82419D1A4322DC /* MeshNodeEntry.swift */, - 1FE9C9A8915BD6881F9341E0AC27CE77 /* MeshState.swift */, - 658F26DF09F1F69B194DC98FF3F82EE2 /* MeshStateManager.swift */, + 5EA95B9804BA6F660A4010B60E25D958 /* GenericBatteryGet.swift */, + DDAF0A018CC882A972EAF20FDF71259B /* GenericBatteryStatus.swift */, + 633BF3763BC4E3B8D3C37CC1A55BE59E /* GenericDefaultTransitionTimeGet.swift */, + 191A9E7A4F700571DBD90AB571A69B67 /* GenericDefaultTransitionTimeSet.swift */, + 8AF5BA45B207A40265FB04841C04AD6B /* GenericDefaultTransitionTimeSetUnacknowledged.swift */, + 7B0B0178F7F9FFA0E6683038930CDE90 /* GenericDefaultTransitionTimeStatus.swift */, + 7C04582F1AF96FE5189C0C942643E841 /* GenericDeltaSet.swift */, + 9110CBE60926DAD974BA9DBE117B406D /* GenericDeltaSetUnacknowledged.swift */, + B8A04A8DFDD6D967828E76FE2F334930 /* GenericLevelGet.swift */, + EDE8A5B21C1C59A51A6E40F001F1AF90 /* GenericLevelSet.swift */, + B58C430B47AC2826C69508926607FF65 /* GenericLevelSetUnacknowledged.swift */, + 6740FD536321E2DD1303AA39813DE797 /* GenericLevelStatus.swift */, + 03DF8DCF16097CFFA36999FB1DC19CC9 /* GenericMoveSet.swift */, + A1C0C1A07A3AD00DD421CEB8F99F39FC /* GenericMoveSetUnacknowledged.swift */, + 3EC106BF29EEA4F49EF57EC5E310C97B /* GenericOnOffGet.swift */, + 1EA537B1DC16674937E923F22F09ED67 /* GenericOnOffSet.swift */, + D5474829A698C5D44E6B126417C2BBA4 /* GenericOnOffSetUnacknowledged.swift */, + 8F2DF6DF9F41A66EB89698E4A6C02ABA /* GenericOnOffStatus.swift */, + 5FD78B3F8DFAB955F17ABBD649BB473E /* GenericOnPowerUpGet.swift */, + A7803B6B4982AC81EFDC5FD3AFC243E8 /* GenericOnPowerUpSet.swift */, + 02253CE2B973F25075E7D0BA3AE3FB10 /* GenericOnPowerUpSetUnacknowledged.swift */, + E719A748E0BD6CC54E70695DC274E116 /* GenericOnPowerUpStatus.swift */, + 6307DF621D131225F793C80651768EB7 /* GenericPowerDefaultSet.swift */, + DA0B0A43CBE8CFA9306868214DF651FC /* GenericPowerDefaultSetUnacknowledged.swift */, + 0BC99DAB89C503E9B0C1EC60550FE6AE /* GenericPowerDefaultStatus.swift */, + F8DA8AA1B10227642E7080CB88EB3012 /* GenericPowerDefautGet.swift */, + 617C71C82DDE824525F163BF38BA747B /* GenericPowerLastGet.swift */, + 7C67B7C030BA825A4856A7E78D33D6A1 /* GenericPowerLastStatus.swift */, + FA1E6BE40F109716DAF8B44570AAC569 /* GenericPowerLevelGet.swift */, + 768E2F5ACE03F27FDE7C12532DA62447 /* GenericPowerLevelSet.swift */, + 1EF807CC420EF58CCFB042B39FBFD435 /* GenericPowerLevelSetUnacknowledged.swift */, + 354350BACB41B5EE63825C3F56B00E3B /* GenericPowerLevelStatus.swift */, + 284E1DDA13DE1F7B1ED4995C6F690DBF /* GenericPowerRangeGet.swift */, + CD1CDFB2A30CA63D7579659413584DF1 /* GenericPowerRangeSet.swift */, + BD9A993178D2BD55B7FA1695A2078D5A /* GenericPowerRangeSetUnacknowledged.swift */, + 4B5C4D61E2BB0FD9A1EBE760D3630E7B /* GenericPowerRangeStatus.swift */, ); - name = Legacy; - path = nRFMeshProvision/Classes/Legacy; + path = Generic; sourceTree = ""; }; - 533F8B515544EF3D8A2EF844F7047647 /* Static */ = { + 3C991DD51B56719A93629B227CE043AA /* Support Files */ = { isa = PBXGroup; children = ( - 826F143CFCEEB7462FF9C36E3381075D /* aes.h */, - 8F6D17CFFBD81514F68C97BBD1FC1FAD /* asn1.h */, - E8F94FB58A0EF115400523384D6D3A2A /* asn1_mac.h */, - 38E44CFDD30E8196AB182620090077A7 /* asn1t.h */, - A7EBF677A3BB55780224DA9B6A131D12 /* bio.h */, - 2B29BDFB0CB9AF56DC4A54283861CA12 /* blowfish.h */, - 3A393CA06738942FE9E5343169BE59E0 /* bn.h */, - 6B1DB51A481F75CA371CBC17389B0BDB /* buffer.h */, - 6DEE963CC23797F89660C6672FB98075 /* camellia.h */, - 3EA2CA4A7E4FDC95619977869C163C7D /* cast.h */, - 5B97D7D11587FAB3BFA98746E577C93B /* cmac.h */, - F6D415230012F59B92D0D09CA4401407 /* cms.h */, - 8393B32B917BC7FDB4496FEACE354D3E /* comp.h */, - 48891B981E1D2B401B010AB6EEE4B8F9 /* conf.h */, - 64561A577F5AF24B9C3DCE9D4667546B /* conf_api.h */, - 5B2806D8A55D3AACAC06D351B90FF243 /* crypto.h */, - 1EA0F99FAA094AE139E13F6E1681E808 /* des.h */, - C48D89AB80479892C5A41BB09EBE4246 /* des_old.h */, - E94BD40809CD5F9068BDE796E112DAF0 /* dh.h */, - 18D390D47C6B95A04620C1B4CA8089C6 /* dsa.h */, - 76EA37D476259DC133F0D874B66FE43D /* dso.h */, - A6563E3670EA10B84AD69E5530EE94F5 /* dtls1.h */, - A048E7B07E2B5DB65AC4BCDEC7FD46C8 /* e_os2.h */, - A478BB51CCDD72A1ED0B041BF739BAC6 /* ebcdic.h */, - FA13E8BF02F4C19B33D8D137931D830A /* ec.h */, - 06B5ECA9A5CB4947408A35D3E27232C5 /* ecdh.h */, - C00AFFAEF156231AA2995F0E9BCDC774 /* ecdsa.h */, - 93AA2E365E150CE856017A2307CDE080 /* engine.h */, - 98F58CDCCB224C584D8F86E82CEAF9CA /* err.h */, - 0D8EBBF36F76690DEA798BB3714D0FFA /* evp.h */, - 4884CABA37581DE4BBC1D30CA8692F93 /* hmac.h */, - A0909F38896F8E4BCB3AFD183CC55D9C /* idea.h */, - D67BCF31204B04969671509DCBCF0EB1 /* krb5_asn.h */, - 2AD69E91DAD4B877FAC270F5F6E2EA56 /* kssl.h */, - 518BA6F4ACEEF57F1B0586844E0F8252 /* lhash.h */, - 56F4989D082BCF7AF2FB1AA9615B33AD /* md4.h */, - BEE394C1B12977A209AD33A1E721CDD1 /* md5.h */, - 1C62310A89D292E53685A22813C74E53 /* mdc2.h */, - CC89C81370A46A43B5120A337F695FCF /* modes.h */, - 3E73A000C74E3B30A464B36D3485E8DA /* obj_mac.h */, - 8F521C0619E90ABCDB06AA611CD08FC7 /* objects.h */, - 5910BFA2C60F84D519AAE2C0D4410D33 /* ocsp.h */, - 67CBD965B229300D28125A8C206E9C6B /* opensslconf.h */, - FF21D731DD85147D2FDC7642BA0A001D /* opensslconf-arm64.h */, - BD891F189D0CE92F0C2B149017CFA991 /* opensslconf-armv7.h */, - B44819F3C3283F02F92CB912FA489CB3 /* opensslconf-armv7s.h */, - AB0387B22960ADAE0DF66447D1B9A219 /* opensslconf-i386.h */, - 39D5550D1FE961D228BF66813367C2ED /* opensslconf-x86_64.h */, - 8DBD6F7BD10FF05DC55E48D2441D2F1D /* opensslv.h */, - C481344D02E205C678C7092C6BC08932 /* ossl_typ.h */, - 2F91F5AB98654B7892AA4A2544E76BB4 /* pem.h */, - B0572AE881F56C0C29C9C5B16C71B2CA /* pem2.h */, - A09D380947F5F6A824666F6E5CB69780 /* pkcs12.h */, - 551C02521B09FE0546ACF9740C8AF9FD /* pkcs7.h */, - 0DD80B3A0C6644F8EACDDA46EBCDCC50 /* pqueue.h */, - 365DB2FD709DBE3B85E9D0C4F4655998 /* rand.h */, - 6E737A539ADA1ACF490352BF2E080A58 /* rc2.h */, - 849972502FF92A80EBB092E354A27997 /* rc4.h */, - 183B1318D89CDB4B5F500E75E99E1A0D /* ripemd.h */, - 0853F88584ABFF8C5D0C54DB22C49133 /* rsa.h */, - 945613B52FF3907CD5347F764E0FA387 /* safestack.h */, - FF03B9DCCC524E1C6F89EA356BD435C4 /* seed.h */, - 7CDB0E8144E43EF595DF7BDBD4292FE1 /* sha.h */, - 2C21A692EB11EBFEB652BC278363FABE /* shim.h */, - BA5CF2529EA2E461ECA971FAF21AB9B9 /* srp.h */, - C4B6C0195405B1889EB8028C9A52E290 /* srtp.h */, - C388617EBE1E2980DE69677752FE3E7D /* ssl.h */, - 8D5F4813D73AC7AA00C96E641BC4B65D /* ssl2.h */, - 0B6DE2B413E4C191250E1A92B8148E99 /* ssl23.h */, - 5B2809EDBFAF2D7CFA012EDB6C68DECB /* ssl3.h */, - F0A484173BF1AD613FA68783E90CE320 /* stack.h */, - C2A194E323C0E28EA51D6D7D29A451A0 /* symhacks.h */, - F441BBC830863D5F3A2610B1AA8DC101 /* tls1.h */, - 290340F733ED3A07351DD8E7B773510D /* ts.h */, - C5D3C2E48A8CEAAEB1E6DF00B2689E1A /* txt_db.h */, - 76B5718955C80345B5ABED92FCA9B6AE /* ui.h */, - 8EA0DD2C386D7D4E38582312A97ED05A /* ui_compat.h */, - 46C5A6B96FA76C126AC3AB1583B753C6 /* whrlpool.h */, - 1C367C7850D0CE90FF5C2D9C784BE1FB /* x509.h */, - 6B3BFF1E4E33650A00A0D1C0DCBA71AC /* x509_vfy.h */, - A3F34939E715377F5A72C10670BEFDE8 /* x509v3.h */, - C40A2DBA6EE61F61EC0AC8F8640FF98D /* Frameworks */, + 71F4788A283F3695C868AA5CA687C429 /* nRFMeshProvision.modulemap */, + 16FA40299AD6D5783F6D020303330E7A /* nRFMeshProvision-dummy.m */, + A5F1C9EF646A868BA88EE5AD3C953DB1 /* nRFMeshProvision-Info.plist */, + 94E4B3C078C12B59877CFC4555F55BA4 /* nRFMeshProvision-prefix.pch */, + 7FEF0582C7933A1A1EC5321166035E8F /* nRFMeshProvision-umbrella.h */, + 4F123257FA76D67A21DF960FE73DF29E /* nRFMeshProvision.debug.xcconfig */, + E7BD78DFE1A2BD03077370C15E974692 /* nRFMeshProvision.release.xcconfig */, ); - name = Static; + name = "Support Files"; + path = "Example/Pods/Target Support Files/nRFMeshProvision"; sourceTree = ""; }; - 549E47025D5E7DEF05B851EC64002D4A /* Upper Transport Layer */ = { + 3ECDD03D16DE5ADE29D81A145C44529F /* Utils */ = { isa = PBXGroup; children = ( - E1F6E718917863D448F027C7131A1BA6 /* HeartbeatMessage.swift */, - BBA2CDED6A3599B8FE08E7F52C614020 /* UpperTransportLayer.swift */, - F650AAF03B082E50EC94C5561AC5EC25 /* UpperTransportPdu.swift */, + 084FC342130C4348A2C22596D410A001 /* BackgroundTimer.swift */, + 78796DAA8875AD3C1716AF6623B6DA70 /* Beacon.swift */, + 5EF01D69CF0FC06A5AAFF454AADB0FA4 /* CompanyIdentifier.swift */, + E87793E250CBB5C19FF36E9DFCEEA939 /* MeshConstants.swift */, + 63F04204BC27CBF295635C3BA1837B6B /* MeshLoggerDelegate.swift */, + C4D135C6D7B69488F92FD3A60DE234F8 /* OpenSSLHelper.h */, + 5C361A99C817A064EF9EF47D2FDD3BEE /* OpenSSLHelper.m */, ); - name = "Upper Transport Layer"; - path = "Upper Transport Layer"; + name = Utils; + path = nRFMeshProvision/Classes/Utils; sourceTree = ""; }; - 5970066474E1C9302F0A6E01FAB165B0 /* Support Files */ = { + 402565F25D00CB063619B37C805FE92A /* Lower Transport Layer */ = { isa = PBXGroup; children = ( - 83C50267A7A0C995893B289591D75AB3 /* SwiftLint.xcconfig */, + 050367D2FB7D44B5220AF4C9578633D2 /* AccessMessage.swift */, + 6DDBF68D032C7EB3E470EF81DC784264 /* ControlMessage.swift */, + 3A7713B8351753240FB917FB85520188 /* LowerTransportError.swift */, + 06529719D484DC9708E45C8D403B8971 /* LowerTransportLayer.swift */, + BAF09E6A361270E7C2465438BE978E3F /* LowerTransportPdu.swift */, + 3F25ABC8C175D73C798CA470B26ECB0C /* SegmentAcknowledgmentMessage.swift */, + 4A1618FF967AF6F4B95826CAD36EBAC1 /* SegmentedAccessMessage.swift */, + F8D865E50973C19DF351D7053D35814B /* SegmentedControlMessage.swift */, + 0086C4EAB2EAB1D9FD6493558315BE69 /* SegmentedMessage.swift */, ); - name = "Support Files"; - path = "../Target Support Files/SwiftLint"; + path = "Lower Transport Layer"; sourceTree = ""; }; - 5BF05DD913E81FE35C8A4DD9E9A9874F /* Foundation */ = { + 4BAD41340921450E87E27DEB06EA5CE6 /* Configuration */ = { isa = PBXGroup; children = ( - 2683208636F110E10C952B38325F5F04 /* Configuration */, + 088B78981965335FC658081F89775614 /* ConfigAppKeyAdd.swift */, + DAA86313241B1164B0C0DE70D5DD3AFE /* ConfigAppKeyDelete.swift */, + 688EB4111B004AEA4C5F935EB415F850 /* ConfigAppKeyGet.swift */, + 203C613775E2B7CB5C3CAB948E573EF1 /* ConfigAppKeyList.swift */, + D9208006DB642A88419614FBEBEBEAE5 /* ConfigAppKeyStatus.swift */, + 043BF794162864AEAFD9582939B9AF35 /* ConfigAppKeyUpdate.swift */, + 86532DAF370C0B1071BEFB53940211A8 /* ConfigBeaconGet.swift */, + 702AB8141977DB58656AC01A9CD3E65C /* ConfigBeaconSet.swift */, + A73382CDDD7C7283E7B9C766187A25EE /* ConfigBeaconStatus.swift */, + B2440A05305925E74EE6CFBFAF8DE019 /* ConfigCompositionDataGet.swift */, + 6F046F861FB9CD57CDCD951A9F840F54 /* ConfigCompositionDataStatus.swift */, + 430E40C0FF85CB3FACFF440F3BAAEAE3 /* ConfigDefaultTtlGet.swift */, + DA2CB9EF22098378AD53FC365E116F70 /* ConfigDefaultTtlSet.swift */, + 3F8E6AAEE1CFFF04FF7F210D5C7377F0 /* ConfigDefaultTtlStatus.swift */, + 0F2921B9B52FFE769BC94EDF3A5CAEE6 /* ConfigFriendGet.swift */, + AD7E094DC5C92CAB627A13965A1E0856 /* ConfigFriendSet.swift */, + 370C4DC979638CF7EDCDE590DB219EF1 /* ConfigFriendStatus.swift */, + 119F4539DA3ED8DF7F4760EE8756A7FE /* ConfigGATTProxyGet.swift */, + 5409C60ABD4550F300F37E99F1576EC5 /* ConfigGATTProxySet.swift */, + 5F8C507C97C8606628374BCBD36DCFAF /* ConfigGATTProxyStatus.swift */, + 1E824E85B590F0731B75235CB48AD98A /* ConfigHeartbeatPublicationGet.swift */, + 39A26B9C5DDFAA07EF23E472CA1F9841 /* ConfigHeartbeatPublicationSet.swift */, + A859841DB4AB11DB7B3543A149F69737 /* ConfigHeartbeatPublicationStatus.swift */, + C6ECE47FC76D77F01276E57665C19E67 /* ConfigHeartbeatSubscriptionGet.swift */, + 2CDF70CD80160DE8FEADCF25B28F849A /* ConfigHeartbeatSubscriptionSet.swift */, + 66ABCDE961B670BB3FC9ACF1FC2EDD09 /* ConfigHeartbeatSubscriptionStatus.swift */, + D9BCDDCFF6EC8409E6433BF2B1D9331B /* ConfigKeyRefreshPhaseGet.swift */, + 257AA84A91BFCC5095021C5A1AD2F872 /* ConfigKeyRefreshPhaseSet.swift */, + 2218BA1D33AD9FB557FA2F586FA5B544 /* ConfigKeyRefreshPhaseStatus.swift */, + 646C0C57E8296162EE0C512355696EA3 /* ConfigLowPowerNodePollTimeoutGet.swift */, + 5A026E7E26E6CC90D58F995E4D287D01 /* ConfigLowPowerNodePollTimeoutStatus.swift */, + 3FD255DE9CC2A718CDA1614369C2DE71 /* ConfigModelAppBind.swift */, + 83648F3CBC31C87BC56E9E01867E9857 /* ConfigModelAppStatus.swift */, + E6BCD9C04758D3DDFB89FF8BFB1DF5FE /* ConfigModelAppUnbind.swift */, + B760C868552B51D62C5AB60E11053122 /* ConfigModelPublicationGet.swift */, + 07EF75FEB86696ADDF95F0CDB9E5C996 /* ConfigModelPublicationSet.swift */, + 2CD7620FA4C3615F1D29836495300CCD /* ConfigModelPublicationStatus.swift */, + 5A09EFD81ADC973B8AA1F51E09F5DDD3 /* ConfigModelPublicationVirtualAddressSet.swift */, + 748680464209070FF8ACE88E07E5B3BF /* ConfigModelSubscriptionAdd.swift */, + 717EF5F786251EFFBB0BF0B895C36B76 /* ConfigModelSubscriptionDelete.swift */, + C7A927FC28850BA3116592BFC680EB7C /* ConfigModelSubscriptionDeleteAll.swift */, + 9CA67B85919ED9318CE4BC27957BA465 /* ConfigModelSubscriptionOverwrite.swift */, + 42212E4980B79CBF3B3FF92CB0E85766 /* ConfigModelSubscriptionStatus.swift */, + DF67E965129C7DB236D84E0C5727843F /* ConfigModelSubscriptionVirtualAddressAdd.swift */, + 7AC4D47F435009AB25054FB84FC8C596 /* ConfigModelSubscriptionVirtualAddressDelete.swift */, + 04259882C54E2564C9BAFDBCC509318F /* ConfigModelSubscriptionVirtualAddressOverwrite.swift */, + 65853B7D96D4EFB317A33C89B8947319 /* ConfigNetKeyAdd.swift */, + FEA1E2956C0C5BAC151E6E9F2E4F376D /* ConfigNetKeyDelete.swift */, + 29DFCB057C5BAF59A240814335789E74 /* ConfigNetKeyGet.swift */, + D3027FF28A9C2BFFEE81166BF7EFB4B6 /* ConfigNetKeyList.swift */, + 6C83C9B870B3054DE4B4ED3DAC009F75 /* ConfigNetKeyStatus.swift */, + 5EB7525D191990221D4900FE9247705F /* ConfigNetKeyUpdate.swift */, + 4885352355ABF803DEDE1B33C3B7C992 /* ConfigNetworkTransmitGet.swift */, + 190150023B9DB820890E386CF2E6D290 /* ConfigNetworkTransmitSet.swift */, + FD2811CDA13C3E416CCE28786F15F7C9 /* ConfigNetworkTransmitStatus.swift */, + F02B81509EA41034045058146F734680 /* ConfigNodeReset.swift */, + CDCA89FC5406C6D97E0013C95C4AF81D /* ConfigNodeResetStatus.swift */, + 104DA4C2354EC2D4EA7F5D08715E16CA /* ConfigRelayGet.swift */, + 635EEE83E4585FE1C9B74161BFEC45E7 /* ConfigRelaySet.swift */, + 6607D3481792C4281C36CC1641798C95 /* ConfigRelayStatus.swift */, + 51545409FD1A65E85BF26461955CC451 /* ConfigSIGModelAppGet.swift */, + 9B8B8A759B4C8B4083854BE887ACA4EB /* ConfigSIGModelAppList.swift */, + 6B7D7E2F957186176D78E51927E76A2F /* ConfigSIGModelSubscriptionGet.swift */, + 8A7F330DF3F19FF08DB2055F8B0CBB3D /* ConfigSIGModelSubscriptionList.swift */, + C990CF383F64CA9D5D9DF253A9190204 /* ConfigVendorModelAppGet.swift */, + 00616B1A66FB0EF0A73173C6AFD5445B /* ConfigVendorModelAppList.swift */, + 9BDA6F0E696D509E1E5D0B399852E989 /* ConfigVendorModelSubscriptionGet.swift */, + A4BE0B1A335DC2D7C78C1D8A8E43E99B /* ConfigVendorModelSubscriptionList.swift */, ); - name = Foundation; - path = Foundation; + path = Configuration; sourceTree = ""; }; - 6A3FC411C5C630AE846738EC8B3E1645 /* Provisioning */ = { + 4CE88E484113EFFF1D0472425DA0DB49 /* Lighting */ = { isa = PBXGroup; children = ( - 4D562F649FFF959A925DE822AB157BE4 /* Algorithm.swift */, - 571972362DDFB200E6688EF31C01D9D2 /* Oob.swift */, - 3FEF22695B2AD3E77B038283A222494D /* ProvisioningCapabilities.swift */, - FE8DF7D66C473B0DCF571AB14D3A4B86 /* ProvisioningData.swift */, - 12070EFF388C88F8F36525F061621F72 /* ProvisioningManager.swift */, - 47E13B1DF62FB81606700B39FB9F7493 /* ProvisioningPdu.swift */, - 5A1D94B87B296C5A3D3E48EE4617D476 /* ProvisioningState.swift */, - FCBACD939FD63517EA508FD869BC86E3 /* PublicKey.swift */, - 73440C1F1D10DCF1756ED168045CB714 /* UnprovisionedDevice.swift */, - ); - name = Provisioning; - path = nRFMeshProvision/Classes/Provisioning; + BC01AE02C9CC3A3EEA7262ACB36A3633 /* LightCTLDefaultGet.swift */, + 54A8304ED6C132EF0EE3F6A96BE7CAFC /* LightCTLDefaultSet.swift */, + DCBBA859DCA57C257699D2D1D45FE61F /* LightCTLDefaultSetUnacknowledged.swift */, + 07F43471636E09D3F3BC231EDA577E48 /* LightCTLDefaultStatus.swift */, + CE174073358AA65452FC46AD1365D019 /* LightCTLGet.swift */, + EC9E218D9B07768716C55663353D320E /* LightCTLSet.swift */, + B801E361EF9C76ED27F0D151765C43C7 /* LightCTLSetUnackowledged.swift */, + 617DCFF3EA5F507667EE331823E9A4C5 /* LightCTLStatus.swift */, + 5487B0BF4FF46BE147AD05D6692219DF /* LightCTLTemperatureGet.swift */, + C11A6FC5F3C7F8A250D757953C868036 /* LightCTLTemperatureRangeGet.swift */, + 6F7A5E95547B1B38707816CDDD41D269 /* LightCTLTemperatureRangeSet.swift */, + 3A8D5DDBF3290D795F9A22E75EC62747 /* LightCTLTemperatureRangeSetUnacknowledged.swift */, + B7BF3689CACBA6DE1EA34A02C7C39EE7 /* LightCTLTemperatureRangeStatus.swift */, + DAD00A7184EB36266E55D8BFADDFB5F1 /* LightCTLTemperatureSet.swift */, + 21DB446008C555FD340559F24D649460 /* LightCTLTemperatureSetUnacknowledged.swift */, + 3AB91A917EE590C0F01D55A4A2D80EB2 /* LightCTLTemperatureStatus.swift */, + 32BE2F099E659862DFDA9F010FD76338 /* LightHSLDefaultGet.swift */, + 359A4A9BB62489E9CA1E9E2F8916B3CB /* LightHSLDefaultSet.swift */, + F1CE29D4B70BFC4F5293E44D1C192510 /* LightHSLDefaultSetUnacknowledged.swift */, + 8893741324EC959B62786D282B759A78 /* LightHSLDefaultStatus.swift */, + B514C6C630BB86F20391C17ECD1B099F /* LightHSLGet.swift */, + 8D9ED46CECC39E47DE6C58FBA58FB959 /* LightHSLHueGet.swift */, + D0CCE9EB50578062BD5293E84C485596 /* LightHSLHueSet.swift */, + D857568D92F1FBEC08F9A5DF684B72CF /* LightHSLHueSetUnacknowledged.swift */, + 044A70D158D3F380E9C9D1BFA558B23D /* LightHSLHueStatus.swift */, + 89BAD858A3AFCAA82ED096D8B4C6CB45 /* LightHSLRangeGet.swift */, + 786B5EFAE94186E04E78AAD6E0C4B4EC /* LightHSLRangeSet.swift */, + 021B20216E73C616F938550783CEE90E /* LightHSLRangeSetUnacknowledged.swift */, + B601630F004DF2100FCD042A24471954 /* LightHSLRangeStatus.swift */, + 33FC981837A5E3B921424F3A07E9116F /* LightHSLSaturationGet.swift */, + 07DDB32795BE6AC1402F2EA6C20116CD /* LightHSLSaturationSet.swift */, + D17591E6D83B6F285B709C52824A11EB /* LightHSLSaturationSetUnacknowledged.swift */, + 1CFB92639A7D3CF3ACD3CE98D3445844 /* LightHSLSaturationStatus.swift */, + BEEBBC28EA4BE3DC2ED9730D2BB925FD /* LightHSLSet.swift */, + 5C31489DFDE459F42392C773B7887B32 /* LightHSLSetUnackowledged.swift */, + FC3BB33CBFFD90C5EFE24A31C0B9D13E /* LightHSLStatus.swift */, + 38AE40F0734B7CDD0F0A7E3477453BD1 /* LightHSLTargetGet.swift */, + E274D961F6E45E659CE13EC3216B1D1B /* LightHSLTargetStatus.swift */, + ED93C5490BE270D91CF24847CEC5D105 /* LightLightnessDefaultGet.swift */, + 4A528476CD64288120D1D3570EBD901D /* LightLightnessDefaultSet.swift */, + CF2101D850D957D91FE76046FC7A23EA /* LightLightnessDefaultSetUnacknowledged.swift */, + BCDA10809C2F06861AC05402A13D8503 /* LightLightnessDefaultStatus.swift */, + 4341776A2847F321EC212A711A151DE0 /* LightLightnessGet.swift */, + 3C28BD919AB288DF9C2388DE7912164D /* LightLightnessLastGet.swift */, + 482A3C1C37236811115C68ABA30A931A /* LightLightnessLastStatus.swift */, + 4600B8D510228245582FA97C3FDA8C1A /* LightLightnessLinearGet.swift */, + FC6BEC7A7369312E0E3EF7BE3E268254 /* LightLightnessLinearSet.swift */, + 5D189A20A021D3C6024D80E29F839F7B /* LightLightnessLinearSetUnacknowledged.swift */, + 64E2423912C2848A893C2B9D92F63EC2 /* LightLightnessLinearStatus.swift */, + 4E5256577DE078126516A653574C2601 /* LightLightnessRangeGet.swift */, + 5B56A5743DFDF7095EA5619D4D3139BE /* LightLightnessRangeSet.swift */, + D56357DB1DB2398979F6C74CCD4D46A5 /* LightLightnessRangeSetUnacknowledged.swift */, + 627B469D265D2DB083EC47FDD12EF87B /* LightLightnessRangeStatus.swift */, + E98FEBD3CE4F142EC9E7585C633CEC71 /* LightLightnessSet.swift */, + C18C6422216F1E3697A24148BBAC421D /* LightLightnessSetUnacknowledged.swift */, + 136042984F60F4EE89500C36041309AC /* LightLightnessStatus.swift */, + ); + path = Lighting; sourceTree = ""; }; - 719219CF234AA9530E13D2F578502A1F /* Pod */ = { + 56B01142F61A427F244B168B4E1D04A4 /* Legacy */ = { isa = PBXGroup; children = ( - 4B26D2C36F46E680A535F8D7A74BE8A3 /* LICENSE */, - 4FEFDF236CAAAE266100F711238423E0 /* nRFMeshProvision.podspec */, - 0A426A693811B44EBA9FAF080689FDCC /* README.md */, + 0E6988FF9933344F6D9783EBEF82E166 /* CompositionElement.swift */, + B1E50E1D8743786CAB553B7AECD34037 /* MeshNodeEntry.swift */, + C8393A20734DC4DCAA7CBDA0713418E2 /* MeshState.swift */, + B5196C7F6E7C27B3BBF4A0533308E120 /* MeshStateManager.swift */, ); - name = Pod; + name = Legacy; + path = nRFMeshProvision/Classes/Legacy; sourceTree = ""; }; - 8B2299BC6E7B6E0CDA70F95E1971CDCF /* Products */ = { + 6231849F89289A79392FFF5A0E220155 /* Mesh API */ = { isa = PBXGroup; children = ( - B4C001B7D2FB9649EC19C565872AF0D8 /* nRFMeshProvision.framework */, - 0D52291E7D8F400A8478B5A3E5457BC7 /* Pods_nRFMeshProvision_Example.framework */, - 5D1064AE7769CE96C69DAF830939B26B /* Pods_nRFMeshProvision_Tests.framework */, + 96D77A389E0E469A326F4DB389CE2345 /* ApplicationKey+MeshNetwork.swift */, + 26902C578F7758A4E59836CDEE77EFD6 /* ApplicationKey+NetworkKey.swift */, + DD3DB5E9AA3D62916415CE0FE3CC278B /* ApplicationKeys.swift */, + F062E389D722C07A410D7EB275A4DB29 /* Element+Address.swift */, + B3B4B5C6095D94B29E3D26B82CB9F0DC /* Element+Keys.swift */, + 863113D0AE0433D94DC43C82C14FBD96 /* Element+Models.swift */, + A63522AA7576CCEDB831D6843DBA8521 /* Group+MeshNetwork.swift */, + 1F594F1A3E786DB7FC126279C38A2DB8 /* Group+Scenes.swift */, + 67304003ED1F9CD50AFFF4C8D22F0C9B /* MeshNetwork+Address.swift */, + DA13E311C7A590245DDE0F92794976D6 /* MeshNetwork+Groups.swift */, + 069E4C69CD3D2AEB264D72140A4C84AA /* MeshNetwork+IvIndex.swift */, + 39FBFA8A1CA8990AFF7D95A4C6CB3E25 /* MeshNetwork+Keys.swift */, + 0614ABA62D747D65C04DA080C9FEE309 /* MeshNetwork+Nodes.swift */, + 357159A8F09BB8520DC8DC85E59CF519 /* MeshNetwork+Provisioner.swift */, + BE0BB037FBD45F8F275E8EDDCA0738CC /* MeshNetwork+Ranges.swift */, + FB0924EC0C6D7D36B3D27285EB959D6F /* MeshNetwork+Scenes.swift */, + 5C0AADA999641CA0EC874CAE5B354287 /* Model+Keys.swift */, + BC5EB656030DEB92E49C3255DE0A3105 /* Model+Name.swift */, + EEF8B3F660BB9769949A322EC0C457A7 /* Models.swift */, + 285C7E188C7324018C8E4293B1AB0DC0 /* NetworkKey+MeshNetwork.swift */, + 3B654D4666EF481AC689C355E0377F2D /* NetworkKeys.swift */, + 3A6F409EB75CF4A34C7156AE92F1D636 /* Node+Address.swift */, + 0A28A87A172B55A851A908F66794F692 /* Node+Elements.swift */, + 70CFA7B3BA308216DDCC444B4F4A82C6 /* Node+Keys.swift */, + 29615FF44CE98DB3EC91D66BCD88DBA4 /* Node+Provisioner.swift */, + 394F03CAE28D4A587367D327FF1A0682 /* Node+Scenes.swift */, + EBE68C5FFB47CCA00621F63ED1F75CE8 /* Provisioner+Node.swift */, + E4BB14115260B8103F56E37CF09317EB /* Provisioner+Ranges.swift */, + BEE8391CDEC7B3BBE2E716F3A891B023 /* Ranges.swift */, + 57FBC1C848BBB7425F742DFB2E8DE98C /* Scene+Nodes.swift */, + 86AAC82ABC592010DB8AA76A04EEEBAE /* Scenes.swift */, ); - name = Products; + name = "Mesh API"; + path = "nRFMeshProvision/Classes/Mesh API"; sourceTree = ""; }; - 9498A0AAA58AA458E99943A03807A5DD /* Mesh Model */ = { + 62DB39DFEE4813CBF758850C2C12D65F /* Frameworks */ = { isa = PBXGroup; children = ( - 6B844F95AE5B5B580DB1F288F2759C3E /* Address.swift */, - 11A9F100FB07A821694839C04CF49141 /* AddressRange.swift */, - 0CC7C76EB155EE56D2A3041E855A0666 /* ApplicationKey.swift */, - 7E86EAE7C007F98C915E3D3DD06257A9 /* Element.swift */, - 6859C37A0FDCA6A418DD5C5722EF8F33 /* Group.swift */, - A587ADA1263AD5C8A4F74E9D01FC8FCC /* IvIndex.swift */, - F68851D4D5EABCE49C2D4B226DD6FA87 /* Key.swift */, - BDE5B13B82E755BB156EB385EDE5E57D /* KeyIndex.swift */, - 6E80C142A0FE78DC6F1289615E3022D9 /* KeyRefreshPhase.swift */, - 1C96F1083BBA8D28290D28E1D0B1D873 /* Location.swift */, - 8DA000EBAC840A41801D51BFADA2BDA2 /* MeshAddress.swift */, - 45941F789BD94EDB9190B84F63FA4A9F /* MeshData.swift */, - AC9A77880EAAB7551F16814BAF689253 /* MeshNetwork.swift */, - 69FD466B7D6A76C45BA8E857F7FAD9B4 /* MeshUUID.swift */, - F66CE89BEF807338ACBD94C3A9A4B3A6 /* Model.swift */, - D276E093A2F982265C747D3AC51C9ECF /* NetworkKey.swift */, - D796DFA4C046B9BF34622046781D3A60 /* Node.swift */, - 988CFEC0FDA68C6E21040920A7A614FA /* NodeFeatures.swift */, - D49FDD60B702BE67743F9112272A5795 /* OnPowerUp.swift */, - 3B3EB40AEB868FDD471922FF6753C73E /* Provisioner.swift */, - 8DF53E8D4B3300108937C4AE498A66B1 /* Publish.swift */, - 1CB175CE5FD8E4A5A5E758108A4F92AE /* RangeObject.swift */, - 0671F9A5A27248CD09444D00F3E26CE4 /* Scene.swift */, - EADD335D05EEF7CC0F7200355C039EAE /* SceneRange.swift */, - B2BB347089F5440DBF0B3C14C0825396 /* Security.swift */, - 6B8E92E6E5C22AD1FF4019A14C748B78 /* StepResolution.swift */, - E4C72DDB355FDAEC083B50197A36D7EC /* TransitionTime.swift */, + 7C04CB8F9C60CA901FCF79B3A746A78E /* libcrypto.a */, + 4C32BFAA81ACA270F848AF3588321CEC /* libssl.a */, ); - name = "Mesh Model"; - path = "nRFMeshProvision/Classes/Mesh Model"; + name = Frameworks; sourceTree = ""; }; - 996E6F83C5B3C7E3D16CA487E13180B5 /* Generic */ = { + 758A5DE836A2BB0FDAFD05E5F9C915F3 /* Access Layer */ = { isa = PBXGroup; children = ( - E3878D06CDEC359A85D65E80FA3A8DA5 /* GenericBatteryGet.swift */, - 6BF3C54112737715A3472C3DDEF7D28F /* GenericBatteryStatus.swift */, - F9A84F6B8F538F01388759FD9DA3D61C /* GenericDefaultTransitionTimeGet.swift */, - 4665699539B446FF0D900E1A0BE586D6 /* GenericDefaultTransitionTimeSet.swift */, - 1D52BE616007CF5E0D57EF9FDEFED698 /* GenericDefaultTransitionTimeSetUnacknowledged.swift */, - BF2C46F50D9B9E91AE6E9B9CFA36863D /* GenericDefaultTransitionTimeStatus.swift */, - 12F1000703E09E8D1FF4B475F9FADD0C /* GenericDeltaSet.swift */, - 1E2730C4A62DAFC1BA2491B3FB81CB8D /* GenericDeltaSetUnacknowledged.swift */, - 13AF65795732EC5B7153E200AD166C2E /* GenericLevelGet.swift */, - 4BE77A4A734C944D3B6F3BB4266E153F /* GenericLevelSet.swift */, - FDD02B804C2CE7A7E5E3B45EDB82CC03 /* GenericLevelSetUnacknowledged.swift */, - 69227A1E733C06F58F4331532535F679 /* GenericLevelStatus.swift */, - 6EFBA9E2D51FD2BF6B5149CABB31044B /* GenericMoveSet.swift */, - 3F85AB7FC8BB273D6B2730C97363009D /* GenericMoveSetUnacknowledged.swift */, - 420867CCA79B0B87A7AFA8BAE85E2A05 /* GenericOnOffGet.swift */, - BF89BEE4A2BB2D30065996C90C2248AA /* GenericOnOffSet.swift */, - 54166318474ABE72B33B2889738B52B6 /* GenericOnOffSetUnacknowledged.swift */, - 1A5E86959F49A0F4B0FB33D3E82235F8 /* GenericOnOffStatus.swift */, - 1AB42D917A68F9EBA3DADEB36E7A3841 /* GenericOnPowerUpGet.swift */, - 24BB185C3E8BAD662ECE491EF37DA961 /* GenericOnPowerUpSet.swift */, - D60EDD660A00E98527FD5816D1DDB490 /* GenericOnPowerUpSetUnacknowledged.swift */, - 34FB4CB3FD6B60123E75C2FFA5DF0B9F /* GenericOnPowerUpStatus.swift */, - 2A1D4F7584E47C8233117CE574B145A5 /* GenericPowerDefaultSet.swift */, - A7E62745922D4389311F14CA1911B1A2 /* GenericPowerDefaultSetUnacknowledged.swift */, - 4E0881D75865E2DF5F038B4CA9BC4540 /* GenericPowerDefaultStatus.swift */, - 1675A6423047E7B2314146A482E4CE3F /* GenericPowerDefautGet.swift */, - 116016D9E7CAF5D7B7447AD027A2AADA /* GenericPowerLastGet.swift */, - 637231D1D1F5E36A51DC5B6820E594AF /* GenericPowerLastStatus.swift */, - 8C94E9B032AA8E4D62FED160E4EA98F5 /* GenericPowerLevelGet.swift */, - 7D0E13C6F233D3517B6C68DFB4E89D1E /* GenericPowerLevelSet.swift */, - 350BA3BF14B883C741AE1BE3FC5A413D /* GenericPowerLevelSetUnacknowledged.swift */, - 7E77A79A09C188F27D5948B54098582F /* GenericPowerLevelStatus.swift */, - 2E129F379D212DC631B25A6FDE037F36 /* GenericPowerRangeGet.swift */, - 32B6E45BA98554B6A036ADDC5969CCF4 /* GenericPowerRangeSet.swift */, - AB3F98F808787F4809E3E3B28B60C6AC /* GenericPowerRangeSetUnacknowledged.swift */, - C38860760DBFC5062DA9F4ABCDA426FD /* GenericPowerRangeStatus.swift */, - ); - name = Generic; - path = Generic; + 46893EB49A5E3BFF3AD893BD854F3F46 /* AccessError.swift */, + 8CD665A3137FFC6F83C5791A15DFA7A2 /* AccessLayer.swift */, + 5EE159560F671302D998BD653389CA2B /* AccessPdu.swift */, + ); + path = "Access Layer"; sourceTree = ""; }; - 9B4713B9C468502809CBF649C3E10BA3 /* Mesh API */ = { + 842C0D080732FF87F992C4F6CD7871AE /* Type Extensions */ = { isa = PBXGroup; children = ( - 1D2FE8143EF7E049DBF956D08F89896F /* ApplicationKey+MeshNetwork.swift */, - 687977F55B48F4CBE2671F023E509ED5 /* ApplicationKey+NetworkKey.swift */, - 136A871AC6BE69F7BF5770C379B0BBFA /* ApplicationKeys.swift */, - 36917E6A31C54EAF6E3F0D5CCAC86693 /* Element+Address.swift */, - 010B08819C407B094175745BA42882E6 /* Element+Keys.swift */, - 20F225458DB441DA5ECCC3E27276E851 /* Element+Models.swift */, - 463FAB2DA56E85A4F21B1B6823902588 /* Group+MeshNetwork.swift */, - 7AFF0E742DBE30CEC0164F913795E816 /* MeshNetwork+Address.swift */, - 4E0FCF14DCEFE53ED203BA4345162056 /* MeshNetwork+Groups.swift */, - 46FA9061ED8D93522997BBC6C0EF0CF0 /* MeshNetwork+Keys.swift */, - 50E3D64B04CAD991A9D53D79854F7A6F /* MeshNetwork+Nodes.swift */, - B5438BAACE142F3554AB28CA47CF1BB0 /* MeshNetwork+Provisioner.swift */, - 862BA501FB72D70CEA6B69ECBA0056BB /* MeshNetwork+Ranges.swift */, - D4C4ABEEA989899065D8A6E85D1D92C6 /* Model+Keys.swift */, - 0F7EEC370FCA77181BCDBE169C4D5E6C /* Model+Name.swift */, - 1B5FF462B80E3D42E2AC0D243D1E86B5 /* Models.swift */, - 552D0D5175110B3B0CA57BB06FCA0491 /* NetworkKey+MeshNetwork.swift */, - 494BBAB6971A932B603979B947DF47F6 /* NetworkKeys.swift */, - E244993E5A0E30B5A48FFEA7E13F47EC /* Node+Address.swift */, - 97896B9201878EBA9DBA0A7AE13092D7 /* Node+Elements.swift */, - 5DF99819328F1E0444EB6A55E4542F55 /* Node+Keys.swift */, - 7A8D942025825F779D6E6468069A88AC /* Node+Provisioner.swift */, - E348515643BF0358FFE7C6C67E0BB3C7 /* Provisioner+Node.swift */, - 815FA66C8A9FE319EFF5B8AD3B5EF9CD /* Provisioner+Ranges.swift */, - F966405A6EF0BAF1CE2106373EE994E3 /* Ranges.swift */, + BF2D7985C10F2E7511EBD2885031013C /* ClosedRange.swift */, + 0114E9587826C418D92C09F2B13BB810 /* Data.swift */, + DB79A07FC2C0F070D83720D365B9F1C3 /* Data+Hex.swift */, + 8851873E33ADEF60C900C1652B002C0E /* Data+Keys.swift */, + E5AB6D8291E6E63CF9E0996DC1871DC8 /* Int+Hex.swift */, + 3900445EB0492670900280E64DB5728E /* KeyedDecodingContainer+Legacy.swift */, + 367B943AEB08A4EF953FB78F7E73DEC8 /* OptionSet+Data.swift */, + 9BBEECD02EDF3BF4C360018F0BC1D4C8 /* UserDefaults+SeqAuth.swift */, + 5AF4B7D64CCE82616BF3A34E77C80A88 /* UUID+Hex.swift */, ); - name = "Mesh API"; - path = "nRFMeshProvision/Classes/Mesh API"; + name = "Type Extensions"; + path = "nRFMeshProvision/Classes/Type Extensions"; sourceTree = ""; }; - A7972FD9AB2A5B3BAA59761A14260292 /* Pods */ = { + 8479BAA8FF147F675C3CCF6774776249 /* Pods */ = { isa = PBXGroup; children = ( - AEB7C584ECC446DB2308B455A56D7670 /* OpenSSL-Universal */, - CEFC20D91920DC922D9FBBD545E36CDA /* SwiftLint */, + 9897DA8C1900E88B50FDD4D0F512EA4F /* OpenSSL-Universal */, ); name = Pods; sourceTree = ""; }; - AEB7C584ECC446DB2308B455A56D7670 /* OpenSSL-Universal */ = { + 8B2299BC6E7B6E0CDA70F95E1971CDCF /* Products */ = { isa = PBXGroup; children = ( - 533F8B515544EF3D8A2EF844F7047647 /* Static */, - 07F09E36339D34E54E94A126C0B23D41 /* Support Files */, + B4C001B7D2FB9649EC19C565872AF0D8 /* nRFMeshProvision.framework */, + 0D52291E7D8F400A8478B5A3E5457BC7 /* Pods_nRFMeshProvision_Example.framework */, + 5D1064AE7769CE96C69DAF830939B26B /* Pods_nRFMeshProvision_Tests.framework */, ); - name = "OpenSSL-Universal"; - path = "OpenSSL-Universal"; - sourceTree = ""; - }; - AF2732F1BAB9720F2AE6B6A2EEF8A28F /* GATT */ = { - isa = PBXGroup; - children = ( - 5A32564BCA26A1AC3CFA2623EAEB0E70 /* BaseGattProxyBearer.swift */, - 7FC3174CDBDF2103FAD5E759E8F5C5A4 /* GattBearer.swift */, - FAF8A6A3436D61C4695468AC100A4221 /* GattBearerDelegate.swift */, - 65C5220EEBD9334D6BC81D0F888EEFE6 /* GattBearerError.swift */, - AA6F8A9C411146CE356BDEA7E91B9270 /* PBGattBearer.swift */, - 42ECE2D03C9D384EE01311C58256AA3C /* ProxyProtocolHandler.swift */, - ); - name = GATT; - path = GATT; + name = Products; sourceTree = ""; }; - B3B7DC179DEA0E9025A4805FA0EA064A /* Network Layer */ = { + 93D5BA7F87C7B04AB1B2F300DBF51245 /* Layers */ = { isa = PBXGroup; children = ( - B3BB8A2DF7DD75D205A72EF7E214C6A2 /* BeaconPdu.swift */, - 081EAD623866368C7671D11D9B2658EE /* NetworkLayer.swift */, - 2AD1310A338736EFEC07A803E5DDA9CE /* NetworkPdu.swift */, - B623887027B125E6CBEF90AA69CC6882 /* SecureNetworkBeacon.swift */, - F1466ECD8D86EBDAB1B7008F2F78EC6E /* UnprovisionedDeviceBeacon.swift */, + 086D4A80331A2F71239B4A8590F5FA21 /* KeySet.swift */, + D997141E7D47601A5C290C0BCBDAFA24 /* MessageHandle.swift */, + 5590A91F2AB8E80A34443A3DE54AF329 /* NetworkManager.swift */, + 758A5DE836A2BB0FDAFD05E5F9C915F3 /* Access Layer */, + F0EF7D6A9B3E6EB7F5B802416B9D1F25 /* Foundation Layer */, + 402565F25D00CB063619B37C805FE92A /* Lower Transport Layer */, + A053EBD7CCE37147ED7428B36083E14F /* Network Layer */, + A68EC0ABA9841C38082E980F54CACA5A /* Upper Transport Layer */, ); - name = "Network Layer"; - path = "Network Layer"; + name = Layers; + path = nRFMeshProvision/Classes/Layers; sourceTree = ""; }; - B6516236A1C956F137F8C233C410520E /* Utils */ = { + 9897DA8C1900E88B50FDD4D0F512EA4F /* OpenSSL-Universal */ = { isa = PBXGroup; children = ( - 84395293D1AABED5AD348DC93B30EA16 /* BackgroundTimer.swift */, - 95E5638447767A8F60F884BDD9C504C6 /* Beacon.swift */, - 21895FCBAB3D775C52ED6C57952CE444 /* CompanyIdentifier.swift */, - CF8A2A51FFE8A3AC73F007F4776B5873 /* MeshConstants.swift */, - 6B7D1CC424ECDCC78458895C6C84CFC0 /* MeshLoggerDelegate.swift */, - 0A5DC2434FC2B09AEDD2E3E5AF59DDAC /* OpenSSLHelper.h */, - 3379AFBFE46D5987C50691C2155B1217 /* OpenSSLHelper.m */, + C5F22BB3ED14443B508C82F3913211B9 /* Static */, + 2E6AE8FFB4AF5B384451FA12798EDDF1 /* Support Files */, ); - name = Utils; - path = nRFMeshProvision/Classes/Utils; + path = "OpenSSL-Universal"; sourceTree = ""; }; - BA8092607AFAEE17B1364DF9565D33BC /* Proxy Configuration */ = { + A053EBD7CCE37147ED7428B36083E14F /* Network Layer */ = { isa = PBXGroup; children = ( - 17CE76F641DB38485019AFEB30ED9BEC /* AddAddressesToFilter.swift */, - 3BBC8E101E888F3F7FD47A8A7040129F /* FilterStatus.swift */, - 5F753B2F1B496E312CC509485D9B73A8 /* ProxyConfigurationMessage.swift */, - D24B5B4903EDD1522601CC27B38BFF68 /* RemoveAddressesFromFilter.swift */, - 2F95F20A5450D304188B4DA656E26B46 /* SetFilterType.swift */, + 31A6E2A535B4FC1E615503C9E1510293 /* BeaconPdu.swift */, + 7EB2873BDECB382E2463189DBE25C044 /* NetworkLayer.swift */, + 177B6E59C57202285350545AB7707112 /* NetworkPdu.swift */, + 137A351D25C03847A810B4C190300A5B /* SecureNetworkBeacon.swift */, + 1DAABCFE49834A707220404517B3B2DA /* UnprovisionedDeviceBeacon.swift */, ); - name = "Proxy Configuration"; - path = "Proxy Configuration"; + path = "Network Layer"; sourceTree = ""; }; - BAF6B31669500DCB4C4A9C1535E2401B /* Foundation Layer */ = { + A68EC0ABA9841C38082E980F54CACA5A /* Upper Transport Layer */ = { isa = PBXGroup; children = ( - 33C33F00D93B77BEC50F5A9EF3388BCC /* ConfigurationClientHandler.swift */, - 3E2C9C363D07FDC39CD6382BD77AB136 /* ConfigurationServerHandler.swift */, + 141E2E2E208AB9FF44FAB7DE6FC6F97E /* HeartbeatMessage.swift */, + 616C1D2483DBD4B539C2501049B88E6E /* UpperTransportLayer.swift */, + 176DE988E7850F4E3B301E1A41A2262E /* UpperTransportPdu.swift */, ); - name = "Foundation Layer"; - path = "Foundation Layer"; + path = "Upper Transport Layer"; sourceTree = ""; }; C0834CEBB1379A84116EF29F93051C60 /* iOS */ = { @@ -1362,13 +1320,12 @@ name = iOS; sourceTree = ""; }; - C40A2DBA6EE61F61EC0AC8F8640FF98D /* Frameworks */ = { + C4C3B91A2E2333FE51E1E7CFAE9F36F1 /* Foundation */ = { isa = PBXGroup; children = ( - 2059BD0065FE9600F1C7C3837FD9AEC9 /* libcrypto.a */, - 05259A0BDB256F91A39213AF8CCAE36A /* libssl.a */, + 4BAD41340921450E87E27DEB06EA5CE6 /* Configuration */, ); - name = Frameworks; + path = Foundation; sourceTree = ""; }; C5E2B1B8BF9F03F32B88F80BDD0DA4ED /* Pods-nRFMeshProvision_Tests */ = { @@ -1387,22 +1344,102 @@ path = "Target Support Files/Pods-nRFMeshProvision_Tests"; sourceTree = ""; }; - CEFC20D91920DC922D9FBBD545E36CDA /* SwiftLint */ = { + C5F22BB3ED14443B508C82F3913211B9 /* Static */ = { isa = PBXGroup; children = ( - 5970066474E1C9302F0A6E01FAB165B0 /* Support Files */, + FA2D6BD8DDE8E93CFB8EAC2BAD1F607C /* aes.h */, + 3AA46AA63A242B252060ABAE578671D1 /* asn1.h */, + 286C7FA634F521AE986CBE5F7EA94321 /* asn1_mac.h */, + 5BEF8EB470CB77C08B6B4A0CAB72C8F0 /* asn1t.h */, + F05701AADE07AE1DE3414B249D1BA650 /* bio.h */, + C2CE75CEF148E08F5A90D484ED3B14BA /* blowfish.h */, + 08B851FBD6661AE0C9428FE3E47A73F9 /* bn.h */, + 655C312DA6FA77AC8F085F361C19D840 /* buffer.h */, + CB168D95937E27E4684CA3C53D1FE4FE /* camellia.h */, + CCA370595AFDDF0A2CB2B4E497F61F51 /* cast.h */, + FEE3A0B48309397581F000C7731A9ABA /* cmac.h */, + 73CE6E893C4DE00F62F33B3890A19D6D /* cms.h */, + 9773AEAA16553FBA92C4C1E4D87BA002 /* comp.h */, + A638434BF044CAA27D67194ACDD5A688 /* conf.h */, + E45439292464F2FA7A648AEC405B2666 /* conf_api.h */, + EFCF9AB9B534CC94E3B4925607EBD44F /* crypto.h */, + E23B564BAE419CA928B3757975169B4B /* des.h */, + 921F8E0DE8BEC10D9EA917D1CBD7B82E /* des_old.h */, + 1F4B62615D9CE86638F7D1FBB0B2D66B /* dh.h */, + F1C72257B08601AD26DAF775122C6855 /* dsa.h */, + BDBD7224D16A5CEEFFD77F8ACA196ABB /* dso.h */, + 899A4A4C07F9E166A98356908E6A5671 /* dtls1.h */, + 0EA262D23FE616D01E82958C96814D91 /* e_os2.h */, + 104CF54BBFD3CF633F4A4B764499F330 /* ebcdic.h */, + 252AB5F58423A7FA0E4382B384690638 /* ec.h */, + 3149A08CBABABC2535315A0EFE197187 /* ecdh.h */, + 9A80A9813E5DC9C72CDC0FAB87FAECF7 /* ecdsa.h */, + D9BF7F38A18BCE41FD33E57EE32E38BE /* engine.h */, + BAC47C1A6E8E4864A4F8C1F9AF229A12 /* err.h */, + 88BBB5682E23D921A6B44339AE02D9FD /* evp.h */, + E49294E97502AB9F1DF36C46487E1CC4 /* hmac.h */, + 7601E906317C44AFF808451B65F3F86C /* idea.h */, + AC193B48BBE76B8B26FDCAED9C6968EC /* krb5_asn.h */, + FFA8601C46B22B4C821F2A811D0129F5 /* kssl.h */, + 65C7FA8A8B0E4F07B49BC7701B5BFD19 /* lhash.h */, + 88445F26375AA6A2EF899EF55235BAD4 /* md4.h */, + A05651A28BB0BA1F8F2C99A942758B62 /* md5.h */, + CA00CF3D55CC760EC0F7423345EB8851 /* mdc2.h */, + D33245484BCFC973E8D3F477700F7EC6 /* modes.h */, + 573D11CCD45B2D7C7BB5CFF9DE25E52C /* obj_mac.h */, + 6C6DF29D6C3418F10A5CFA8B5E30C684 /* objects.h */, + ECBAC663564AE92904E03B16744BAB7C /* ocsp.h */, + 5FB853532AA33FFA03211994D88A34C4 /* opensslconf.h */, + 9736842361C536D76A5AE196FCFE294D /* opensslconf-arm64.h */, + E9E1304AE8005354EFE3ABEA0635DD1C /* opensslconf-armv7.h */, + DA36A093350F13354DD376D6C2EBCF78 /* opensslconf-armv7s.h */, + 81DB13BFE2B83B1CB61D1284C815DD0B /* opensslconf-i386.h */, + 0E0C731C1CA760BDF2D048381A777985 /* opensslconf-x86_64.h */, + C8809C3B3D672CC4CEF2759C0CFC01C7 /* opensslv.h */, + 6C913E7FC0921FCE5F05D1EB975511FB /* ossl_typ.h */, + 52473EF190638F8B70BB7B106E956029 /* pem.h */, + 40CFEDAB3996AA204577A1EA3F8F141E /* pem2.h */, + D60FE2DE2644A676D28BA84A9E45AD38 /* pkcs12.h */, + 992AF82D5D6B3A8B5FDCF51E035BECD5 /* pkcs7.h */, + 5F1EAC28DEA6267500B3B56A25EB453E /* pqueue.h */, + 28D04AF454F82ABD2CB3A08987D0A441 /* rand.h */, + FD8EF19720631C466AB88605FE5F7FED /* rc2.h */, + 3B94863F2F43B1A558AEA4A87F32170B /* rc4.h */, + 955466EDE2479D5063AAFEFD00808574 /* ripemd.h */, + 4884D46681B26B05BAD7D3B4A5DECDC6 /* rsa.h */, + 93CC9E37275CBA868EF39430ED033928 /* safestack.h */, + 7F4EAF28DF885DE55BE604255E7F5F49 /* seed.h */, + 389E335256E38697D5986DFBF9B28E0B /* sha.h */, + 5CB831F04DA9BAFEE7DF154FEFBC9628 /* shim.h */, + 693B00854E3F9CF8CD807027FED10C49 /* srp.h */, + A4C3C0E2ED409AF99FE89B021A2749B3 /* srtp.h */, + 1E4E0360E1BF49D93046ED659EE76F20 /* ssl.h */, + 2D7528E1A131FB7478A069884DB8FEFD /* ssl2.h */, + EB8CF5CF29F5A682D8089A71AA3CB5BC /* ssl23.h */, + 36CE91A78389D943B1662E004AB9E933 /* ssl3.h */, + 900E12CCB7C91C2620232582B2842190 /* stack.h */, + 4DF30A1C20F72552A97837549C91EE14 /* symhacks.h */, + 8F1FFCB14E8CDD6550C3739C5E9C6ED7 /* tls1.h */, + 19D0382069DC755371013699445C6528 /* ts.h */, + C7EBA7F5C53E4F865A69524A5A7F721D /* txt_db.h */, + 1A95A87D9610658F7CB79621E80410CD /* ui.h */, + 9331C27B43215366B04AE2A21144D97B /* ui_compat.h */, + 15C79D3001CE29875442114180C1AF92 /* whrlpool.h */, + 454690EF6913F4BEADFBE904A83AD6C3 /* x509.h */, + 71C63C575EF17A2DBBABDBC060E3B0D9 /* x509_vfy.h */, + D9FC721A09B8E304F4F35960D3668571 /* x509v3.h */, + 62DB39DFEE4813CBF758850C2C12D65F /* Frameworks */, ); - name = SwiftLint; - path = SwiftLint; + name = Static; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - DCC921E83B895882665F7D193B2A0832 /* Development Pods */, + 313CB8F25DBC624F318F23789C8EAFD3 /* Development Pods */, D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, - A7972FD9AB2A5B3BAA59761A14260292 /* Pods */, + 8479BAA8FF147F675C3CCF6774776249 /* Pods */, 8B2299BC6E7B6E0CDA70F95E1971CDCF /* Products */, 0F2AA2D9BD90A341389002F3DB529B60 /* Targets Support Files */, ); @@ -1416,159 +1453,153 @@ name = Frameworks; sourceTree = ""; }; - DCC921E83B895882665F7D193B2A0832 /* Development Pods */ = { + D232B8074F356BCCF2268000300D4470 /* GATT */ = { isa = PBXGroup; children = ( - 30CFA3289975D24484A7A3ECCB072709 /* nRFMeshProvision */, + 45AB77CC1B4A7641A6C3E1CCBF45964E /* BaseGattProxyBearer.swift */, + A7C734431A19A4BCD7259AA120CD9EB3 /* GattBearer.swift */, + 081942080DD78D8AF4492EE5A4BCD305 /* GattBearerDelegate.swift */, + 23C39210A796564FC54301F26CC022D3 /* GattBearerError.swift */, + 91E6F8AF07D0A8B6DA301BAA7D2A8104 /* PBGattBearer.swift */, + 1151EEE973E1C89BFD29C0ABF1B60B46 /* ProxyProtocolHandler.swift */, ); - name = "Development Pods"; + path = GATT; sourceTree = ""; }; - E253EA9027F200AD3C228D0EE24E5CD0 /* Support Files */ = { + D5FF8DCCB2CA59A90FB8443497D01D06 /* Provisioning */ = { isa = PBXGroup; children = ( - 78087E38460D8F6D0646E85E8D4201C3 /* nRFMeshProvision.modulemap */, - BB8BCE0461EB3E09617551F05961D382 /* nRFMeshProvision.xcconfig */, - 14EF4EB62A4A7A4241646BCE3F1A7DA0 /* nRFMeshProvision-dummy.m */, - 48F4593FEA5A01177B8E1D23865F40EC /* nRFMeshProvision-Info.plist */, - E2F46DA9CDBB30F4D68439F11161A93B /* nRFMeshProvision-prefix.pch */, - 40EE2B90580B68FA262FA6F41721CC96 /* nRFMeshProvision-umbrella.h */, + CE96C4753C898D3F9F3EA768D2AFF3D6 /* Algorithm.swift */, + F92BF1F7959A892CA9B31DC80B66EF24 /* Oob.swift */, + 57BFC07AD45778F5C2287ECF3955B0BD /* ProvisioningCapabilities.swift */, + CC59CD173C690ADE3B9C9A324DEE74F3 /* ProvisioningData.swift */, + CBB22AA9C6AB1EC8EE50CB6FF09BF517 /* ProvisioningManager.swift */, + 9F831808C2548697125657A813E8F3F7 /* ProvisioningPdu.swift */, + 84E06300E22F76A537419F0D19EE14C9 /* ProvisioningState.swift */, + F4726528578F47DF5DDF20D237F30890 /* PublicKey.swift */, + B7AEA7035CF7252E74909BD2578FE6D1 /* UnprovisionedDevice.swift */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/nRFMeshProvision"; + name = Provisioning; + path = nRFMeshProvision/Classes/Provisioning; sourceTree = ""; }; - E5511E6DEC301773E8F75FDD1CD58E79 /* Access Layer */ = { + D7B3FBD1B8A48C1619FA7E2FB13D1025 /* Time and Scenes */ = { isa = PBXGroup; children = ( - 663E12E415761E3EA80046BF50229916 /* AccessError.swift */, - 480C74D5F2708A172E458036924784BD /* AccessLayer.swift */, - E466F5200102C350F89EBF923FD9F922 /* AccessPdu.swift */, + B9C45743916C8265483EEEF05FDE15F8 /* SceneDelete.swift */, + A13300957A2ABB8DE686A6CAAE5B3814 /* SceneDeleteUnacknowledged.swift */, + 9F058FC1D5604DB3C01B6F41059E1FB7 /* SceneGet.swift */, + 5BC6897145BC96AD4D95DEBDC833AFC6 /* SceneRecall.swift */, + CE2EE26B7267441D38DF5E9DD785BC80 /* SceneRecallUnacknowledged.swift */, + 1FE3E008B94B089FACB6AAEBED3B7688 /* SceneRegisterGet.swift */, + E1FB77561491E27CC5A3BFA89982FD8C /* SceneRegisterStatus.swift */, + 0B55ED0BAFD5554E3DC353D85F2A4F61 /* SceneStatus.swift */, + E79AE1B74FE67EA0F5F5B9718CE41CF2 /* SceneStore.swift */, + 5A4E1FD0EFB3304369BE0CDF99A3B83E /* SceneStoreUnacknowledged.swift */, ); - name = "Access Layer"; - path = "Access Layer"; + path = "Time and Scenes"; sourceTree = ""; }; - E6A7F29FA9C570812821429A68F5EEB5 /* Lightning */ = { + D7E8319A9C25A0ED4A8A2283B19CD99A /* Mesh Model */ = { isa = PBXGroup; children = ( - B828C4260D655858ED7E3FE6BFE0D890 /* LightCTLDefaultGet.swift */, - 6FC78BBDBEB3317C7A2C489B0874C531 /* LightCTLDefaultSet.swift */, - BE1C76BCBE2D9A73CB79BCDDC4457C1C /* LightCTLDefaultSetUnacknowledged.swift */, - C5F4441C288DF3384A08FDD14D31102E /* LightCTLDefaultStatus.swift */, - 53756E93A95E6AD14FB0A43577386DD6 /* LightCTLGet.swift */, - 59EFB2A5A275FDC979D1DCBCE8BEA700 /* LightCTLSet.swift */, - 47B2C04429BC1B5E4E6E8AF80FBBBA4D /* LightCTLSetUnackowledged.swift */, - 5CF4B3EED2A9B049C85ACB7A4EBEDFC4 /* LightCTLStatus.swift */, - B7981CF0EAB038F85C31F56374AE26E7 /* LightCTLTemperatureGet.swift */, - E5295A7707ABC1FCE73976E05C9559C9 /* LightCTLTemperatureRangeGet.swift */, - B484DCB831B756BC13A8FDC08209CF0E /* LightCTLTemperatureRangeSet.swift */, - 5F836FBFB07B5CE3E479E76B35548E52 /* LightCTLTemperatureRangeSetUnacknowledged.swift */, - 29399E6C634E1578CF48EC684125264E /* LightCTLTemperatureRangeStatus.swift */, - 648466E1E96A51C266D40D32FC114E04 /* LightCTLTemperatureSet.swift */, - E810AA66B017B8FE221FE9EEC02B83AA /* LightCTLTemperatureSetUnacknowledged.swift */, - 3CB19A3A0B17E8C388563EA2BA780718 /* LightCTLTemperatureStatus.swift */, - 1A9445051AC704B63B4416B0E544A66C /* LightHSLDefaultGet.swift */, - D9615C5BBC4301AB727216D096AE9C58 /* LightHSLDefaultSet.swift */, - 770C565E68279DEFEB7CB8E2415A4F26 /* LightHSLDefaultSetUnacknowledged.swift */, - DB4E39A1E7F2D8CFD8BE03EA7324593C /* LightHSLDefaultStatus.swift */, - D293E520C8600EAEE5D7CA4BCCB73D25 /* LightHSLGet.swift */, - 216CC0A519245D382C4C1D293134D4BB /* LightHSLHueGet.swift */, - 315CB18BED0BE31D685439E753EFD368 /* LightHSLHueSet.swift */, - 60F03887E49A2E1BC786255F40013721 /* LightHSLHueSetUnacknowledged.swift */, - 6C3C04000E21EAF8AADA9AE4AAC88093 /* LightHSLHueStatus.swift */, - 972C6FE50A4D1449EC11116960AA29EC /* LightHSLRangeGet.swift */, - D0B950D4B4DE30E5015690DE2D47B9B8 /* LightHSLRangeSet.swift */, - A9F3AA907874402F2290FC79A252752B /* LightHSLRangeSetUnacknowledged.swift */, - 24B73186CE83020E1B0D60D19F363886 /* LightHSLRangeStatus.swift */, - EE9BB762BB289CC2D314C3D493D063EB /* LightHSLSaturationGet.swift */, - 9426567D0BC2F7931DF60284DB65ACAF /* LightHSLSaturationSet.swift */, - B84F8EB7D50D67F22FEB32EC3374ECD6 /* LightHSLSaturationSetUnacknowledged.swift */, - 0C7AB13F8128D1C3941E3A29C5B69C30 /* LightHSLSaturationStatus.swift */, - 33862777B67E6F778FA101D66A54179A /* LightHSLSet.swift */, - A3BE6F574E372EA72089A017B05DE928 /* LightHSLSetUnackowledged.swift */, - 01419A6DD362C3A35A29C53F24D2DC87 /* LightHSLStatus.swift */, - 6B2B87A0BE281989A7802521D93F92C6 /* LightHSLTargetGet.swift */, - 12045479F74544041FA3CA2F30CA80B2 /* LightHSLTargetStatus.swift */, - EB96E52D31B652983DAD638B8A89ECD9 /* LightLightnessDefaultGet.swift */, - B22C6574E40AB34D5D5C85955206F403 /* LightLightnessDefaultSet.swift */, - 8415C6D72A1E8E63C8031230B27DF226 /* LightLightnessDefaultSetUnacknowledged.swift */, - 7AE2B87D29A92A272AA7110CC7D1DF8A /* LightLightnessDefaultStatus.swift */, - 37EC3959BB5B469DDCDA0A082014E1F5 /* LightLightnessGet.swift */, - FFF38BEC46F2A672A9CD02E63E187A64 /* LightLightnessLastGet.swift */, - 2FFFB354277BE8A54B76B14DC9A42C53 /* LightLightnessLastStatus.swift */, - 52FC263AF94BB4945735E2B0566073C1 /* LightLightnessLinearGet.swift */, - ED62BDE7DD6AC352ACAEBD1B9D38174E /* LightLightnessLinearSet.swift */, - ACABCDE1989494206E89DE1F8D35C54B /* LightLightnessLinearSetUnacknowledged.swift */, - B21D2D5515F691DBF664CD396187FCC8 /* LightLightnessLinearStatus.swift */, - 1690647A8327F3756BA53019B3EB3C12 /* LightLightnessRangeGet.swift */, - B5DF4ED14A1420B98112771A9AF1AAD1 /* LightLightnessRangeSet.swift */, - 89FF4A292C289923B79E3A6AFEEDF046 /* LightLightnessRangeSetUnacknowledged.swift */, - ABA47A2314B513BCAED6289FDDACEF2B /* LightLightnessRangeStatus.swift */, - 43993776BCB717466C26B404C567F5EE /* LightLightnessSet.swift */, - ECA06684FE347E31397DB2C0FFEDB631 /* LightLightnessSetUnacknowledged.swift */, - D8FB991798342ED707DB2DBFE9FFD429 /* LightLightnessStatus.swift */, - ); - name = Lightning; - path = Lightning; + 244D2F506BD37CA3E1A52FDCAF3D9669 /* Address.swift */, + AA02EAB04F52150DA37B147F5B81F6B0 /* AddressRange.swift */, + D3F618692DE7365A5628BDAEE4754E39 /* ApplicationKey.swift */, + 86AEFB6ACB89A47827F740E4A8C74C40 /* Element.swift */, + C020C84D5F8DF89F12AA24FE7B481E88 /* ExclusionList.swift */, + 64CF22409E6C51CC320C000914BF8FF6 /* Group.swift */, + 1CE5C57A06807CA13EDA22A1FC84C3D7 /* HeartbeatPublication.swift */, + 4FF00211FB3CE12EDC81F62BFF3BD3FC /* HeartbeatSubscription.swift */, + ADEF1335E8E050B1868AF7CC386D6EF5 /* IvIndex.swift */, + 78B481BF1A8D895CC20E4A761C92244A /* Key.swift */, + EE90E8A2965A705EB89DBB3C41B323A3 /* KeyIndex.swift */, + DDB0CC68D6B319CE9846AA9C2DCDAEB8 /* KeyRefreshPhase.swift */, + 8DD2CA5E5F9218479A62BEF24E9D789C /* Location.swift */, + 5A2B14BE74901244F02B1EA9AE7AC2AD /* MeshAddress.swift */, + A742788447ABBB1A41B9F06AD2D6C0E3 /* MeshData.swift */, + 1896DF907DDA488BF13D1ACFCAEE915B /* MeshNetwork.swift */, + 047CCCC2666106218A6EF75A4D2C6B91 /* MeshUUID.swift */, + BADB886E25ECC573130500DCC32BC33F /* Model.swift */, + FB206B3FA4A91A0CC10DC97E0C801C73 /* NetworkKey.swift */, + B86777731FF05E6F236B7CEC7975BA1C /* Node.swift */, + E6852408D02E509AF8434F400283B459 /* NodeFeatures.swift */, + 0CBD46A118518D32C99E31523D320866 /* OnPowerUp.swift */, + 38E687EDDA18714A3F0958232F9E3290 /* Provisioner.swift */, + 5E6B1F4760DB963DFF72B47134DBF69A /* Publish.swift */, + 5D96BE6505E8D1491A3AE2A15DEC7820 /* RangeObject.swift */, + 29DA850837892D1293613A2CBAB9FB75 /* Scene.swift */, + 37D4CEA08FC1B90563EB7B7844B7C89E /* SceneNumber.swift */, + 430E66E8094273A9A38C84A2ED79DC0A /* SceneRange.swift */, + 59BECF6C906EF4134A0FF23A6530BC7F /* Security.swift */, + 84350BA16E6D1DCF096DAAD2B45B0162 /* StepResolution.swift */, + C3BC3E6859E89A8E1F506B9996B9AF88 /* TransitionTime.swift */, + ); + name = "Mesh Model"; + path = "nRFMeshProvision/Classes/Mesh Model"; sourceTree = ""; }; - F036F560C40E64400355DC0AC049D42E /* Bearer */ = { + F0EF7D6A9B3E6EB7F5B802416B9D1F25 /* Foundation Layer */ = { isa = PBXGroup; children = ( - 490989DD553F93363A49771D8C029816 /* Bearer.swift */, - 5AA16A953EA62C180AAD56CEBE34F524 /* BearerDelegate.swift */, - 23F133F7120DA99A60097C753325E268 /* BearerError.swift */, - AF2732F1BAB9720F2AE6B6A2EEF8A28F /* GATT */, + 214B01C8CA43EA16BB23DB504FD357E6 /* ConfigurationClientHandler.swift */, + BDFAFBBCD533A1C00784C45FF0C99AD3 /* ConfigurationServerHandler.swift */, + 8C6BE5F3C587F2FCDD5F1A801F253DD0 /* SceneClientHandler.swift */, ); - name = Bearer; - path = nRFMeshProvision/Classes/Bearer; + path = "Foundation Layer"; sourceTree = ""; }; - FAE292CD50ACEC2354418F42281FDEC4 /* Mesh Messages */ = { + F38BA0E0D799602E69C634C8EB26D93C /* nRFMeshProvision */ = { isa = PBXGroup; children = ( - 43201E9851B176A882539D622D983450 /* ConfigMessage.swift */, - DDA0290665462AE283BC316F672EE9DC /* GenericMessage.swift */, - AE9CAA39610F7307C6AF900AB86F7D6D /* MeshMessage.swift */, - FC09084034668EB1211CF503E4664E91 /* MeshMessageError.swift */, - 6BDF51397267B17036156922C150C1CC /* UnknownMessage.swift */, - DEAE4A7E9B9747845296457E61A1A504 /* VendorMessage.swift */, - 5BF05DD913E81FE35C8A4DD9E9A9874F /* Foundation */, - 996E6F83C5B3C7E3D16CA487E13180B5 /* Generic */, - E6A7F29FA9C570812821429A68F5EEB5 /* Lightning */, - BA8092607AFAEE17B1364DF9565D33BC /* Proxy Configuration */, - 15CB185BD224A574D30A0A084FD2B2A1 /* Time and Scenes */, + 65340DBA3A79A084E1B53BBC399D2A1E /* ExportConfiguration.swift */, + 390DCA691B2467DEAE49C19161FAB0D0 /* MeshNetworkDelegate.swift */, + 022AE903AEDEFCE981A2AF2D666BBA57 /* MeshNetworkError.swift */, + 4A009CE54B920D289BB0A36AD631F66F /* MeshNetworkManager.swift */, + 783E3B11336EB68249609BAEF65F7BA3 /* ModelDelegate.swift */, + E59DC204BB60506D29298A0F1EB8AA0D /* ProxyFilter.swift */, + DFE1AEED42610AB1208D72E52D3FF8EE /* Storage.swift */, + 0B4710EDBFA1AF16DA13631D183D39B7 /* Bearer */, + 93D5BA7F87C7B04AB1B2F300DBF51245 /* Layers */, + 56B01142F61A427F244B168B4E1D04A4 /* Legacy */, + 6231849F89289A79392FFF5A0E220155 /* Mesh API */, + 20EE7B0013AC2EBFBC7CFE9EA640248F /* Mesh Messages */, + D7E8319A9C25A0ED4A8A2283B19CD99A /* Mesh Model */, + 1DAE28A78D6F64064A225F067C0D57CF /* Pod */, + D5FF8DCCB2CA59A90FB8443497D01D06 /* Provisioning */, + 3C991DD51B56719A93629B227CE043AA /* Support Files */, + 842C0D080732FF87F992C4F6CD7871AE /* Type Extensions */, + 3ECDD03D16DE5ADE29D81A145C44529F /* Utils */, ); - name = "Mesh Messages"; - path = "nRFMeshProvision/Classes/Mesh Messages"; + name = nRFMeshProvision; + path = ../..; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 27520E1972AF04738A083C5190C094F2 /* Headers */ = { + 8F2F143D1CF7A46AA3755B564A677236 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D12DB538B3D30B51D5200E07B9E50420 /* nRFMeshProvision-umbrella.h in Headers */, - 5522EFA3CB0EE2B00A1EB9B097A69616 /* OpenSSLHelper.h in Headers */, + 3EB3B0B38D68BF29932A74A39FC0F7EF /* Pods-nRFMeshProvision_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 57A73C0ED9F3C66EE698A255EB76102B /* Headers */ = { + B0C062D4B97E10D325FE7D870BEDAFC0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B2B43A7EC10CB80E360646B68B5B0140 /* Pods-nRFMeshProvision_Example-umbrella.h in Headers */, + E47F8DACE0A7E1E44FEA2003CDFD5F2B /* Pods-nRFMeshProvision_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - A85C600553509292C111DDF1D0706694 /* Headers */ = { + CEE4140C5EC2E9B4769077A8AC6518A5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 32B79ACCDC9F239409B66212CCE45994 /* Pods-nRFMeshProvision_Tests-umbrella.h in Headers */, + 1ABD861C29C05F967128E55B974BCBF0 /* nRFMeshProvision-umbrella.h in Headers */, + 96DD649E45A40600C5A7A0AF7A901395 /* OpenSSLHelper.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1577,19 +1608,18 @@ /* Begin PBXNativeTarget section */ 22072749B8AB997E54D438CB4B7DE84D /* Pods-nRFMeshProvision_Example */ = { isa = PBXNativeTarget; - buildConfigurationList = 6782F177CE01CD4AFAED703214778670 /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Example" */; + buildConfigurationList = 3F1F8C672CB0BBF273D586F7FF910F13 /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Example" */; buildPhases = ( - 57A73C0ED9F3C66EE698A255EB76102B /* Headers */, - 1F8C185CAEA9A36CE58645CA58C4EDDB /* Sources */, - E89BE62B1358720E207CB5FB745FC612 /* Frameworks */, - 2569E80EAFB73D82AD02BC31B0576C76 /* Resources */, + B0C062D4B97E10D325FE7D870BEDAFC0 /* Headers */, + 86065F6E6C3668E577F2A0A001CA0926 /* Sources */, + 464013AAE748DDC77F7D13BA0228887F /* Frameworks */, + EAEA28892FD11CDADD6CD28FB1336958 /* Resources */, ); buildRules = ( ); dependencies = ( - 188D5050B88D05BA6A063F703E437539 /* PBXTargetDependency */, - 38191D00E2782010D1F6BFFA8A226D0D /* PBXTargetDependency */, - 981B2F8D6CF7A8EDFE9022BFB072F4A2 /* PBXTargetDependency */, + 1F26D7EDA1E297EF27080DDD7EA1A256 /* PBXTargetDependency */, + 854C176DC9AAEE442A2DF578DAAEB56F /* PBXTargetDependency */, ); name = "Pods-nRFMeshProvision_Example"; productName = "Pods-nRFMeshProvision_Example"; @@ -1598,17 +1628,17 @@ }; C0780CEE93D29D935E9D51E6F1C4CDB8 /* Pods-nRFMeshProvision_Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 8AC4E010999A214111BC6147F64732D5 /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Tests" */; + buildConfigurationList = 4AC7CF73AA056D95E2D09A706047EEDA /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Tests" */; buildPhases = ( - A85C600553509292C111DDF1D0706694 /* Headers */, - 2133F96D50472F01FC18D6E717D1D61F /* Sources */, - E143432239612F417A3081D2D6361169 /* Frameworks */, - 0C1AE73AE1989731BDB092EBDB694EC7 /* Resources */, + 8F2F143D1CF7A46AA3755B564A677236 /* Headers */, + AC3AF1C6BC7B7C14BF0D827D7B0CDDA8 /* Sources */, + AA2A0FFA6C69447F0F43DA82C8E4DBD7 /* Frameworks */, + 6F2EFAA0707C643AE72B06CE7E86ED07 /* Resources */, ); buildRules = ( ); dependencies = ( - 83A5656E0B6F74ED787BEEF7D1A6E9AA /* PBXTargetDependency */, + E446A310001DFC53FF546299F376DB2B /* PBXTargetDependency */, ); name = "Pods-nRFMeshProvision_Tests"; productName = "Pods-nRFMeshProvision_Tests"; @@ -1617,17 +1647,17 @@ }; DBF639A39D1896128BCA040EDD84174E /* nRFMeshProvision */ = { isa = PBXNativeTarget; - buildConfigurationList = 5420460E31B360646EC14CFD936D34DE /* Build configuration list for PBXNativeTarget "nRFMeshProvision" */; + buildConfigurationList = 24FC401598FD6B1819844AA1CF0E174D /* Build configuration list for PBXNativeTarget "nRFMeshProvision" */; buildPhases = ( - 27520E1972AF04738A083C5190C094F2 /* Headers */, - 1009E33F5BF5A237DB0C147454ED8D0C /* Sources */, - 3F293842444C644AEB57F835FF051CF8 /* Frameworks */, - 4430E40179732F39731A6E2F4E133F9C /* Resources */, + CEE4140C5EC2E9B4769077A8AC6518A5 /* Headers */, + 45E95BA19CFFD358BE4BF8D979DEF3A5 /* Sources */, + 942982932FF3F1E06395C93F538DB5E6 /* Frameworks */, + A195827D6489609F2B2591303E6AAE6C /* Resources */, ); buildRules = ( ); dependencies = ( - 35447FFB8995C824196B691C947FE96F /* PBXTargetDependency */, + F8C8C052131A57804E6B562739C7753E /* PBXTargetDependency */, ); name = nRFMeshProvision; productName = nRFMeshProvision; @@ -1641,7 +1671,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1100; + LastUpgradeCheck = 1240; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -1660,27 +1690,26 @@ B9ED5194E665042005069EF06C82A050 /* OpenSSL-Universal */, 22072749B8AB997E54D438CB4B7DE84D /* Pods-nRFMeshProvision_Example */, C0780CEE93D29D935E9D51E6F1C4CDB8 /* Pods-nRFMeshProvision_Tests */, - 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 0C1AE73AE1989731BDB092EBDB694EC7 /* Resources */ = { + 6F2EFAA0707C643AE72B06CE7E86ED07 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 2569E80EAFB73D82AD02BC31B0576C76 /* Resources */ = { + A195827D6489609F2B2591303E6AAE6C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 4430E40179732F39731A6E2F4E133F9C /* Resources */ = { + EAEA28892FD11CDADD6CD28FB1336958 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -1690,355 +1719,409 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 1009E33F5BF5A237DB0C147454ED8D0C /* Sources */ = { + 45E95BA19CFFD358BE4BF8D979DEF3A5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 90AFE679586C4095D02EB610893FED28 /* AccessError.swift in Sources */, - 20C46161D5FD2F8A640A5CD7408DF123 /* AccessLayer.swift in Sources */, - 5B1A52BC74F71F2AE97D188E811D6A28 /* AccessMessage.swift in Sources */, - EFC776CA953A43CA32A7BD31C3770EBF /* AccessPdu.swift in Sources */, - 4238071BDAD04B614FF191238B39DBEB /* AddAddressesToFilter.swift in Sources */, - A37A5F02CE92E547F0FB3DFF0889D12C /* Address.swift in Sources */, - A7BCA30AFAE69A2F636A9044DE664A0B /* AddressRange.swift in Sources */, - 045F02DBE92E3F2D9327D40E70E5CE07 /* Algorithm.swift in Sources */, - 47D2E956D46FF05298E2FF381E41AB5B /* ApplicationKey+MeshNetwork.swift in Sources */, - 08EE5AA3B6050AD4AA2B9FA3AD09B8B2 /* ApplicationKey+NetworkKey.swift in Sources */, - 664718A55EF2893FDC26FCC7C3694A97 /* ApplicationKey.swift in Sources */, - 3EDA68C5CE3205415E74FC787A55412F /* ApplicationKeys.swift in Sources */, - 83494184021814FA38F7A16E11F371AF /* BackgroundTimer.swift in Sources */, - C4B76F5106361A18F29AECD0A7084468 /* BaseGattProxyBearer.swift in Sources */, - 5A3FAE200ED3604CD50E2D00D7730D0B /* Beacon.swift in Sources */, - 279B0F17087940F4F20DAB5119919FAA /* BeaconPdu.swift in Sources */, - 6A47139DC0B77309141AFB3CA086B193 /* Bearer.swift in Sources */, - BD1B0DF4E9535ABA3CBC108C313AC123 /* BearerDelegate.swift in Sources */, - 56423228136609357F0373BE341534C4 /* BearerError.swift in Sources */, - 55B427E3260EE969B6ACF8CE44B0BCA6 /* ClosedRange.swift in Sources */, - 8AB51751AF9447023AE6E44B6BC29E9D /* CompanyIdentifier.swift in Sources */, - 0D18B78F9701772B7DA3C3CFC9AD7DB0 /* CompositionElement.swift in Sources */, - 698EEF33FEF0486E5338EAACCC465DD4 /* ConfigAppKeyAdd.swift in Sources */, - E0F21AD9A183AB2BA87A9E59308D8F0E /* ConfigAppKeyDelete.swift in Sources */, - 87F812720BD5BA26CF7EEB3FCEBA7287 /* ConfigAppKeyGet.swift in Sources */, - C32FA2694C3B297F9593BE119A6604F4 /* ConfigAppKeyList.swift in Sources */, - 99F78ADE54CC064729BEAE1A6798F5B8 /* ConfigAppKeyStatus.swift in Sources */, - 76A69184E9EE7FB324D4EA93EAFD5862 /* ConfigAppKeyUpdate.swift in Sources */, - F21AE7DC601F4C2040FE3CCCC1CD5340 /* ConfigBeaconGet.swift in Sources */, - 09325ED146078658AC421FC3594FBE16 /* ConfigBeaconSet.swift in Sources */, - 6B596DF4BA6447E9F42ED61D108B6F12 /* ConfigBeaconStatus.swift in Sources */, - 022AE41FCFE3923A0EB75627DDA58F85 /* ConfigCompositionDataGet.swift in Sources */, - EEF069C3A5BC3E642059CE4CA2CA128E /* ConfigCompositionDataStatus.swift in Sources */, - 46D6A8A2B68BFA131FBD6A5EE7927B6E /* ConfigDefaultTtlGet.swift in Sources */, - FF6DEDA2A5DE238EADB4FF40816731DA /* ConfigDefaultTtlSet.swift in Sources */, - 8707E60732B7CE04078A4EAB28BDBBC8 /* ConfigDefaultTtlStatus.swift in Sources */, - E5373CD3004CF23E6DE63A3ED6E993B3 /* ConfigFriendGet.swift in Sources */, - 7E341DEF93B038D4587AE3333DE1980E /* ConfigFriendSet.swift in Sources */, - 7572D018676BB49A4083B8D6D38A45F6 /* ConfigFriendStatus.swift in Sources */, - 8B6B108EF2A169E84EEDA5343CDA66A0 /* ConfigGATTProxyGet.swift in Sources */, - 227639E0C4BBA498903BC92880283933 /* ConfigGATTProxySet.swift in Sources */, - 5BC61DE63E7D139662675A0CA290ED5D /* ConfigGATTProxyStatus.swift in Sources */, - 7F3B7FEBC2F6406D00A6684E707CA682 /* ConfigMessage.swift in Sources */, - CD25F77A375C9E419687B7EDCAA74F78 /* ConfigModelAppBind.swift in Sources */, - B34F08C8350DA58DF12B52A0BACEB024 /* ConfigModelAppStatus.swift in Sources */, - AA75C42D90441A5CDEFC778723A146B2 /* ConfigModelAppUnbind.swift in Sources */, - 99560A9B0B571347E394C0EAF71DBE9E /* ConfigModelPublicationGet.swift in Sources */, - 635FCA1159E40CE55BFDEB2B40FBAA20 /* ConfigModelPublicationSet.swift in Sources */, - 4C886843FD53DF2710029A91559A5556 /* ConfigModelPublicationStatus.swift in Sources */, - 6CB688B5570445325974B594F43D656E /* ConfigModelPublicationVirtualAddressSet.swift in Sources */, - B7DE14800A1397C47044F21A33FBC864 /* ConfigModelSubscriptionAdd.swift in Sources */, - A47EFF5784EBB2284873065A55FE3D8E /* ConfigModelSubscriptionDelete.swift in Sources */, - 9ED88244902B04798799908BD0297D56 /* ConfigModelSubscriptionDeleteAll.swift in Sources */, - 32779D2381C67B0B266521FE49BA7A12 /* ConfigModelSubscriptionOverwrite.swift in Sources */, - B1D96496A9E2C0EA34C4A972D0A7160D /* ConfigModelSubscriptionStatus.swift in Sources */, - 59DF7D8A73EC0B98B8F487E40C113110 /* ConfigModelSubscriptionVirtualAddressAdd.swift in Sources */, - 248F406F18178979D2D89362894ECFFC /* ConfigModelSubscriptionVirtualAddressDelete.swift in Sources */, - 95A39FF3452050806829B96CEE76C1A1 /* ConfigModelSubscriptionVirtualAddressOverwrite.swift in Sources */, - 013A53BB71B9D67B7F331104E680630E /* ConfigNetKeyAdd.swift in Sources */, - 884BC65BFAD72F411D8F7FECEDD0B352 /* ConfigNetKeyDelete.swift in Sources */, - CCAF1D13346E40FE1A9B143B7CDCCC43 /* ConfigNetKeyGet.swift in Sources */, - 5987DCDC30DBD3F80875DEBF07E8A272 /* ConfigNetKeyList.swift in Sources */, - 1419F7ECA07244D106371BDF9ECEA739 /* ConfigNetKeyStatus.swift in Sources */, - 5BE81EFC5A1DD0DCE2F57B7FA78B37F3 /* ConfigNetKeyUpdate.swift in Sources */, - 1ADE945F9B1A4F5F67828228BEFAC16C /* ConfigNetworkTransmitGet.swift in Sources */, - 371AD05EC286AA0614E5FB1BFCC80A05 /* ConfigNetworkTransmitSet.swift in Sources */, - 5D9BC0B8A48E3AB418FAD5DF35258685 /* ConfigNetworkTransmitStatus.swift in Sources */, - 6ACADC006A09958AA3820C34AEDEE963 /* ConfigNodeReset.swift in Sources */, - 443ACEEE7C725CA0C4BA094B624AB1A2 /* ConfigNodeResetStatus.swift in Sources */, - 9886A199AE4B1A0C374B90F284C1791B /* ConfigRelayGet.swift in Sources */, - 213D74EE12EE660BBC4BF5DB3510A5A4 /* ConfigRelaySet.swift in Sources */, - 7D9AC6932C20171A0BC53A6910E7489F /* ConfigRelayStatus.swift in Sources */, - 90B5A7F5CE9D5491904ECD9F56A7CC8F /* ConfigSIGModelAppGet.swift in Sources */, - B9934CECFE22F2DB7D820577D854DCB9 /* ConfigSIGModelAppList.swift in Sources */, - A1F4ECAC32493C627E8D5B47835ADB09 /* ConfigSIGModelSubscriptionGet.swift in Sources */, - 5FB5BABF266ADC5F89FE58DCD5EC7B86 /* ConfigSIGModelSubscriptionList.swift in Sources */, - D0CE9EA87D0FFD2319A233EF897E8E69 /* ConfigurationClientHandler.swift in Sources */, - 23430AE0C3EA0655540B5E30B81B6977 /* ConfigurationServerHandler.swift in Sources */, - 7556E92B55A34CF2A6CE32773DC0670D /* ConfigVendorModelAppGet.swift in Sources */, - 2D81D468E5044312FD6FABDCC1B8C6B0 /* ConfigVendorModelAppList.swift in Sources */, - 63AEDC69A6E75A09351857142E2043A9 /* ConfigVendorModelSubscriptionGet.swift in Sources */, - 668C45D55D6A134924C41F518D22E23D /* ConfigVendorModelSubscriptionList.swift in Sources */, - A84F62622C5D2216E2B1A7A6BE7DD193 /* ControlMessage.swift in Sources */, - E2A6439825B37B58F35A6D1E04154D5A /* Data+Hex.swift in Sources */, - E31251C7FB5532CCE757ECE441B9390A /* Data+Keys.swift in Sources */, - D7DC42B750618F68750B86C3A72ABD19 /* Data.swift in Sources */, - FB933DA515B9FA315B7695C5B339C8F0 /* Element+Address.swift in Sources */, - 1C69C6CF2FE594275CCFEBDF1A44F218 /* Element+Keys.swift in Sources */, - E8FB593B27D0FE52F89C5581AF738D16 /* Element+Models.swift in Sources */, - 9CFBEFCE5791BACB261D5343EF32145D /* Element.swift in Sources */, - 5EB0D2033B984FAA74DD547192C84263 /* FilterStatus.swift in Sources */, - 488721C4185FED25BB5C7515461E9F31 /* GattBearer.swift in Sources */, - 374705F372AC0E7EE7E38473283778D5 /* GattBearerDelegate.swift in Sources */, - E831F3466246222480083DB13C95E48D /* GattBearerError.swift in Sources */, - E5E5FE193BA26A7B2C67C360D2765A06 /* GenericBatteryGet.swift in Sources */, - 7B88ADD1FF236F20912D26F8E7192FCE /* GenericBatteryStatus.swift in Sources */, - 01FF0E0C4B62A36F53C7CF3C17D06708 /* GenericDefaultTransitionTimeGet.swift in Sources */, - BD46F9A4F6AAE9DFEF15046AA17F5DE8 /* GenericDefaultTransitionTimeSet.swift in Sources */, - EB5A46D40B829A794E0E1B914604C859 /* GenericDefaultTransitionTimeSetUnacknowledged.swift in Sources */, - AB2F2E3D0F910FDA14FA7B6DE28EFA83 /* GenericDefaultTransitionTimeStatus.swift in Sources */, - D9D38D7C0E067A9D9BE4BF77A573211D /* GenericDeltaSet.swift in Sources */, - C4506B31598A45BF6222257E2F85781F /* GenericDeltaSetUnacknowledged.swift in Sources */, - C1BBD34321A2B854A4C481AD52D831FB /* GenericLevelGet.swift in Sources */, - E0957CC9E184B88F252732EE73447B1E /* GenericLevelSet.swift in Sources */, - 243895897D69D709276A7B94A9CB4CAC /* GenericLevelSetUnacknowledged.swift in Sources */, - D99A23AEB19AF4CCF23A6111247A0D4F /* GenericLevelStatus.swift in Sources */, - BBC40A7B3BF26BE9B6D03C1B21979A8B /* GenericMessage.swift in Sources */, - 97F6F79ED12670F238A01D8F36E1D33C /* GenericMoveSet.swift in Sources */, - 0C0F0C19977B0C151DCDCA3899C475D6 /* GenericMoveSetUnacknowledged.swift in Sources */, - 330E9D2117CF3866F4F7864679A7E1F7 /* GenericOnOffGet.swift in Sources */, - 125260D4BB897CEF59200A8E29724977 /* GenericOnOffSet.swift in Sources */, - 262F8F6BBD5BF9E775FC9BCAFE7FEBF9 /* GenericOnOffSetUnacknowledged.swift in Sources */, - 135920F3396F0A19BBC679640D356012 /* GenericOnOffStatus.swift in Sources */, - B8E1D111F7E2902B29EE87F41EFE6A47 /* GenericOnPowerUpGet.swift in Sources */, - 246196D6513A7261136B3C04B2BBF402 /* GenericOnPowerUpSet.swift in Sources */, - 8511AFAE398420BB716A6FFA6F4FCC28 /* GenericOnPowerUpSetUnacknowledged.swift in Sources */, - 22314FB3C3FBD8EDE92DC7DFD8A2EFC6 /* GenericOnPowerUpStatus.swift in Sources */, - 0B239D99C40E0734BC508A961CDC7633 /* GenericPowerDefaultSet.swift in Sources */, - D4A7A2FDE9A9B65E4E92C885E647A404 /* GenericPowerDefaultSetUnacknowledged.swift in Sources */, - 755F950D3D40EFEE6AEF80FA288EBFC1 /* GenericPowerDefaultStatus.swift in Sources */, - 89C96B88ABDC0F6D7370B1939726CDA8 /* GenericPowerDefautGet.swift in Sources */, - 7CC44760C17CE7321C58B24D36968F12 /* GenericPowerLastGet.swift in Sources */, - 129206F6CE07A7119DA5FF8410D80FF4 /* GenericPowerLastStatus.swift in Sources */, - 2033DB98FE546C5526DE6A2A7CB73458 /* GenericPowerLevelGet.swift in Sources */, - EA283D6C00BDF710CC8155810CE4DFDC /* GenericPowerLevelSet.swift in Sources */, - 21885552F9B536112ABCF647C9FC997F /* GenericPowerLevelSetUnacknowledged.swift in Sources */, - 63859A4AEC40E78A01D1DCF933FAAE3B /* GenericPowerLevelStatus.swift in Sources */, - D75172A1917D0A9B561C3F5B72665708 /* GenericPowerRangeGet.swift in Sources */, - 11153F7B775E81B44533BB630247357A /* GenericPowerRangeSet.swift in Sources */, - B8274375EDE3316F37E09E2DF9067C5A /* GenericPowerRangeSetUnacknowledged.swift in Sources */, - 6B74C6CC9F432264FDA5845C60A0210D /* GenericPowerRangeStatus.swift in Sources */, - 9B418B27B096735D0CA3DD86B41CAD32 /* Group+MeshNetwork.swift in Sources */, - 4B2D1FA3A8971CE04D354585A98B1B16 /* Group.swift in Sources */, - 793BF1CC7F40CAD59E070D3BBC5F6116 /* HeartbeatMessage.swift in Sources */, - A434832E8568F3C1CA961BE5157403A4 /* Int+Hex.swift in Sources */, - E393F2CA9ADC180B237C0387C7BEE41B /* IvIndex.swift in Sources */, - A0A4A586C6A853B6B32C9017E7C75256 /* Key.swift in Sources */, - 27E0F3F275250575C572B9BCCF7C9FB0 /* KeyIndex.swift in Sources */, - E61E84ABEA82AB923D1B62799061520A /* KeyRefreshPhase.swift in Sources */, - 44F9D05F7992FA329D86BB2441F0E406 /* KeySet.swift in Sources */, - 2B777DBA5523EDB2B68F51378DEB114F /* LightCTLDefaultGet.swift in Sources */, - 600063CE520042FDD8B6DD376D7C0BA0 /* LightCTLDefaultSet.swift in Sources */, - 2B5AA85F0DC2E3F4BCF79671F6A60A88 /* LightCTLDefaultSetUnacknowledged.swift in Sources */, - 6F3FD3B5D63CD75326733740E335525D /* LightCTLDefaultStatus.swift in Sources */, - 43061484CC0AD72C55D6C9F1D640C476 /* LightCTLGet.swift in Sources */, - 635C39DA6EDEB7645442FC7D055377C1 /* LightCTLSet.swift in Sources */, - 51623E007033703B2BDA7DB8A7DA7235 /* LightCTLSetUnackowledged.swift in Sources */, - DAE564FBDAF9E0CC073E2AA09759141F /* LightCTLStatus.swift in Sources */, - 7649B9CD9219C338AF4AE31C6941698C /* LightCTLTemperatureGet.swift in Sources */, - 762C3C5E02E7961629FB33C4FA6A3A87 /* LightCTLTemperatureRangeGet.swift in Sources */, - 0393BDB3F8DDEB74738C895E69982061 /* LightCTLTemperatureRangeSet.swift in Sources */, - 2171CE3F374CDBEE26451CC5005F2776 /* LightCTLTemperatureRangeSetUnacknowledged.swift in Sources */, - 5ED93D8352B8959B11453192F6561A0A /* LightCTLTemperatureRangeStatus.swift in Sources */, - 2E4BDA6A3C15058034BB2B3696F273A8 /* LightCTLTemperatureSet.swift in Sources */, - 7799B6871D3D8FAF71B4CB9F99F21FBD /* LightCTLTemperatureSetUnacknowledged.swift in Sources */, - B44F0A4D64314AA2B54FE2D05880F566 /* LightCTLTemperatureStatus.swift in Sources */, - 6E5D5E2FFC5C19146C646FD3661455CA /* LightHSLDefaultGet.swift in Sources */, - E94CA393EE6F959FB74AF304CB4989F5 /* LightHSLDefaultSet.swift in Sources */, - 0979755825030FD3C747635E25CDDA45 /* LightHSLDefaultSetUnacknowledged.swift in Sources */, - 61E0AD26F19DB387BBFAD9C7A661CA81 /* LightHSLDefaultStatus.swift in Sources */, - F6B70A2EAC667EFA54B8E9BEB0B76DED /* LightHSLGet.swift in Sources */, - A759743331749A6A3DCD988A6F5CA20C /* LightHSLHueGet.swift in Sources */, - 458C4E7A41918B439D8CAD23E43FB641 /* LightHSLHueSet.swift in Sources */, - E4AACEA948E9B5BF75B562478F9678F7 /* LightHSLHueSetUnacknowledged.swift in Sources */, - 26A6691E0424EF07167FF3F85BED7C65 /* LightHSLHueStatus.swift in Sources */, - CDE8018A1E404A27D033EB0BACB60908 /* LightHSLRangeGet.swift in Sources */, - 607ECD455B822DBF251CFE1BDEA94763 /* LightHSLRangeSet.swift in Sources */, - 876762616655900352E1D9CAA43B181A /* LightHSLRangeSetUnacknowledged.swift in Sources */, - 78887C23CBD3712944C011124771533A /* LightHSLRangeStatus.swift in Sources */, - 4EDE095731E0241FCF455B787CAFC030 /* LightHSLSaturationGet.swift in Sources */, - 55F4D56BB50CD664A0C6814EAA5F899A /* LightHSLSaturationSet.swift in Sources */, - 2CE62181EDD9B668D78F3AB630F9363A /* LightHSLSaturationSetUnacknowledged.swift in Sources */, - 000A4CC9BF49D7298030240F0FDB953C /* LightHSLSaturationStatus.swift in Sources */, - EB2F2AE7236A097F63AB702A9C79781E /* LightHSLSet.swift in Sources */, - D10F3C33364F6A26F482BF054AD501FC /* LightHSLSetUnackowledged.swift in Sources */, - 4A922060143542B8485C37A87C81B12D /* LightHSLStatus.swift in Sources */, - 18E30306B63C1E3AF07858966FEF0D8C /* LightHSLTargetGet.swift in Sources */, - 353DC922F00812175FE39BCB4F497949 /* LightHSLTargetStatus.swift in Sources */, - 159964D12160AFC65AFF5C1724BCC4FA /* LightLightnessDefaultGet.swift in Sources */, - 1074181D95B6DFB9EFA756638066BDB4 /* LightLightnessDefaultSet.swift in Sources */, - DB5E7767DFB867156AB2D72AB5EB9B42 /* LightLightnessDefaultSetUnacknowledged.swift in Sources */, - 393FE35030C8B1B93A0A04734035F8DF /* LightLightnessDefaultStatus.swift in Sources */, - 93698B59C8DAAEEEC0DF1319C5E68F21 /* LightLightnessGet.swift in Sources */, - 8669D4BBF0753171A37E2C7758CFEA4A /* LightLightnessLastGet.swift in Sources */, - 5A584BC9C4D07D968A7F3AD5E2458C7E /* LightLightnessLastStatus.swift in Sources */, - 6CA41DA27F9BF62DACABE90AD161F8E3 /* LightLightnessLinearGet.swift in Sources */, - 31FF98DDB3D75AD06DB0AB6BC1B9563E /* LightLightnessLinearSet.swift in Sources */, - CE836DC91083C380F67D40CD027960CB /* LightLightnessLinearSetUnacknowledged.swift in Sources */, - C10E04F0D082BE0F6CB1CB654BD86471 /* LightLightnessLinearStatus.swift in Sources */, - 36BEB0E77A06EB4356CF41059EAA74F1 /* LightLightnessRangeGet.swift in Sources */, - 09323450AD5B1808E7E73B57102488EF /* LightLightnessRangeSet.swift in Sources */, - A756F106FCB6E275BA035D9374508A63 /* LightLightnessRangeSetUnacknowledged.swift in Sources */, - D330DF2288C0607571DB03A1A30A5CBB /* LightLightnessRangeStatus.swift in Sources */, - 6356660508B7B52AEB566A2C5E21ABAC /* LightLightnessSet.swift in Sources */, - F83804F68DE84A5C001124FCF7DFB830 /* LightLightnessSetUnacknowledged.swift in Sources */, - 9BA3603C5F46521C8E061C8D2119F16C /* LightLightnessStatus.swift in Sources */, - 620DA64FB42FE94AE8136AA84D255347 /* Location.swift in Sources */, - D29C2F332588901F68AA166FB33A9898 /* LowerTransportError.swift in Sources */, - 9113F4C26B5620EDC2F75F353A90B3A5 /* LowerTransportLayer.swift in Sources */, - 0F965BDCD561318536064BD18DD2142C /* LowerTransportPdu.swift in Sources */, - 666D49FB3B74D12209840F2E3B79E25C /* MeshAddress.swift in Sources */, - 707E5D6A1F69B8C2E3B7EFEE7D14BA8D /* MeshConstants.swift in Sources */, - C88A3C057E2082FE76A8A9F87AB534ED /* MeshData.swift in Sources */, - CE293642B10879A8AC0B5A07960DF9F0 /* MeshLoggerDelegate.swift in Sources */, - 044FA6772F89CBB8FCA13BFB211131C6 /* MeshMessage.swift in Sources */, - 4F0F22457533D7279AF11191CDE1813A /* MeshMessageError.swift in Sources */, - 05AC430E293A8CEBF735AC57F434CB53 /* MeshNetwork+Address.swift in Sources */, - A7803EC51973856F0974F5490898C588 /* MeshNetwork+Groups.swift in Sources */, - 644B045687F80ECA9BD0A630910F800B /* MeshNetwork+Keys.swift in Sources */, - 1E01979929339C4B88C5E52BDA83BD17 /* MeshNetwork+Nodes.swift in Sources */, - 352F2AAC588D69C2CDCD32E6E834FA3E /* MeshNetwork+Provisioner.swift in Sources */, - 7DD76DC426A264D76EDE01B1FF8E82F2 /* MeshNetwork+Ranges.swift in Sources */, - 18BFF3CFD559AD1DB638E5E2A03E4CAB /* MeshNetwork.swift in Sources */, - D74834B606ECBC1ABBC8BA2FEFE04D7E /* MeshNetworkDelegate.swift in Sources */, - 0DB56BBE425C6047590D047824EC7C1B /* MeshNetworkError.swift in Sources */, - 9876C9C71ED84261D8F6AAF4883DE992 /* MeshNetworkManager.swift in Sources */, - B72BF1E32AF9A8357149CC5F69AF6201 /* MeshNodeEntry.swift in Sources */, - ECF40BEB3B0DE56405CB47EAEFE3CA85 /* MeshState.swift in Sources */, - B3F30916F275EB66D53F2B9E2529D8F1 /* MeshStateManager.swift in Sources */, - 2A2C07BF7C95275050A05D048AD1EFA4 /* MeshUUID.swift in Sources */, - 692EF8035925A52796CC8A23145A358F /* MessageHandle.swift in Sources */, - 759B180A86A8C542AE55783DBB81D330 /* Model+Keys.swift in Sources */, - 00A0C06247D40BC1E4B50421B66CF3C9 /* Model+Name.swift in Sources */, - 9889ECA5AEA3D3C369D33A07F758E6B2 /* Model.swift in Sources */, - BCB2FF3F870D56FBF41D8F642431830F /* ModelDelegate.swift in Sources */, - E9F430D3B2663A0DD73F003E1B37E7FB /* Models.swift in Sources */, - A3C8C3F27D2A71D36AB45C5860DE81F8 /* NetworkKey+MeshNetwork.swift in Sources */, - 4CF423D363D0FE319C3F46637CA80B2E /* NetworkKey.swift in Sources */, - 9B8E6C840C5DAE0E4460C1A939804322 /* NetworkKeys.swift in Sources */, - C0399CF7F8FD4E55F0E9176E2DC89171 /* NetworkLayer.swift in Sources */, - 27ABADDCF86E878F5C82CC5DF85A066A /* NetworkManager.swift in Sources */, - 2D1BCD0A25FB651E3297CA943E08D289 /* NetworkPdu.swift in Sources */, - EF29B06C6D03253B4B55B0337CFD2636 /* Node+Address.swift in Sources */, - 1B47AF3858B77EFA0AC0E791B8284041 /* Node+Elements.swift in Sources */, - CDC4F3B8FE3AB0ED87922292269725BB /* Node+Keys.swift in Sources */, - B868D543DABC6C32139F6201F7B633E0 /* Node+Provisioner.swift in Sources */, - 3C54C459103FDB3973434E3A591550B5 /* Node.swift in Sources */, - 45D2235ECED57A2098D6CC5FDB3B0C22 /* NodeFeatures.swift in Sources */, - 573BD3F74BAA3CC2910D5AEEF9CB006C /* nRFMeshProvision-dummy.m in Sources */, - 387C1F9A246D78B06729880200514938 /* OnPowerUp.swift in Sources */, - B2511A4810888A04ECEC157997CA744F /* Oob.swift in Sources */, - C0608814025D2BD5193CCE7225DA9858 /* OpenSSLHelper.m in Sources */, - 44E0DC433B6E59B082C783C7E22FF916 /* OptionSet+Data.swift in Sources */, - 19E35785A2038C26A86A2FA0784922C0 /* PBGattBearer.swift in Sources */, - A0C0004AAE3AEF4CF779F29CB436DC35 /* Provisioner+Node.swift in Sources */, - 83A6FAD4ED8E2C675A879D1B16D9AC42 /* Provisioner+Ranges.swift in Sources */, - 3FF3B3426C876A6A19856335C78D03B7 /* Provisioner.swift in Sources */, - 44528F103214A1F2761FCB9AEC875A36 /* ProvisioningCapabilities.swift in Sources */, - C7790A33EAD5A3F7E2492440968F250B /* ProvisioningData.swift in Sources */, - 943A2612E418DE1FA9EA2045BF99BA43 /* ProvisioningManager.swift in Sources */, - EC008CEE3529C2D8BA2B4D3FCB3344F2 /* ProvisioningPdu.swift in Sources */, - 2209EA4DFDAA1E4546CBC22F202063F2 /* ProvisioningState.swift in Sources */, - F0FCD6F1524B73C82B2FD50E41EF63B9 /* ProxyConfigurationMessage.swift in Sources */, - D943C7EF938E14E5D29805DACC47B497 /* ProxyFilter.swift in Sources */, - 7F3C1206676F444A06B8A1A35011071A /* ProxyProtocolHandler.swift in Sources */, - 24573FBCE499E79BEFE2415CC11111F7 /* PublicKey.swift in Sources */, - D1C2C4B91C803CF91859BA8828611794 /* Publish.swift in Sources */, - 4BB5A6EC0B6A5355583C1C0F862CCF8B /* RangeObject.swift in Sources */, - 61EFAF0488525B042DCFCD658B5DAA4E /* Ranges.swift in Sources */, - B1F6C013FE96290A8A2F988D58CB42ED /* RemoveAddressesFromFilter.swift in Sources */, - CBEC80446DD830AB9E79EA0155F59666 /* Scene.swift in Sources */, - 32AD0A410DC4B9F6910A917C162EA6EE /* SceneDelete.swift in Sources */, - 5BC28AF264A02DF32AC6A95A0A4AA07E /* SceneDeleteUnacknowledged.swift in Sources */, - 4053E0A6EE08B52AB4E3BD5614692F2D /* SceneGet.swift in Sources */, - BAFC25604CFCEFC9938CF82DCA765051 /* SceneRange.swift in Sources */, - 39AD1020806F5D47A922E017C08648EF /* SceneRecall.swift in Sources */, - 5A496D62CA133B7AC7EE3E482A34A583 /* SceneRecallUnacknowledged.swift in Sources */, - B888B3790478E69AFDDB28630C174027 /* SceneRegisterGet.swift in Sources */, - 64FDD2D61C02158C9713E1B9F1573949 /* SceneRegisterStatus.swift in Sources */, - 84F3F90B058F76FDBBF08F08CDA5199A /* SceneStatus.swift in Sources */, - 23F3DFD620206C208EF3F9CAA748B56E /* SceneStore.swift in Sources */, - F482B99A329915697B168BA901ADAC27 /* SceneStoreUnacknowledged.swift in Sources */, - 02E7E12989A243DE2D6E200F01B5A474 /* SecureNetworkBeacon.swift in Sources */, - 2234B15517E5F95D175F53F5A0928C28 /* Security.swift in Sources */, - 0286DA6B7DA09B45BB570EE156C892F4 /* SegmentAcknowledgmentMessage.swift in Sources */, - 5D05041D49BEA10804330CA8DD21B8F0 /* SegmentedAccessMessage.swift in Sources */, - ADC97F667663636B4A1B8C05A2D14FC5 /* SegmentedControlMessage.swift in Sources */, - FDA39B3DC0E266641E8592F2A4A57F97 /* SegmentedMessage.swift in Sources */, - 9A2C80F407077E5C3AE468E325BFE066 /* SetFilterType.swift in Sources */, - 220CADF9E17BC6E87D4FDE0C44FA5D65 /* StepResolution.swift in Sources */, - 7FDDAA40CDEE868B49925EF96E7C2123 /* Storage.swift in Sources */, - 9FD794874F14C4D56C768A3BD66C38B4 /* TransitionTime.swift in Sources */, - DA46DCFA9A3CDBFB7B333F2C13012365 /* UnknownMessage.swift in Sources */, - 434A71CFB0015CF3E27DD75E79DB8AAA /* UnprovisionedDevice.swift in Sources */, - AA25F79D25EB274FDF8299843B559BB1 /* UnprovisionedDeviceBeacon.swift in Sources */, - 25CBE655D099725378E3FF3F220CED0A /* UpperTransportLayer.swift in Sources */, - F8E2FD3C7EE1C4185B23E3564032F1D4 /* UpperTransportPdu.swift in Sources */, - 49C439F70C6943121C0CE710E0259C02 /* UUID+Hex.swift in Sources */, - DC48E5943F35E010B1B9050387665274 /* VendorMessage.swift in Sources */, + F2E00B7A6967DF7564F5765A478AC264 /* AccessError.swift in Sources */, + 5D1941D34968B21A68F0848A12777525 /* AccessLayer.swift in Sources */, + E217C8380D8A447398707192C966676C /* AccessMessage.swift in Sources */, + 541836B71185C1848B7349F490FC0DEB /* AccessPdu.swift in Sources */, + BDEC06C606C344491577DAE9B8EA0271 /* AddAddressesToFilter.swift in Sources */, + 1590CDF87C44480553B7877B8066ABE9 /* Address.swift in Sources */, + 8F98D30CF5C9267FA6F2CAB8B974A10D /* AddressRange.swift in Sources */, + B8C4EAB37A937BFC552F91767AC5A62C /* Algorithm.swift in Sources */, + 4E91F2791FDD8C1F352C285E0E15D482 /* ApplicationKey+MeshNetwork.swift in Sources */, + FE70709C3706156523D623C8B9264B4C /* ApplicationKey+NetworkKey.swift in Sources */, + 8138F1434B8C0D0E8B5BFF37509FE0F5 /* ApplicationKey.swift in Sources */, + FE4E06815537D3800F8B09AC47BD2749 /* ApplicationKeys.swift in Sources */, + 562247108185ACE54CDE40BCD8385BE8 /* BackgroundTimer.swift in Sources */, + 59D4DBC6676B9B57D022BA892C2C65F5 /* BaseGattProxyBearer.swift in Sources */, + 51EEE8E88F0B5D6CF3BD3597EBB08ABC /* Beacon.swift in Sources */, + 58642573D968444512C6CB88C31D98BD /* BeaconPdu.swift in Sources */, + 507D04B88FA0589580A713A5063DE839 /* Bearer.swift in Sources */, + 40BD4134D67801BC7534F8BA6EDC54B6 /* BearerDelegate.swift in Sources */, + 19E03FA058B081AD2A2414DCD7504AAD /* BearerError.swift in Sources */, + B7471E4183941F35D51FA74ED2377C46 /* ClosedRange.swift in Sources */, + 5A30CD1E69AECC5A3BE0443F628B5E58 /* CompanyIdentifier.swift in Sources */, + 493512AE7C915D65698D91FBB38E895E /* CompositionElement.swift in Sources */, + 44132C24123A4D88C9E65BD315F43395 /* ConfigAppKeyAdd.swift in Sources */, + 2E01FBF9A10892AC259835628907906A /* ConfigAppKeyDelete.swift in Sources */, + 2D48907FD6F61EBB56469CB0462B6A46 /* ConfigAppKeyGet.swift in Sources */, + C9D60FCEB07D4FB1F4027A978FF9BAA9 /* ConfigAppKeyList.swift in Sources */, + 0DC09C8D425F1DEA059D82BDF2B575CD /* ConfigAppKeyStatus.swift in Sources */, + 91B5FF05B5C82343E683B4D7F1A0662C /* ConfigAppKeyUpdate.swift in Sources */, + 05BB44AAACD3C03AA6F87ABC0B461529 /* ConfigBeaconGet.swift in Sources */, + 112DFFB1198183F8F2E0EAA9C3333D64 /* ConfigBeaconSet.swift in Sources */, + B79345C7EB61F0D50592203D4DEABC3B /* ConfigBeaconStatus.swift in Sources */, + E5C7443F496606D0EAA83FCE236D6AEC /* ConfigCompositionDataGet.swift in Sources */, + 22BF566363DAFC226B8311266647CC4D /* ConfigCompositionDataStatus.swift in Sources */, + EBAB07D17EAC31ED5FB5A4A57850EE6E /* ConfigDefaultTtlGet.swift in Sources */, + 7DEE40B9EE2A7E600FFEDF55123A5353 /* ConfigDefaultTtlSet.swift in Sources */, + 93C122190438CDDFA8B464F0FAFC2F41 /* ConfigDefaultTtlStatus.swift in Sources */, + 8079FB868CC84A262CF9717B237CC488 /* ConfigFriendGet.swift in Sources */, + B38FC417703C34E9AA16C95EF9926084 /* ConfigFriendSet.swift in Sources */, + 1A4DA3244CA9B6D88AD6D19DBBBEAE61 /* ConfigFriendStatus.swift in Sources */, + 7BA59F5704B78950957BC2C938B882B3 /* ConfigGATTProxyGet.swift in Sources */, + AF6C76A3FE8839BFE19E35893A8A9990 /* ConfigGATTProxySet.swift in Sources */, + 83F400C08C9D670A6D504C3E1949582E /* ConfigGATTProxyStatus.swift in Sources */, + 5859E00B973B35800F1268541171BC02 /* ConfigHeartbeatPublicationGet.swift in Sources */, + C475281D110647C259851D27333BC86E /* ConfigHeartbeatPublicationSet.swift in Sources */, + 3FC7E69627A40D8C9A40826B42A2FA8C /* ConfigHeartbeatPublicationStatus.swift in Sources */, + 9930AC7372C13225D44D709D41158C57 /* ConfigHeartbeatSubscriptionGet.swift in Sources */, + 75A851CCE885673977427E3088A44751 /* ConfigHeartbeatSubscriptionSet.swift in Sources */, + E6DCB652910FAB099B5818DD8A656549 /* ConfigHeartbeatSubscriptionStatus.swift in Sources */, + 44AD0E1F589618A084E08DD1EC6C2A51 /* ConfigKeyRefreshPhaseGet.swift in Sources */, + 2C8F98943F6090892154EB11D4A18CE3 /* ConfigKeyRefreshPhaseSet.swift in Sources */, + FBE5F7632DA9CCC94F14A8900013D18E /* ConfigKeyRefreshPhaseStatus.swift in Sources */, + 2CAF2CF6C049232F15A9487BC75B737F /* ConfigLowPowerNodePollTimeoutGet.swift in Sources */, + CEA89497C95BFE4A08283B0C3213872D /* ConfigLowPowerNodePollTimeoutStatus.swift in Sources */, + 42D5072AC9B1FF743E5ADA54494FD3CD /* ConfigMessage.swift in Sources */, + 971BA286BFCBB27CB54E44691554F076 /* ConfigModelAppBind.swift in Sources */, + 1C622E6B07437C897A8BC890965D72EF /* ConfigModelAppStatus.swift in Sources */, + B5A09BA41DBEE3A1B5F358A3FB7303AA /* ConfigModelAppUnbind.swift in Sources */, + B79EAD5059538F4276EC71E98C374ECD /* ConfigModelPublicationGet.swift in Sources */, + 32C51C0148C5D67C02144DCF5B859AD2 /* ConfigModelPublicationSet.swift in Sources */, + F35FF8383A379B6D6C91F3D22F1458EA /* ConfigModelPublicationStatus.swift in Sources */, + D64DA9A86BEA1574F5990E348B849DD0 /* ConfigModelPublicationVirtualAddressSet.swift in Sources */, + 2A6939721155C346CDBD5C209D3648CE /* ConfigModelSubscriptionAdd.swift in Sources */, + 152428208CA73D49241EBC465C4F668D /* ConfigModelSubscriptionDelete.swift in Sources */, + 90D2F3A2B702534A65B2AD3E93871646 /* ConfigModelSubscriptionDeleteAll.swift in Sources */, + 129CBC04CADFFFD71D883CDDA9CB7610 /* ConfigModelSubscriptionOverwrite.swift in Sources */, + A173AE08349D3FE07D9E89E83B057093 /* ConfigModelSubscriptionStatus.swift in Sources */, + C2C880C692D23F72260380E812FCEF85 /* ConfigModelSubscriptionVirtualAddressAdd.swift in Sources */, + 8A0D98A5198BA2127BD0EA7AB12C3F90 /* ConfigModelSubscriptionVirtualAddressDelete.swift in Sources */, + 603472AB248F474CB3C5FC3BB9C68007 /* ConfigModelSubscriptionVirtualAddressOverwrite.swift in Sources */, + 03A354ED08C319293AD6B58ED4BC8FCD /* ConfigNetKeyAdd.swift in Sources */, + CE406F3BE48E74C5C1051F3F14B69EC8 /* ConfigNetKeyDelete.swift in Sources */, + 3D024067433912D08FEDDDEDFADA6DCA /* ConfigNetKeyGet.swift in Sources */, + AFAA341674803AE2D8672BFFF9BBC1C8 /* ConfigNetKeyList.swift in Sources */, + 55E2F7042D4C909B0EA7F0DCA87DCD05 /* ConfigNetKeyStatus.swift in Sources */, + 0F3A90C75896A5DA8FC1C611901F233C /* ConfigNetKeyUpdate.swift in Sources */, + 638A9BD37401EA9E8809B50C9261BCC7 /* ConfigNetworkTransmitGet.swift in Sources */, + 6F7083451475114F35A95FBF226ED23C /* ConfigNetworkTransmitSet.swift in Sources */, + 8C49E282AB68E917C4B5497761D1115B /* ConfigNetworkTransmitStatus.swift in Sources */, + AF09EBE980AC7BC4D42C0A570D2830CE /* ConfigNodeReset.swift in Sources */, + 030967B3624A3A2523B2B0A3E98A5793 /* ConfigNodeResetStatus.swift in Sources */, + BD807B6C61472A8EA039FEAC9B7FD574 /* ConfigRelayGet.swift in Sources */, + 47D7769A5819474D4B9092EA459C5292 /* ConfigRelaySet.swift in Sources */, + 366B3ACD1463E4FC8E4CF3A614DC7B3C /* ConfigRelayStatus.swift in Sources */, + FA27944098C0B5EBF959BAE8EB33DB09 /* ConfigSIGModelAppGet.swift in Sources */, + EC7E1C96F90D53D268711822EF192254 /* ConfigSIGModelAppList.swift in Sources */, + 7372D63E5FA426B66095BC8DDCC45882 /* ConfigSIGModelSubscriptionGet.swift in Sources */, + 87EF0EA6C70B66D2C8CD27C7BC501D7B /* ConfigSIGModelSubscriptionList.swift in Sources */, + EBBBFE10B30E769D041C1DFB6CE70806 /* ConfigurationClientHandler.swift in Sources */, + DA3245EC28E97838CE8E8F79B58026B7 /* ConfigurationServerHandler.swift in Sources */, + EAE5E54CA796BE7B74E9D79CCB3BABFA /* ConfigVendorModelAppGet.swift in Sources */, + CB1A7F8FFB802ABE159E02F6C61E176E /* ConfigVendorModelAppList.swift in Sources */, + 47570B6FDA9544CA4DF4F6141D5929C4 /* ConfigVendorModelSubscriptionGet.swift in Sources */, + 4EED6A2E2747A2E94CF40A3F733CCB29 /* ConfigVendorModelSubscriptionList.swift in Sources */, + F0A2AC3E1F298B620F0D3391DB2CC85D /* ControlMessage.swift in Sources */, + A00D6DC71EED1AFD0E5A39C4B6DE71AF /* Data+Hex.swift in Sources */, + 3AB0C73D580E798E1A9B090479C1F62E /* Data+Keys.swift in Sources */, + 3EA45BC82472D76599AEEDF17772C108 /* Data.swift in Sources */, + 74E6274ADE1B30D708D839DF31FF0DA7 /* Element+Address.swift in Sources */, + 4C2824D5BA702B5C0A31DD408B433DA7 /* Element+Keys.swift in Sources */, + 77846D52165A0ABF92C4F07EF31A046A /* Element+Models.swift in Sources */, + 06EAF71972D6BB182B584D4148F6532C /* Element.swift in Sources */, + 17336F892B68C4DA7C6428C84704B7D8 /* ExclusionList.swift in Sources */, + BA02C46B403BD63343D2620AF9452655 /* ExportConfiguration.swift in Sources */, + 43C8E43DB5FF987351ADAFBAE7883E38 /* FilterStatus.swift in Sources */, + 6FC6FB471E614A7F0E7E7499BCA6D50E /* GattBearer.swift in Sources */, + 518A284ED129F14EA44EFA2BCCB03FC6 /* GattBearerDelegate.swift in Sources */, + 4915B67B3E1548A37D2D05DD30421D70 /* GattBearerError.swift in Sources */, + ACB574BD666CF3071B59835022D8DE6E /* GenericBatteryGet.swift in Sources */, + 67C2C931F612580E0561E3823BCD4E27 /* GenericBatteryStatus.swift in Sources */, + 6FDF478F0B9F8F5A3EB5D9396FA4EAFB /* GenericDefaultTransitionTimeGet.swift in Sources */, + 6D2F0D99DF4C5DAF039AB4FFFBD8C867 /* GenericDefaultTransitionTimeSet.swift in Sources */, + 41A44200C64A9AF2E9A8E2E1E4DE62BE /* GenericDefaultTransitionTimeSetUnacknowledged.swift in Sources */, + 0028523057A27275D2584D46AD533E4C /* GenericDefaultTransitionTimeStatus.swift in Sources */, + B87D3A76369B7C63CE9EDCBB88BF49FC /* GenericDeltaSet.swift in Sources */, + 9E4AF6D954B0B2D8C990074B4B7B79F6 /* GenericDeltaSetUnacknowledged.swift in Sources */, + 070DF672B552A63A6ABCAF438A6639B3 /* GenericLevelGet.swift in Sources */, + 444DEDBC803D706DEA1BABEB873C445B /* GenericLevelSet.swift in Sources */, + 601DCBEEE7F501058D1D632CA237AE26 /* GenericLevelSetUnacknowledged.swift in Sources */, + EBE54DF6D983E3509722A074DE240341 /* GenericLevelStatus.swift in Sources */, + E7FA6CEB4E8C4619C0BA5DC4EBA97254 /* GenericMessage.swift in Sources */, + D28E72D9D22D53B6052D7687E997285E /* GenericMoveSet.swift in Sources */, + D302A331FAC45AD7048F6D905B724B50 /* GenericMoveSetUnacknowledged.swift in Sources */, + 606F0FEA2734FB3E2268AA9003DA1EA0 /* GenericOnOffGet.swift in Sources */, + 956389CF46325984FB9EECF5C4C148AA /* GenericOnOffSet.swift in Sources */, + 0E96E80523B30EDB6FCCEF70A3E3AB17 /* GenericOnOffSetUnacknowledged.swift in Sources */, + 89DC60CACC49CE9D6C75B1B7D3553248 /* GenericOnOffStatus.swift in Sources */, + 1FCCB0854B3FCD64BC87C944C5EA7177 /* GenericOnPowerUpGet.swift in Sources */, + 97EC56D41BD24ECD8E3C03933079B7FF /* GenericOnPowerUpSet.swift in Sources */, + A023EA64382BBEC28CF1E0F93879509C /* GenericOnPowerUpSetUnacknowledged.swift in Sources */, + 6AB23E7FCB30C6B0875A6B1CADE49699 /* GenericOnPowerUpStatus.swift in Sources */, + FA3FCC8F40B43C06849E080E286DBB3A /* GenericPowerDefaultSet.swift in Sources */, + 8069A9903B2344F200A9A9068E516920 /* GenericPowerDefaultSetUnacknowledged.swift in Sources */, + 1288EAAB772373473DB0CE33DF6B1473 /* GenericPowerDefaultStatus.swift in Sources */, + BC03F65132176E2BA462A9272322BBC2 /* GenericPowerDefautGet.swift in Sources */, + CDAE8A06296166642009C3613085334F /* GenericPowerLastGet.swift in Sources */, + 8934EA9EC54CCD66F02E3B7EB998A044 /* GenericPowerLastStatus.swift in Sources */, + 406AF72C35D521A7A35EDEF8998A3776 /* GenericPowerLevelGet.swift in Sources */, + 5145DD9A8B814EA6ECB7B8ADA0015D12 /* GenericPowerLevelSet.swift in Sources */, + AC217E949A62C060180192A06BAB58AC /* GenericPowerLevelSetUnacknowledged.swift in Sources */, + B908DD6BECA28EB2EF0C61ECC6F73E8D /* GenericPowerLevelStatus.swift in Sources */, + 108EE558700563A55CFF098E587BBBEE /* GenericPowerRangeGet.swift in Sources */, + 4A9FB3ED153F515167CC358CFD193747 /* GenericPowerRangeSet.swift in Sources */, + 8731E79BDDCEE309403E979238FD396A /* GenericPowerRangeSetUnacknowledged.swift in Sources */, + B29AF2DC105E195BBF48AC295928987F /* GenericPowerRangeStatus.swift in Sources */, + 23B89A73EE357195A68EC6BF0B397B18 /* Group+MeshNetwork.swift in Sources */, + DB96E6DA9A4514B77080FBF4D0ABE326 /* Group+Scenes.swift in Sources */, + 4161A61F0A1C69F2E98B3FC85D74F2C3 /* Group.swift in Sources */, + E00F488B700D5BBBEE0A18E0E781CB7D /* HeartbeatMessage.swift in Sources */, + 07725ACC2666CAB2A8C20C6A5321533A /* HeartbeatPublication.swift in Sources */, + CEECA9FBC91A310D1880649599601B72 /* HeartbeatSubscription.swift in Sources */, + 810D856B4CB7789BAEC0A544955FF9A0 /* Int+Hex.swift in Sources */, + E9F326286EDB02F20410CB39127AF31C /* IvIndex.swift in Sources */, + FE8014F1417317042B63D194584810B6 /* Key.swift in Sources */, + 0443C13D9F7D1E85486746C018FCFCC4 /* KeyedDecodingContainer+Legacy.swift in Sources */, + AE5727206485157AD37475490A7D4F24 /* KeyIndex.swift in Sources */, + 5D1375D33DEA9882C024F6037A0E86DC /* KeyRefreshPhase.swift in Sources */, + 615BD47B245685F740D2F8674789317C /* KeySet.swift in Sources */, + CEE109A11A0E1684AF3591C679DD164F /* LightCTLDefaultGet.swift in Sources */, + 40E5281F20C68C2C11FC91F675DB9DC7 /* LightCTLDefaultSet.swift in Sources */, + 141F40DB61BAC5742A1EECDCBA596A5A /* LightCTLDefaultSetUnacknowledged.swift in Sources */, + 7B5A4640D2E93CD0C0F2E071D3010552 /* LightCTLDefaultStatus.swift in Sources */, + 893F98EE563FB5864199B6552C5927CB /* LightCTLGet.swift in Sources */, + 370319C40632F17F82EBA4829BF06784 /* LightCTLSet.swift in Sources */, + 745D2F45C5C7F9337EEC4077E4F3E290 /* LightCTLSetUnackowledged.swift in Sources */, + A2FB1C1CC2C33907E4E1BFE7ABB7E542 /* LightCTLStatus.swift in Sources */, + E0AC2DAF3B9C9E2CC67A50D1A4540647 /* LightCTLTemperatureGet.swift in Sources */, + 7B51087A27EC290C718CF5023769038F /* LightCTLTemperatureRangeGet.swift in Sources */, + E5B1E6609ECD08B96A966429D88877F9 /* LightCTLTemperatureRangeSet.swift in Sources */, + 0621F911FB8460C17973AA09D2E77A31 /* LightCTLTemperatureRangeSetUnacknowledged.swift in Sources */, + 0A3240A5D8A459EE5F47479415E1D136 /* LightCTLTemperatureRangeStatus.swift in Sources */, + CEE140B539D6667252FAAAF15EC7EF3A /* LightCTLTemperatureSet.swift in Sources */, + 1043C1298FC8708744037226B1C2F4D9 /* LightCTLTemperatureSetUnacknowledged.swift in Sources */, + BAF925794FF18CC95314C529C0E7041B /* LightCTLTemperatureStatus.swift in Sources */, + 8D5DA16846E07E191504B83C178F127B /* LightHSLDefaultGet.swift in Sources */, + 07D69152E708E619E61C71C8C6FCD1F4 /* LightHSLDefaultSet.swift in Sources */, + 2775D44CD6658FF1EC4B42C0F1FC010D /* LightHSLDefaultSetUnacknowledged.swift in Sources */, + 15F167C275EF19194DDBE6F780CA708D /* LightHSLDefaultStatus.swift in Sources */, + ED3551DB4A509B0D62CE9077A5D5BDAC /* LightHSLGet.swift in Sources */, + 8E75440E6F1541F4DFCFA1F05824FDCE /* LightHSLHueGet.swift in Sources */, + 1030FADE75BA69C9D3373F412C2D9C63 /* LightHSLHueSet.swift in Sources */, + A91CA7AF71BFA034C21EC48F1FA35EC4 /* LightHSLHueSetUnacknowledged.swift in Sources */, + 568AD94AA35FB1464D0647709E750D97 /* LightHSLHueStatus.swift in Sources */, + 240CB0EA050EA098C9BB3C1E5C8F1C4E /* LightHSLRangeGet.swift in Sources */, + 746DB4DB657749B17828CF8B73F2901B /* LightHSLRangeSet.swift in Sources */, + 86E54EE904A8BE65867C367F59D7EB10 /* LightHSLRangeSetUnacknowledged.swift in Sources */, + F530E1E8A422ED59FC5D778F53182E98 /* LightHSLRangeStatus.swift in Sources */, + 8EEE5AE1AEDD7806BAA17E43FD59A953 /* LightHSLSaturationGet.swift in Sources */, + 7705932F20B05508CDAAB357E6B47CB3 /* LightHSLSaturationSet.swift in Sources */, + A95D0D50B1B8A132B4AAAA1AB6B83C88 /* LightHSLSaturationSetUnacknowledged.swift in Sources */, + 11681CF7A1366C123D27696755774BB6 /* LightHSLSaturationStatus.swift in Sources */, + 400527659460EFDD5D9DFA7F1AA19969 /* LightHSLSet.swift in Sources */, + E4BBC68F6EE78189B09EC15B09BF15A3 /* LightHSLSetUnackowledged.swift in Sources */, + 5C5AB79C12311E7A1925BB491835365B /* LightHSLStatus.swift in Sources */, + CC4CB9FD15BFA8DC7C7EA6E7FF028DA1 /* LightHSLTargetGet.swift in Sources */, + 68B487BD16393943DBC0F010D657583A /* LightHSLTargetStatus.swift in Sources */, + 810D09C2A04BFFC1018467FD9D458926 /* LightLightnessDefaultGet.swift in Sources */, + 27C8CE9F59463B85BF699FE2B98D3015 /* LightLightnessDefaultSet.swift in Sources */, + 1A5BE22C64D2E72278E6D9B282983467 /* LightLightnessDefaultSetUnacknowledged.swift in Sources */, + 2AA05B9FA67DD4CE4C036C920CDBD10A /* LightLightnessDefaultStatus.swift in Sources */, + D21EE5B6E5C180B8986BCB4FA5F41D0E /* LightLightnessGet.swift in Sources */, + E19C979E3A6542EAE7CC50ED98EF829A /* LightLightnessLastGet.swift in Sources */, + EE0FD09D1031E78F1B2B198C38B21357 /* LightLightnessLastStatus.swift in Sources */, + 770029D9F53552A8FE86F7CF82D8BD07 /* LightLightnessLinearGet.swift in Sources */, + 6885D5313CDBD50CAEF027116B96A389 /* LightLightnessLinearSet.swift in Sources */, + C9AFADAD907AFE588F99D961C545992D /* LightLightnessLinearSetUnacknowledged.swift in Sources */, + C9004D00D6FB14D22A08F030C797D916 /* LightLightnessLinearStatus.swift in Sources */, + EEA6D294B8F1519F6D9BC2ECA457F872 /* LightLightnessRangeGet.swift in Sources */, + 8F6795AE1792BC0BE783554BEB9ED3D4 /* LightLightnessRangeSet.swift in Sources */, + 45AB146A637BC8C1C30A100E5C57B877 /* LightLightnessRangeSetUnacknowledged.swift in Sources */, + 17E2791E491318A083A6069E2980D33C /* LightLightnessRangeStatus.swift in Sources */, + C9E5E1E36F30EDD73B6CFEC6899B4F5C /* LightLightnessSet.swift in Sources */, + 36FAFF34204DE8EA7A10790ADDB1E61F /* LightLightnessSetUnacknowledged.swift in Sources */, + 44C3E41F9B7DF9639E0EAB4CCB18F3CB /* LightLightnessStatus.swift in Sources */, + CA3F220141B628588761BDE7CC5D9A39 /* Location.swift in Sources */, + 111C3AEBE1280802326C6DB6AA6F930E /* LowerTransportError.swift in Sources */, + DBE17F838BB2FEE1A74D411AD6DA55FD /* LowerTransportLayer.swift in Sources */, + 2DACC67EED59B29FDC03DA10DC0FEA11 /* LowerTransportPdu.swift in Sources */, + 7E5DFA12FC6DD38A97373B727823A062 /* MeshAddress.swift in Sources */, + 637E79596D67903BA25B8CC0314EC851 /* MeshConstants.swift in Sources */, + 104EA337C7D09997730A0A6B21C88081 /* MeshData.swift in Sources */, + 1E0475F8BFFB5185B12A2F34DC137D55 /* MeshLoggerDelegate.swift in Sources */, + 2B6EF3CC67EC3A8A6017A2A10C1A44C3 /* MeshMessage.swift in Sources */, + C52A7A2B0F891E155DD4FB3A087BE787 /* MeshMessageError.swift in Sources */, + 101FAE34EFEBC2451D37EA8C2814FC36 /* MeshNetwork+Address.swift in Sources */, + BC0ECC4392F0EBD1DA202A2E5AC23B07 /* MeshNetwork+Groups.swift in Sources */, + AAC998FF43C06E6ABDD152CA65504956 /* MeshNetwork+IvIndex.swift in Sources */, + 3424CCDE360B68DB1059BF753720DCA9 /* MeshNetwork+Keys.swift in Sources */, + 1F6E54F69F1083A35605D9B6B6794A5A /* MeshNetwork+Nodes.swift in Sources */, + 91854A7CD266F0F26681E1C424066027 /* MeshNetwork+Provisioner.swift in Sources */, + F41BEDED619D25BACC2AD0C4E7FDFB82 /* MeshNetwork+Ranges.swift in Sources */, + 7077FA9B9A5204E7222649642DD7A7D1 /* MeshNetwork+Scenes.swift in Sources */, + E6D94F7F13A2DEB43081B345CF12842F /* MeshNetwork.swift in Sources */, + 11AC1B5B8EBA3D0F06CE6E8DF83746BF /* MeshNetworkDelegate.swift in Sources */, + 359F582695ECC5F61A3E8B93E844C6B5 /* MeshNetworkError.swift in Sources */, + DD3B47BF437314A5F1CD3EF0658909B2 /* MeshNetworkManager.swift in Sources */, + 90C7496DFE041ADE840807F99C5F8A5E /* MeshNodeEntry.swift in Sources */, + BDA0127442F7B637F3ECC2D631E4DC02 /* MeshState.swift in Sources */, + 8B1915E43B0A75B385149A1227BD43FA /* MeshStateManager.swift in Sources */, + E745582F437B9099CEA508E3DA15274C /* MeshUUID.swift in Sources */, + 4BA00E6E5DCF9188024861C08234E46C /* MessageHandle.swift in Sources */, + 0B7CC6C396433ACC8E4F3BC42702EED6 /* Model+Keys.swift in Sources */, + 42C8FA284151C6F4AE957DEFEC970593 /* Model+Name.swift in Sources */, + FC922C988FE106D3A97166C1F7F46107 /* Model.swift in Sources */, + F723B027847AF09B4E7F1912EA1B9996 /* ModelDelegate.swift in Sources */, + 33308880A9A3A400BB1C5BCBD6665D76 /* Models.swift in Sources */, + BE1597CF66649ED63012102D443D4A21 /* NetworkKey+MeshNetwork.swift in Sources */, + 7E73AA18B529449FF6B905AF667D68F5 /* NetworkKey.swift in Sources */, + AE9EF44291E71347B6E358BACE22DFA0 /* NetworkKeys.swift in Sources */, + 0EC49595E2C047F7B081B03E2A5E6D89 /* NetworkLayer.swift in Sources */, + 6FE5D7178D6B134063206AB4C3486609 /* NetworkManager.swift in Sources */, + 00622AF0D4C358B26AB9C270E5392044 /* NetworkPdu.swift in Sources */, + 342B68954D1E6EB5A29A02E69FCB1C2E /* Node+Address.swift in Sources */, + ACE5CB30419988D908E40C8C7E959F6D /* Node+Elements.swift in Sources */, + ECEF71EA2C9840D182121EE5FDB4D7A9 /* Node+Keys.swift in Sources */, + 14E020A798FAEF34C5379CDFFD1B5E67 /* Node+Provisioner.swift in Sources */, + EC7F198453AFD26AC5D388E0D2B5D717 /* Node+Scenes.swift in Sources */, + C4A2D1AE3EEB24EF4BA0778B31E4CC6C /* Node.swift in Sources */, + BA88BBE4F7616C655F2B3BCC55D862A0 /* NodeFeatures.swift in Sources */, + 9A2011440422555A7CC447A5A7F4C0B6 /* nRFMeshProvision-dummy.m in Sources */, + D46EF6DB6BD79A4B5606F1B6AF75CB84 /* OnPowerUp.swift in Sources */, + B32C090733BC342891F209D3B22467B8 /* Oob.swift in Sources */, + D883BD2F0B03D45C6765143FBB15E7E7 /* OpenSSLHelper.m in Sources */, + C66041755EB29D1756F3D7326508E8DE /* OptionSet+Data.swift in Sources */, + F66384CF9B8AEFFDC1B6DC9679465C9B /* PBGattBearer.swift in Sources */, + D545BA3F50EAE11FA307D16A0C89BE6D /* Provisioner+Node.swift in Sources */, + 632FB323DAFFA9151233A84F87AABC19 /* Provisioner+Ranges.swift in Sources */, + F2EB1595D7B46AFCF98F4CC5E3D276BA /* Provisioner.swift in Sources */, + 2DC2330BEE76989BD057536AE6A436B8 /* ProvisioningCapabilities.swift in Sources */, + 2E5B3B326309204725900995E5261BB1 /* ProvisioningData.swift in Sources */, + FC2874092002CEC99D4C35AADFE8DF30 /* ProvisioningManager.swift in Sources */, + 70DF0F837C0AA8879D11C94178D5D50C /* ProvisioningPdu.swift in Sources */, + A6EAD5A162C864712FE329EFA2392C98 /* ProvisioningState.swift in Sources */, + 319D9BE0F1F7608D225703707DADD568 /* ProxyConfigurationMessage.swift in Sources */, + 8AEE19AE7BCDC6D8712F3A8B4C91DA13 /* ProxyFilter.swift in Sources */, + CDC1B3EB55B49DC95FE0F35DEB5BBB26 /* ProxyProtocolHandler.swift in Sources */, + 1E431C7F9164D60C1EFBE15B3C5FC514 /* PublicKey.swift in Sources */, + 47EB5E3A5510C9C8328CC9BB2FDEFC72 /* Publish.swift in Sources */, + 1C57451AD06D0CCDE9A2B7537B82D260 /* RangeObject.swift in Sources */, + 59465CC52639024038D843AB126172A0 /* Ranges.swift in Sources */, + 9FC7A3237D8A0F8E74219BBA1F8C0F25 /* RemoveAddressesFromFilter.swift in Sources */, + FA82AE3E444772F40E121288C3F43C2C /* Scene+Nodes.swift in Sources */, + F8152E93777FE2442590D960C5EA4393 /* Scene.swift in Sources */, + 39AF4882FF7ED8AB480D1F0C94CEF789 /* SceneClientHandler.swift in Sources */, + 12A1D00A604F587A9AC677683EB696A2 /* SceneDelete.swift in Sources */, + 58A9FD9D5437F2F1FD64BC18D85EAC23 /* SceneDeleteUnacknowledged.swift in Sources */, + 8C0890F2F0653FCED9C7001E82853BF0 /* SceneGet.swift in Sources */, + 133EF61150863A3B4894F20327684694 /* SceneNumber.swift in Sources */, + 201F18A948B15F1D92F5A671B8D67F54 /* SceneRange.swift in Sources */, + 193A45ED77BE6118032DD4581C67BF45 /* SceneRecall.swift in Sources */, + 42CBD357C58EB38C1A9D36A1805ECE59 /* SceneRecallUnacknowledged.swift in Sources */, + 90632218BE01EB26397119915902DF6B /* SceneRegisterGet.swift in Sources */, + 0B684D7E043AD045D9D8F45C143D4AB4 /* SceneRegisterStatus.swift in Sources */, + D417F94A7AAF05A1B29D669CD5B8C137 /* Scenes.swift in Sources */, + 4A87CF9646C607CC6081C148FB50F91D /* SceneStatus.swift in Sources */, + 859F0663391FBECF99C545D0C5C12202 /* SceneStore.swift in Sources */, + BFD1AB52839C778915DCBFEBE701D30F /* SceneStoreUnacknowledged.swift in Sources */, + FEFFC5035F417DDCDCA0B31262F430E1 /* SecureNetworkBeacon.swift in Sources */, + 1BC481C1069F0435EA8C1E44CBB74385 /* Security.swift in Sources */, + 1F8863D27A08C6758B85E9B07247D0FC /* SegmentAcknowledgmentMessage.swift in Sources */, + 8AE03823DDEA6E5D7E87A4C922C298E4 /* SegmentedAccessMessage.swift in Sources */, + 4BFA679961B23A257708F2CF855A8193 /* SegmentedControlMessage.swift in Sources */, + 0D10D6A470AE5904A9AA9C7F79C55EC7 /* SegmentedMessage.swift in Sources */, + ADFC7829DA40F2EBB7B3991F0B3EA59C /* SetFilterType.swift in Sources */, + 251CDA664AB8D6F9D600C615066D41D2 /* StepResolution.swift in Sources */, + A81FE2D375CA786AD1CB9BB9E79A0006 /* Storage.swift in Sources */, + 9B6FD9A18420EFD6A48430595085BC83 /* TransitionTime.swift in Sources */, + 0C88946438CAE06A95376982364D4452 /* UnknownMessage.swift in Sources */, + 6BEE181DA80061BBF39DABC7FC5ED88B /* UnprovisionedDevice.swift in Sources */, + DB15BA6A2E04B560F6327702E6F89519 /* UnprovisionedDeviceBeacon.swift in Sources */, + 6EF9754F183CB007F9235094FCBDB12D /* UpperTransportLayer.swift in Sources */, + 04FE31CB4360CCD1EF672ABF33391B4D /* UpperTransportPdu.swift in Sources */, + 216F8588463D91C902CB568620AF2B4E /* UserDefaults+SeqAuth.swift in Sources */, + E8A72E927398FE6234F5C68ACDF49CF5 /* UUID+Hex.swift in Sources */, + C9A8C026375BFE21ABB23E5D37ECED73 /* VendorMessage.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1F8C185CAEA9A36CE58645CA58C4EDDB /* Sources */ = { + 86065F6E6C3668E577F2A0A001CA0926 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 633F34E707BF58F4FB5CEBACD0E8D0A2 /* Pods-nRFMeshProvision_Example-dummy.m in Sources */, + 06A03D6D897ECAF4AD48B29C275A3AE2 /* Pods-nRFMeshProvision_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2133F96D50472F01FC18D6E717D1D61F /* Sources */ = { + AC3AF1C6BC7B7C14BF0D827D7B0CDDA8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B519C4C2491C5E9A000168F219C1BC5D /* Pods-nRFMeshProvision_Tests-dummy.m in Sources */, + EEDB976FA31C2E081F98B40210872A9F /* Pods-nRFMeshProvision_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 188D5050B88D05BA6A063F703E437539 /* PBXTargetDependency */ = { + 1F26D7EDA1E297EF27080DDD7EA1A256 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "OpenSSL-Universal"; target = B9ED5194E665042005069EF06C82A050 /* OpenSSL-Universal */; - targetProxy = 44AD7821A9F9F4B6FBDA74621A090F43 /* PBXContainerItemProxy */; + targetProxy = 07983FBB3AE22903B1314BB58FDA135D /* PBXContainerItemProxy */; }; - 35447FFB8995C824196B691C947FE96F /* PBXTargetDependency */ = { + 854C176DC9AAEE442A2DF578DAAEB56F /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "OpenSSL-Universal"; - target = B9ED5194E665042005069EF06C82A050 /* OpenSSL-Universal */; - targetProxy = B159FB876C1CE42925419543C798FE84 /* PBXContainerItemProxy */; - }; - 38191D00E2782010D1F6BFFA8A226D0D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SwiftLint; - target = 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */; - targetProxy = D4026AC12C135EC21FF0566349AF373E /* PBXContainerItemProxy */; + name = nRFMeshProvision; + target = DBF639A39D1896128BCA040EDD84174E /* nRFMeshProvision */; + targetProxy = A1884D750E2EF347AFB0F62662E379B6 /* PBXContainerItemProxy */; }; - 83A5656E0B6F74ED787BEEF7D1A6E9AA /* PBXTargetDependency */ = { + E446A310001DFC53FF546299F376DB2B /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-nRFMeshProvision_Example"; target = 22072749B8AB997E54D438CB4B7DE84D /* Pods-nRFMeshProvision_Example */; - targetProxy = F5788798F98529FB5E873DD07169F764 /* PBXContainerItemProxy */; + targetProxy = 5C30D3478F7092F7AD785F0FDF4A918F /* PBXContainerItemProxy */; }; - 981B2F8D6CF7A8EDFE9022BFB072F4A2 /* PBXTargetDependency */ = { + F8C8C052131A57804E6B562739C7753E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = nRFMeshProvision; - target = DBF639A39D1896128BCA040EDD84174E /* nRFMeshProvision */; - targetProxy = 0882DEE393BEA79E7304C3612DEA566F /* PBXContainerItemProxy */; + name = "OpenSSL-Universal"; + target = B9ED5194E665042005069EF06C82A050 /* OpenSSL-Universal */; + targetProxy = 097E23CBF3690C853760A751811FA406 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0A4DB107D2E6F93EDE033B6F765BF01F /* Release */ = { + 3F766CDBEF151AB574B8F51FD96E3873 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E29831B6CFFC923E405B03ECA531E148 /* Pods-nRFMeshProvision_Example.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 56B74FD15CEACB4921C95DA5A336B812 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = B9D04B533177E6D6318ED83EE13C71AC /* Pods-nRFMeshProvision_Tests.release.xcconfig */; buildSettings = { @@ -2073,10 +2156,11 @@ }; name = Release; }; - 196DFA3E4A09A28224918543529A1885 /* Debug */ = { + 6ACE01E101CD05C2D9274B28BE586706 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -2099,6 +2183,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -2106,16 +2191,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", + "POD_CONFIGURATION_RELEASE=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -2125,89 +2207,19 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 10.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; - name = Debug; - }; - 40B828301533449576229B119C80A7AA /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BCC620391E6CEC4900E7C1F315B6144B /* Pods-nRFMeshProvision_Example.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 5CB7F59DE8031259EE8850E954F2B976 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EE9E8C1F983733637663B926CB29ECE0 /* Pods-nRFMeshProvision_Tests.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; + name = Release; }; - 69B356E9C0EF4B836B5D16B087A215AA /* Debug */ = { + 88A5A53DAD964EC763DDB9C70F7E2F6E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BB8BCE0461EB3E09617551F05961D382 /* nRFMeshProvision.xcconfig */; + baseConfigurationReference = E7BD78DFE1A2BD03077370C15E974692 /* nRFMeshProvision.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -2231,16 +2243,17 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; + SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 703D1331C159A27C076899B59BF1D9C7 /* Release */ = { + A712392C945FAD43ACD472ABB70A397F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BB8BCE0461EB3E09617551F05961D382 /* nRFMeshProvision.xcconfig */; + baseConfigurationReference = 4F123257FA76D67A21DF960FE73DF29E /* nRFMeshProvision.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -2264,44 +2277,16 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; + SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; - }; - 84D7C4574E8F0F3095623F0E06F5B402 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 83C50267A7A0C995893B289591D75AB3 /* SwiftLint.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8F202A3E600955955D491DA1740A97A6 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2BAEDDDCB95D7A1BD48F33D350653E8E /* OpenSSL-Universal.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; name = Debug; }; - 9F9D5DF52F981F21F9F33E148F6D6724 /* Release */ = { + A7FFDA83E49D8C04B93995625E6D8D26 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2BAEDDDCB95D7A1BD48F33D350653E8E /* OpenSSL-Universal.xcconfig */; + baseConfigurationReference = 251285B7608C9D869B2B399E6B9FC909 /* OpenSSL-Universal.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -2309,49 +2294,14 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; }; - name = Release; - }; - A695F377FBD57C7A7882D96CE77764E5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E29831B6CFFC923E405B03ECA531E148 /* Pods-nRFMeshProvision_Example.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; + name = Debug; }; - B01D14FDC83DCF9D4BE53066BEA96D05 /* Release */ = { + B1B259C5FB7465EF9C71163827046E70 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -2374,6 +2324,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -2381,13 +2332,16 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; + DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -2397,20 +2351,89 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 10.0; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; - name = Release; + name = Debug; + }; + E38EDF7C41A69AFA7B788C96DE248F81 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EE9E8C1F983733637663B926CB29ECE0 /* Pods-nRFMeshProvision_Tests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + EEDD259DEE38C1E13DF10AA19548266E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BCC620391E6CEC4900E7C1F315B6144B /* Pods-nRFMeshProvision_Example.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; }; - DEED47E09AF743F48544C1C4FEADEF47 /* Debug */ = { + FA1C3F1BDB3AEF68145669451B691495 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 83C50267A7A0C995893B289591D75AB3 /* SwiftLint.xcconfig */; + baseConfigurationReference = 60F659933A0EDC3406DBE1AAF1B30F10 /* OpenSSL-Universal.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -2418,62 +2441,54 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 24FC401598FD6B1819844AA1CF0E174D /* Build configuration list for PBXNativeTarget "nRFMeshProvision" */ = { isa = XCConfigurationList; buildConfigurations = ( - 196DFA3E4A09A28224918543529A1885 /* Debug */, - B01D14FDC83DCF9D4BE53066BEA96D05 /* Release */, + A712392C945FAD43ACD472ABB70A397F /* Debug */, + 88A5A53DAD964EC763DDB9C70F7E2F6E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5420460E31B360646EC14CFD936D34DE /* Build configuration list for PBXNativeTarget "nRFMeshProvision" */ = { + 3F1F8C672CB0BBF273D586F7FF910F13 /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - 69B356E9C0EF4B836B5D16B087A215AA /* Debug */, - 703D1331C159A27C076899B59BF1D9C7 /* Release */, + EEDD259DEE38C1E13DF10AA19548266E /* Debug */, + 3F766CDBEF151AB574B8F51FD96E3873 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6782F177CE01CD4AFAED703214778670 /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 40B828301533449576229B119C80A7AA /* Debug */, - A695F377FBD57C7A7882D96CE77764E5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 741581A7361AF4537A921DAD19E3B1ED /* Build configuration list for PBXAggregateTarget "OpenSSL-Universal" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8F202A3E600955955D491DA1740A97A6 /* Debug */, - 9F9D5DF52F981F21F9F33E148F6D6724 /* Release */, + B1B259C5FB7465EF9C71163827046E70 /* Debug */, + 6ACE01E101CD05C2D9274B28BE586706 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8AC4E010999A214111BC6147F64732D5 /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Tests" */ = { + 4AC7CF73AA056D95E2D09A706047EEDA /* Build configuration list for PBXNativeTarget "Pods-nRFMeshProvision_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5CB7F59DE8031259EE8850E954F2B976 /* Debug */, - 0A4DB107D2E6F93EDE033B6F765BF01F /* Release */, + E38EDF7C41A69AFA7B788C96DE248F81 /* Debug */, + 56B74FD15CEACB4921C95DA5A336B812 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */ = { + 741581A7361AF4537A921DAD19E3B1ED /* Build configuration list for PBXAggregateTarget "OpenSSL-Universal" */ = { isa = XCConfigurationList; buildConfigurations = ( - DEED47E09AF743F48544C1C4FEADEF47 /* Debug */, - 84D7C4574E8F0F3095623F0E06F5B402 /* Release */, + A7FFDA83E49D8C04B93995625E6D8D26 /* Debug */, + FA1C3F1BDB3AEF68145669451B691495 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision.xcscheme index 327b6ec9f..16f08791b 100644 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision.xcscheme +++ b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision.xcscheme @@ -1,6 +1,6 @@ Type PSGroupSpecifier - - FooterText - The MIT License (MIT) - -Copyright (c) 2015 Realm Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - License - MIT - Title - SwiftLint - Type - PSGroupSpecifier - FooterText Copyright (c) 2019, Nordic Semiconductor ASA diff --git a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.debug.xcconfig index ae4018980..90de90078 100755 --- a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.debug.xcconfig @@ -1,4 +1,6 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision/nRFMeshProvision.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" @@ -10,4 +12,5 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.release.xcconfig index ae4018980..90de90078 100755 --- a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Example/Pods-nRFMeshProvision_Example.release.xcconfig @@ -1,4 +1,6 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision/nRFMeshProvision.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" @@ -10,4 +12,5 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.debug.xcconfig index 4181b77a0..f792c4785 100755 --- a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.debug.xcconfig @@ -1,3 +1,5 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision/nRFMeshProvision.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" @@ -6,4 +8,5 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.release.xcconfig index 4181b77a0..f792c4785 100755 --- a/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-nRFMeshProvision_Tests/Pods-nRFMeshProvision_Tests.release.xcconfig @@ -1,3 +1,5 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision/nRFMeshProvision.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" @@ -6,4 +8,5 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig b/Example/Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig deleted file mode 100644 index 59a645623..000000000 --- a/Example/Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftLint -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftLint -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision-Info.plist b/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision-Info.plist index 1badf92da..452267571 100644 --- a/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision-Info.plist +++ b/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision-Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 2.2.1 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision.debug.xcconfig b/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision.debug.xcconfig new file mode 100644 index 000000000..bf6e3863b --- /dev/null +++ b/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision.release.xcconfig b/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision.release.xcconfig new file mode 100644 index 000000000..bf6e3863b --- /dev/null +++ b/Example/Pods/Target Support Files/nRFMeshProvision/nRFMeshProvision.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/nRFMeshProvision +EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/OpenSSL-Universal" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Tests/AssigningUnicastAddress.swift b/Example/Tests/AssigningUnicastAddress.swift index c2a9d7c53..91342c584 100644 --- a/Example/Tests/AssigningUnicastAddress.swift +++ b/Example/Tests/AssigningUnicastAddress.swift @@ -106,16 +106,38 @@ class AssigningUnicastAddress: XCTestCase { XCTAssertNoThrow(try meshNetwork.add(node: Node(name: "Node 3", unicastAddress: 30, elements: 9))) XCTAssertNoThrow(try meshNetwork.add(node: Node(name: "Node 4", unicastAddress: 103, elements: 5))) + let oldNode = Node(name: "Node 5", unicastAddress: 110, elements: 2) + XCTAssertNoThrow(try meshNetwork.add(node: oldNode)) + XCTAssertFalse(meshNetwork.isAddressRangeAvailable(111, elementsCount: 2)) + XCTAssertTrue(meshNetwork.isAddressRangeAvailable(111, elementsCount: 2, for: oldNode)) + meshNetwork.remove(node: oldNode) + let provisioner = Provisioner(name: "Test provisioner", allocatedUnicastRange: [ - AddressRange(100...200) + AddressRange(100...120) ], allocatedGroupRange: [], allocatedSceneRange: []) let address = meshNetwork.nextAvailableUnicastAddress(for: 6, elementsUsing: provisioner) XCTAssertNotNil(address) - XCTAssertEqual(address!, 108) + XCTAssertEqual(address!, 112) + + // 110 and 111 cannot be assigned until IV Index changes by 2. + XCTAssertFalse(meshNetwork.isAddressRangeAvailable(110, elementsCount: 3)) + XCTAssertTrue(meshNetwork.isAddressRangeAvailable(112, elementsCount: 10)) + + meshNetwork.ivIndex = IvIndex(index: 1, updateActive: true) + XCTAssertFalse(meshNetwork.isAddressRangeAvailable(110, elementsCount: 3)) + + meshNetwork.ivIndex = IvIndex(index: 1, updateActive: false) + XCTAssertFalse(meshNetwork.isAddressRangeAvailable(110, elementsCount: 3)) + + // When IV Index is incremented by 2 since a Node was removed, the Unicast + // Addresses may be reused. + meshNetwork.ivIndex = IvIndex(index: 2, updateActive: true) + XCTAssertTrue(meshNetwork.isAddressRangeAvailable(110, elementsCount: 3)) + XCTAssertEqual(meshNetwork.nextAvailableUnicastAddress(for: 6, elementsUsing: provisioner), 108) } func testAssigningUnicastAddress_advanced() { diff --git a/Example/Tests/CreatingMeshNetwork.swift b/Example/Tests/CreatingMeshNetwork.swift index 4ac79801a..fc0ce6e5c 100644 --- a/Example/Tests/CreatingMeshNetwork.swift +++ b/Example/Tests/CreatingMeshNetwork.swift @@ -59,7 +59,7 @@ class CreatingMeshNetwork: XCTestCase { XCTAssertNotNil(manager.meshNetwork) XCTAssertEqual(network.meshName, "Test network") XCTAssertEqual(network.provisioners.count, 1) - XCTAssertEqual(network.provisioners.first?.provisionerName, "Test Provisioner") + XCTAssertEqual(network.provisioners.first?.name, "Test Provisioner") XCTAssertEqual(network.networkKeys.count, 1) XCTAssertEqual(network.nodes.count, 1) XCTAssertEqual(network.nodes.first?.name, "Test Provisioner") @@ -93,16 +93,16 @@ class CreatingMeshNetwork: XCTestCase { XCTAssertEqual(network.nodes.first?.elements.count, 2) XCTAssertEqual(network.nodes.first?.elementsCount, 2) // Verify the Primary Element. - XCTAssertEqual(network.nodes.first?.elements[0].models.count, 6) - XCTAssert(network.nodes.first?.elements[0].contains(modelWithIdentifier: 0x1001) ?? false) - XCTAssert(network.nodes.first?.elements[0].contains(modelWithIdentifier: 0x1003) ?? false) + XCTAssertEqual(network.nodes.first?.elements[0].models.count, 7) + XCTAssert(network.nodes.first?.elements[0].contains(modelWithSigModelId: 0x1001) ?? false) + XCTAssert(network.nodes.first?.elements[0].contains(modelWithSigModelId: 0x1003) ?? false) // Verify element 1 and 2. XCTAssertEqual(network.nodes.first?.elements[1].models.count, 3) - XCTAssertFalse(network.nodes.first?.elements[1].contains(modelWithIdentifier: 0x1001) ?? true) - XCTAssertFalse(network.nodes.first?.elements[1].contains(modelWithIdentifier: 0x1003) ?? true) - XCTAssert(network.nodes.first?.elements[1].contains(modelWithIdentifier: 0x1005) ?? false) - XCTAssert(network.nodes.first?.elements[1].contains(modelWithIdentifier: 0x1007) ?? false) - XCTAssert(network.nodes.first?.elements[1].contains(modelWithIdentifier: 0x1009) ?? false) + XCTAssertFalse(network.nodes.first?.elements[1].contains(modelWithSigModelId: 0x1001) ?? true) + XCTAssertFalse(network.nodes.first?.elements[1].contains(modelWithSigModelId: 0x1003) ?? true) + XCTAssert(network.nodes.first?.elements[1].contains(modelWithSigModelId: 0x1005) ?? false) + XCTAssert(network.nodes.first?.elements[1].contains(modelWithSigModelId: 0x1007) ?? false) + XCTAssert(network.nodes.first?.elements[1].contains(modelWithSigModelId: 0x1009) ?? false) } func testNextAvailableUnicastAddress() { @@ -130,7 +130,7 @@ class CreatingMeshNetwork: XCTestCase { let manager = MeshNetworkManager(using: TestStorage()) let network = manager.createNewMeshNetwork(withName: "Test network", by: "Test Provisioner") - let node = Node(lowSecurityNode: "Test Node", with: 3, + let node = Node(insecureNode: "Test Node", with: 3, elementsDeviceKey: OpenSSLHelper().generateRandom(), andAssignedNetworkKey: network.networkKeys.first!, andAddress: 0x0003) XCTAssertNotNil(node) @@ -150,8 +150,8 @@ class CreatingMeshNetwork: XCTestCase { element3.add(model: Model(sigModelId: 0x1009)) // Generic Power Level Server // Define local Elements. - // Configuration Server and Client and Health Server and Client - // will be added automatically to the first element. + // Configuration Server and Client, Health Server and Client, + // and Scene Client will be added automatically to the first element. // The element 2 will be removed, as it has 0 Models. manager.localElements = [element0, element1, element2, element3] @@ -163,14 +163,15 @@ class CreatingMeshNetwork: XCTestCase { let cutElements = network.localProvisioner?.node?.elements XCTAssertNotNil(cutElements) - XCTAssertEqual(cutElements!.count, 2) // There were only 2 addreses available. - XCTAssertEqual(cutElements![0].models.count, 6) + XCTAssertEqual(cutElements!.count, 2) // There were only 2 addresses available. + XCTAssertEqual(cutElements![0].models.count, 7) XCTAssert(cutElements![0].contains(model: Model(sigModelId: .configurationServerModelId))) XCTAssert(cutElements![0].contains(model: Model(sigModelId: .configurationClientModelId))) XCTAssert(cutElements![0].contains(model: Model(sigModelId: .healthServerModelId))) XCTAssert(cutElements![0].contains(model: Model(sigModelId: .healthClientModelId))) - XCTAssertEqual(cutElements![0].models[4].modelIdentifier, 0x1001) - XCTAssertEqual(cutElements![0].models[5].modelIdentifier, 0x1003) + XCTAssert(cutElements![0].contains(model: Model(sigModelId: .sceneClientModelId))) + XCTAssertEqual(cutElements![0].models[5].modelIdentifier, 0x1001) + XCTAssertEqual(cutElements![0].models[6].modelIdentifier, 0x1003) XCTAssertEqual(cutElements![1].models.count, 3) XCTAssertEqual(cutElements![1].models[0].modelIdentifier, 0x1005) XCTAssertEqual(cutElements![1].models[1].modelIdentifier, 0x1007) diff --git a/Example/Tests/Exporting.swift b/Example/Tests/Exporting.swift new file mode 100644 index 000000000..10476078a --- /dev/null +++ b/Example/Tests/Exporting.swift @@ -0,0 +1,617 @@ +/* +* Copyright (c) 2019, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + +import XCTest +@testable import nRFMeshProvision + +class Exporting: XCTestCase { + var meshNetwork: MeshNetwork! + + override func setUpWithError() throws { + meshNetwork = MeshNetwork(name: "Test network", uuid: UUID()) + + // Create 2 Network Keys (Primary Network Key is generated automatically), + // including one Guest Network Key. + var primaryNetworkKey: NetworkKey? + var guestNetworkKey: NetworkKey? + XCTAssertNoThrow(guestNetworkKey = try meshNetwork.add(networkKey: Data.random128BitKey(), name: "Guest Network Key")) + XCTAssertNotNil(guestNetworkKey) + primaryNetworkKey = meshNetwork.networkKeys.primaryKey + XCTAssertNotNil(primaryNetworkKey) + XCTAssertEqual(meshNetwork.networkKeys.count, 2) // Primary Network Key is created automatically. + + // Create 3 Application Keys, including one Guest Key. + var lightsKey: ApplicationKey? + var locksKey: ApplicationKey? + var guestKey: ApplicationKey? + XCTAssertNoThrow(lightsKey = try meshNetwork.add(applicationKey: Data.random128BitKey(), name: "Lights")) + XCTAssertNoThrow(locksKey = try meshNetwork.add(applicationKey: Data.random128BitKey(), name: "Locks")) + XCTAssertNoThrow(guestKey = try meshNetwork.add(applicationKey: Data.random128BitKey(), name: "Guest Lights")) + XCTAssertNotNil(lightsKey) + XCTAssertNotNil(locksKey) + XCTAssertNotNil(guestKey) + XCTAssertNoThrow(try guestNetworkKey.map { try guestKey?.bind(to: $0) }) + XCTAssertEqual(lightsKey?.boundNetworkKeyIndex, primaryNetworkKey?.index) + XCTAssertEqual(locksKey?.boundNetworkKeyIndex, primaryNetworkKey?.index) + XCTAssertEqual(guestKey?.boundNetworkKeyIndex, guestNetworkKey?.index) + + // Define Groups. + let kitchenLights = try? Group(name: "Kitchen Lights", address: MeshAddress(0xC000)) + let locks = try? Group(name: "Locks", address: MeshAddress(0xC001)) + let guestRoomLights = try? Group(name: "Guest Room Lights", address: MeshAddress(0xD001)) + XCTAssertNotNil(kitchenLights) + XCTAssertNotNil(locks) + XCTAssertNotNil(guestRoomLights) + XCTAssertNoThrow(try kitchenLights.map { try meshNetwork.add(group: $0) }) + XCTAssertNoThrow(try locks.map { try meshNetwork.add(group: $0) }) + XCTAssertNoThrow(try guestRoomLights.map { try meshNetwork.add(group: $0) }) + + // Define Scenes. + XCTAssertNoThrow(try meshNetwork.add(scene: Scene.allOff, name: "All Off")) + XCTAssertNoThrow(try meshNetwork.add(scene: Scene.kitchenOff, name: "Kitchen On")) + XCTAssertNoThrow(try meshNetwork.add(scene: Scene.kitchenOn, name: "Kitchen Off")) + XCTAssertNoThrow(try meshNetwork.add(scene: Scene.cozyGuestRoom, name: "Cozy Guest Room Setup")) + XCTAssertEqual(meshNetwork.scenes.count, 4) + XCTAssertFalse(meshNetwork.scenes.contains(where: { $0.isUsed })) + + // Define Provisioners. The main one, and one for the Guest. + let mainProvisioner = Provisioner(name: "Main Provisioner", uuid: UUID(), + allocatedUnicastRange: [AddressRange(0x0001...0x0010)], + allocatedGroupRange: [AddressRange(0xC001...0xC010)], + allocatedSceneRange: [SceneRange(0x0001...0x0010)]) + XCTAssertNoThrow(try meshNetwork.add(provisioner: mainProvisioner)) + XCTAssertNotNil(meshNetwork.localProvisioner?.node) + XCTAssertGreaterThanOrEqual(meshNetwork.localProvisioner?.node?.elementsCount ?? 0, 1) + XCTAssertEqual(meshNetwork.localProvisioner?.node?.networkKeys.count, 2) + XCTAssertEqual(meshNetwork.localProvisioner?.node?.applicationKeys.count, 3) + + let guestProvisioner = Provisioner(name: "Guest Provisioner", uuid: UUID(), + // Single Address, just for the single Element. + allocatedUnicastRange: [AddressRange(0x1000...0x1000)], + allocatedGroupRange: [], + allocatedSceneRange: []) + XCTAssertNoThrow(try meshNetwork.add(provisioner: guestProvisioner, withAddress: 0x1000)) + XCTAssertNotNil(guestProvisioner.node) + XCTAssertGreaterThanOrEqual(guestProvisioner.node?.elementsCount ?? 0, 1) + XCTAssertEqual(guestProvisioner.node?.primaryElement?.models.count, 4) + let guestGenericOnOffClientModel = Model(sigModelId: .genericOnOffClientModelId) + guestProvisioner.node?.primaryElement?.add(model: guestGenericOnOffClientModel) + XCTAssertEqual(guestProvisioner.node?.primaryElement?.models.count, 5) + guestKey.map { key in + guestGenericOnOffClientModel.bind(applicationKeyWithIndex: key.index) + guestRoomLights.map { group in + guestGenericOnOffClientModel.set(publication: Publish(to: group.address, using: key, + usingFriendshipMaterial: false, ttl: 5, + period: .disabled, retransmit: .disabled)) + } + } + let guestSceneClientModel = Model(sigModelId: .sceneClientModelId) + guestProvisioner.node?.primaryElement?.add(model: guestSceneClientModel) + XCTAssertEqual(guestProvisioner.node?.primaryElement?.models.count, 6) + guestKey.map { key in + guestSceneClientModel.bind(applicationKeyWithIndex: key.index) + guestRoomLights.map { group in + guestSceneClientModel.set(publication: Publish(to: group.address, using: key, + usingFriendshipMaterial: false, ttl: 5, + period: .disabled, retransmit: .disabled)) + } + } + + // Setup Nodes in the kitchen. + let kitchenLightSwitch = Node(name: "Kitchen Light Switch", uuid: UUID(), deviceKey: Data.random128BitKey(), + andAssignedNetworkKey: primaryNetworkKey!, andAddress: 0x0002) + kitchenLightSwitch.add(elements: [Element(name: "Left button", location: .left, + models: [ + Model(sigModelId: .configurationServerModelId), + Model(sigModelId: .healthServerModelId), + Model(sigModelId: .genericOnOffClientModelId) + ]), + Element(name: "Right button", location: .right, + models: [ + Model(sigModelId: .genericOnOffClientModelId) + ])]) + + let kitchenLight = Node(name: "Kitchen Light", uuid: UUID(), deviceKey: Data.random128BitKey(), + andAssignedNetworkKey: primaryNetworkKey!, andAddress: 0x0004) + kitchenLight.add(element: Element(name: "Main Element", location: .left, + models: [ + Model(sigModelId: .configurationServerModelId), + Model(sigModelId: .healthServerModelId), + Model(sigModelId: .sceneServerModelId), + Model(sigModelId: .sceneSetupServerModelId), + Model(sigModelId: .genericOnOffServerModelId) + ])) + let led = Node(name: "LED", uuid: UUID(), deviceKey: Data.random128BitKey(), + andAssignedNetworkKey: primaryNetworkKey!, andAddress: 0x0005) + led.add(element: Element(name: "Main Element", location: .left, + models: [ + Model(sigModelId: .configurationServerModelId), + Model(sigModelId: .healthServerModelId), + Model(sigModelId: .genericOnOffServerModelId), + Model(sigModelId: .sceneServerModelId), + Model(sigModelId: .sceneSetupServerModelId) + ])) + + XCTAssertNoThrow(try meshNetwork.add(node: kitchenLightSwitch)) + XCTAssertNoThrow(try meshNetwork.add(node: kitchenLight)) + XCTAssertNoThrow(try meshNetwork.add(node: led)) + + // Configure Light Switch in the kitchen. + lightsKey.map { key in + kitchenLightSwitch.add(applicationKey: key) + XCTAssert(kitchenLightSwitch.applicationKeys.contains(key)) + } + XCTAssertEqual(kitchenLightSwitch.applicationKeys.count, 1) + let leftButtonModel = kitchenLightSwitch.elements.first?.model(withSigModelId: .genericOnOffClientModelId) + XCTAssertNotNil(leftButtonModel) + lightsKey.map { key in + leftButtonModel?.bind(applicationKeyWithIndex: key.index) + kitchenLights.map { group in + leftButtonModel?.set(publication: Publish(to: group.address, using: key, + usingFriendshipMaterial: false, ttl: 5, + period: .disabled, + retransmit: Publish.Retransmit(1, timesWithInterval: 0.2))) + } + } + XCTAssertEqual(leftButtonModel?.boundApplicationKeys.count, 1) + XCTAssertNotNil(leftButtonModel?.publish) + + let rightButtonModel = kitchenLightSwitch.elements.last?.model(withSigModelId: .genericOnOffClientModelId) + XCTAssertNotNil(rightButtonModel) + lightsKey.map { key in + rightButtonModel?.bind(applicationKeyWithIndex: key.index) + rightButtonModel?.set(publication: Publish(to: MeshAddress(led.unicastAddress), using: key, + usingFriendshipMaterial: false, ttl: 5, + period: .disabled, retransmit: .disabled)) + } + XCTAssertEqual(rightButtonModel?.boundApplicationKeys.count, 1) + XCTAssertNotNil(rightButtonModel?.publish) + + // Configure Kitchen Light and subscribe it to Kitchen Lights group. + lightsKey.map { key in + kitchenLight.add(applicationKey: key) + XCTAssert(kitchenLight.applicationKeys.contains(key)) + } + XCTAssertEqual(kitchenLight.applicationKeys.count, 1) + let kitchenLightModel = kitchenLight.elements.first?.model(withSigModelId: .genericOnOffServerModelId) + XCTAssertNotNil(kitchenLightModel) + lightsKey.map { key in + kitchenLightModel?.bind(applicationKeyWithIndex: key.index) + } + kitchenLights.map { group in + kitchenLightModel?.subscribe(to: group) + XCTAssert(kitchenLightModel?.subscriptions.contains(group) ?? false) + } + // Simulate that the Kitchen Light Scene Register was set to use the following scenes: + meshNetwork.scenes[Scene.allOff]?.add(address: kitchenLight.unicastAddress) + XCTAssertFalse(meshNetwork.scenes[Scene.allOff]?.nodes.isEmpty ?? true) + meshNetwork.scenes[Scene.kitchenOn]?.add(address: kitchenLight.unicastAddress) + XCTAssertFalse(meshNetwork.scenes[Scene.kitchenOn]?.nodes.isEmpty ?? true) + meshNetwork.scenes[Scene.kitchenOff]?.add(address: kitchenLight.unicastAddress) + XCTAssertFalse(meshNetwork.scenes[Scene.kitchenOff]?.nodes.isEmpty ?? true) + XCTAssertTrue(meshNetwork.scenes.contains(where: { $0.isUsed })) + + // Configure Kitchen LED light. + lightsKey.map { key in + led.add(applicationKey: key) + XCTAssert(led.applicationKeys.contains(key)) + } + XCTAssertEqual(led.applicationKeys.count, 1) + let ledModel = led.elements.first?.model(withSigModelId: .genericOnOffServerModelId) + XCTAssertNotNil(ledModel) + lightsKey.map { key in + ledModel?.bind(applicationKeyWithIndex: key.index) + } + // Simulate that the LED Scene Register was set to use the following scenes: + meshNetwork.scenes[Scene.allOff]?.add(address: led.unicastAddress) + XCTAssertTrue(meshNetwork.scenes[Scene.allOff]?.nodes.contains(led) ?? false) + meshNetwork.scenes[Scene.kitchenOn]?.add(address: led.unicastAddress) + XCTAssertTrue(meshNetwork.scenes[Scene.kitchenOn]?.nodes.contains(led) ?? false) + meshNetwork.scenes[Scene.kitchenOff]?.add(address: led.unicastAddress) + XCTAssertTrue(meshNetwork.scenes[Scene.kitchenOff]?.nodes.contains(led) ?? false) + + // Configure Lock. + let lock = Node(name: "Door Lock", uuid: UUID(), deviceKey: Data.random128BitKey(), + andAssignedNetworkKey: primaryNetworkKey!, andAddress: 0x0010) + lock.add(element: Element(name: "Main Element", location: .main, + models: [ + Model(sigModelId: .configurationServerModelId), + Model(sigModelId: .healthServerModelId), + Model(sigModelId: .sceneServerModelId), + Model(sigModelId: .sceneSetupServerModelId), + Model(sigModelId: .genericOnOffServerModelId), + ])) + XCTAssertNoThrow(try meshNetwork.add(node: lock)) + locksKey.map { key in + lock.add(applicationKey: key) + XCTAssert(lock.applicationKeys.contains(key)) + } + XCTAssertEqual(lock.applicationKeys.count, 1) + let lockModel = led.elements.first?.model(withSigModelId: .genericOnOffServerModelId) + XCTAssertNotNil(lockModel) + locksKey.map { key in + lockModel?.bind(applicationKeyWithIndex: key.index) + } + locks.map { group in + lockModel?.subscribe(to: group) + XCTAssert(lockModel?.subscriptions.contains(group) ?? false) + } + // Simulate that the Lock's Scene Register was set to use the following scene: + meshNetwork.scenes[Scene.allOff]?.add(address: lock.unicastAddress) + XCTAssertTrue(meshNetwork.scenes[Scene.allOff]?.nodes.contains(lock) ?? false) + + // Setup Nodes in the guest room. + let guestSwitch = Node(name: "Guest Room Switch", uuid: UUID(), deviceKey: Data.random128BitKey(), + andAssignedNetworkKey: primaryNetworkKey!, andAddress: 0x0100) + guestSwitch.add(element: Element(name: "Toggle Button", location: .main, + models: [ + Model(sigModelId: .configurationServerModelId), + Model(sigModelId: .healthServerModelId), + Model(sigModelId: .genericOnOffClientModelId) + ])) + + let guestLight = Node(name: "Guest Light", uuid: UUID(), deviceKey: Data.random128BitKey(), + andAssignedNetworkKey: primaryNetworkKey!, andAddress: 0x0101) + guestLight.add(element: Element(name: "Main Element", location: .unknown, + models: [ + Model(sigModelId: .configurationServerModelId), + Model(sigModelId: .healthServerModelId), + Model(sigModelId: .sceneServerModelId), + Model(sigModelId: .sceneSetupServerModelId), + Model(sigModelId: .genericOnOffServerModelId) + ])) + + XCTAssertNoThrow(try meshNetwork.add(node: guestSwitch)) + XCTAssertNoThrow(try meshNetwork.add(node: guestLight)) + + // Configure Guest Switch. + guestNetworkKey.map { key in + guestSwitch.add(networkKey: key) + XCTAssert(guestSwitch.networkKeys.contains(key)) + } + XCTAssertEqual(guestSwitch.networkKeys.count, 2) + guestKey.map { key in + guestSwitch.add(applicationKey: key) + XCTAssert(guestSwitch.applicationKeys.contains(key)) + } + XCTAssertEqual(guestSwitch.applicationKeys.count, 1) + let guestButtonModel = guestSwitch.elements.first?.model(withSigModelId: .genericOnOffClientModelId) + XCTAssertNotNil(guestButtonModel) + guestKey.map { key in + guestButtonModel?.bind(applicationKeyWithIndex: key.index) + guestRoomLights.map { group in + guestButtonModel?.set(publication: Publish(to: group.address, using: key, + usingFriendshipMaterial: false, ttl: 5, + period: .disabled, + retransmit: Publish.Retransmit(1, timesWithInterval: 0.2))) + } + } + XCTAssertEqual(guestButtonModel?.boundApplicationKeys.count, 1) + XCTAssertNotNil(guestButtonModel?.publish) + + // Configure Guest Light and subscribe it to Guest Room Lights group. + guestNetworkKey.map { key in + guestLight.add(networkKey: key) + XCTAssert(guestLight.networkKeys.contains(key)) + } + XCTAssertEqual(guestLight.networkKeys.count, 2) + guestKey.map { key in + guestLight.add(applicationKey: key) + XCTAssert(guestLight.applicationKeys.contains(key)) + } + XCTAssertEqual(guestLight.applicationKeys.count, 1) + let guestLightModel = kitchenLight.elements.first?.model(withSigModelId: .genericOnOffServerModelId) + XCTAssertNotNil(guestLightModel) + guestKey.map { key in + guestLightModel?.bind(applicationKeyWithIndex: key.index) + } + guestRoomLights.map { group in + guestLightModel?.subscribe(to: group) + XCTAssert(guestLightModel?.subscriptions.contains(group) ?? false) + } + // Simulate that the Lock's Scene Register was set to use the following scene: + meshNetwork.scenes[Scene.cozyGuestRoom]?.add(address: guestLight.unicastAddress) + XCTAssertTrue(meshNetwork.scenes[Scene.cozyGuestRoom]?.nodes.contains(guestLight) ?? false) + meshNetwork.scenes[Scene.allOff]?.add(address: guestLight.unicastAddress) + XCTAssertTrue(meshNetwork.scenes[Scene.allOff]?.nodes.contains(guestLight) ?? false) + + // Add and remove a Node. + XCTAssertNoThrow(try meshNetwork.add(node: Node(insecureNode: "Old Node", with: 1, + elementsDeviceKey: Data.random128BitKey(), + andAssignedNetworkKey: primaryNetworkKey!, + andAddress: 0x0F10)!)) + meshNetwork.node(withAddress: 0x0F10).map { node in + node.add(element: Element(name: "Main Element", location: .unknown, + models: [ + Model(sigModelId: .configurationServerModelId), + Model(sigModelId: .healthServerModelId), + Model(sigModelId: .genericOnOffClientModelId) + ])) + meshNetwork.remove(node: node) + } + XCTAssertNotNil(meshNetwork.networkExclusions) + XCTAssertTrue(meshNetwork.networkExclusions?[meshNetwork.ivIndex]?.isExcluded(0x0F10) ?? false) + XCTAssertEqual(meshNetwork.networkExclusions?.count, 1) + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExportBasic() throws { + let copy = meshNetwork.copy(using: .full) + // This test tests implementation detail which may change. + // In the current version, when copy(using .full) is called, the + // same network instance is returned instead of creating an actual + // copy. If this test fails, check the implementation and fix the + // test. + XCTAssert(copy === meshNetwork) + } + + func testExportFull() throws { + let copy = MeshNetwork(copy: meshNetwork, using: .full) + XCTAssertEqual(copy.uuid, meshNetwork.uuid) + XCTAssertEqual(copy.meshName, meshNetwork.meshName) + XCTAssertEqual(copy.timestamp, meshNetwork.timestamp) + XCTAssertEqual(copy.isPartial, false) + XCTAssertEqual(copy.networkKeys.count, meshNetwork.networkKeys.count) + XCTAssertEqual(copy.applicationKeys.count, meshNetwork.applicationKeys.count) + XCTAssertEqual(copy.provisioners.count, meshNetwork.provisioners.count) + XCTAssertEqual(copy.nodes.count, meshNetwork.nodes.count) + XCTAssertEqual(copy.groups.count, meshNetwork.groups.count) + XCTAssertEqual(copy.scenes.count, copy.scenes.count) + XCTAssertEqual(copy.networkExclusions?.count ?? 0, meshNetwork.networkExclusions?.count ?? 0) + + copy.nodes.forEach { node in + let matchingNode = meshNetwork.node(withUuid: node.uuid) + XCTAssertNotNil(matchingNode) + XCTAssertEqual(node.networkKeys.count, matchingNode?.networkKeys.count) + XCTAssertEqual(node.applicationKeys.count, matchingNode?.applicationKeys.count) + XCTAssertEqual(node.elements.count, matchingNode?.elements.count) + node.elements.forEach { element in + let matchingElement = matchingNode?.element(withAddress: element.unicastAddress) + XCTAssertNotNil(matchingElement) + XCTAssertEqual(element.models.count, matchingElement?.models.count) + } + } + + // Compare the generated JSON outputs. + let encoder = JSONEncoder() + encoder.dateEncodingStrategy = .iso8601 + + var originalData, copyData: Data? + XCTAssertNoThrow(originalData = try encoder.encode(meshNetwork)) + XCTAssertNoThrow(copyData = try encoder.encode(meshNetwork)) + XCTAssertEqual(originalData, copyData) + } + + func testExportPartialOneNetworkKey() throws { + guard let guestNetworkKey = meshNetwork.networkKeys.first(where: { $0.index == 1 }) else { + XCTFail("Guest Network Key not found") + return + } + // Export + let copy = MeshNetwork(copy: meshNetwork, + using: .partial(networkKeys: .some([guestNetworkKey]), + applicationKeys: .all, + provisioners: .all, + nodes: .allWithDeviceKey)) + XCTAssertEqual(copy.uuid, copy.uuid) + XCTAssertEqual(copy.meshName, copy.meshName) + XCTAssertEqual(copy.timestamp, copy.timestamp) + XCTAssertEqual(copy.isPartial, true) + XCTAssertEqual(copy.networkKeys.count, 1) + XCTAssertEqual(copy.applicationKeys.count, 1) + XCTAssertEqual(copy.provisioners.count, 2) + XCTAssertEqual(copy.nodes.count, 4) + copy.nodes.forEach { node in + let matchingNode = meshNetwork.node(withUuid: node.uuid) + XCTAssertNotNil(matchingNode) + XCTAssertNotNil(node.deviceKey) + XCTAssertEqual(node.deviceKey, matchingNode?.deviceKey) + XCTAssertEqual(node.networkKeys.count, 1) + XCTAssertLessThanOrEqual(node.networkKeys.count, matchingNode?.networkKeys.count ?? 0) + XCTAssertGreaterThanOrEqual(node.applicationKeys.count, 1) + XCTAssertLessThanOrEqual(node.applicationKeys.count, matchingNode?.applicationKeys.count ?? 0) + XCTAssertEqual(node.elements.count, matchingNode?.elements.count) + node.elements.forEach { element in + let matchingElement = matchingNode?.element(withAddress: element.unicastAddress) + XCTAssertNotNil(matchingElement) + XCTAssertEqual(element.models.count, matchingElement?.models.count) + } + } + XCTAssertEqual(copy.groups.count, 1) + XCTAssertEqual(copy.scenes.count, 2) + XCTAssertNotNil(copy.scenes[Scene.allOff]) + XCTAssertEqual(copy.scenes[Scene.allOff]?.addresses.count, 1) + XCTAssertEqual(copy.scenes[Scene.allOff]?.addresses.first, 0x0101) + XCTAssertEqual(copy.networkExclusions?.count ?? 0, 1) + } + + func testExportOneNetworkKeyWithoutDeviceKeys() throws { + guard let guestNetworkKey = meshNetwork.networkKeys.first(where: { $0.index == 1 }) else { + XCTFail("Guest Network Key not found") + return + } + guard let cozyGuestRoom = meshNetwork.scenes[Scene.cozyGuestRoom] else { + XCTFail("Cozy Guest Room group not found") + return + } + // Export + let copy = MeshNetwork(copy: meshNetwork, + using: .partial(networkKeys: .some([guestNetworkKey]), + applicationKeys: .all, + provisioners: .all, + nodes: .allWithoutDeviceKey, + scenes: .some([cozyGuestRoom]))) + XCTAssertEqual(copy.uuid, copy.uuid) + XCTAssertEqual(copy.meshName, copy.meshName) + XCTAssertEqual(copy.timestamp, copy.timestamp) + XCTAssertEqual(copy.isPartial, true) + XCTAssertEqual(copy.networkKeys.count, 1) + XCTAssertEqual(copy.applicationKeys.count, 1) + XCTAssertEqual(copy.provisioners.count, 2) + XCTAssertEqual(copy.nodes.count, 4) + copy.nodes.forEach { + XCTAssertNil($0.deviceKey) + XCTAssertEqual($0.networkKeys.count, 1) + XCTAssertGreaterThanOrEqual($0.applicationKeys.count, 1) + } + XCTAssertEqual(copy.groups.count, 1) + XCTAssertEqual(copy.scenes.count, 1) + XCTAssertEqual(copy.networkExclusions?.count ?? 0, meshNetwork.networkExclusions?.count ?? 0) + } + + func testExportOneNetworkKeyAndOneProvisioner() throws { + guard let guestProvisioner = meshNetwork.provisioners.first(where: { $0.name == "Guest Provisioner" }) else { + XCTFail("Guest Provisioner not found") + return + } + guard let guestNetworkKey = meshNetwork.networkKeys.first(where: { $0.index == 1 }) else { + XCTFail("Guest Network Key not found") + return + } + // Export + let copy = MeshNetwork(copy: meshNetwork, + using: .partial(networkKeys: .some([guestNetworkKey]), + applicationKeys: .all, + provisioners: .one(guestProvisioner), + nodes: .allWithoutDeviceKey, + groups: .all, + scenes: .all)) + XCTAssertEqual(copy.uuid, copy.uuid) + XCTAssertEqual(copy.meshName, copy.meshName) + XCTAssertEqual(copy.timestamp, copy.timestamp) + XCTAssertEqual(copy.isPartial, true) + XCTAssertEqual(copy.networkKeys.count, 1) + XCTAssertEqual(copy.applicationKeys.count, 1) + XCTAssertEqual(copy.provisioners.count, 1) + XCTAssertEqual(copy.nodes.count, 3) + copy.nodes.forEach { + XCTAssertNil($0.deviceKey) + XCTAssertEqual($0.networkKeys.count, 1) + XCTAssertGreaterThanOrEqual($0.applicationKeys.count, 1) + } + XCTAssertEqual(copy.groups.count, 3) + XCTAssertEqual(copy.scenes.count, 4) + XCTAssertEqual(copy.networkExclusions?.count ?? 0, 1) + } + + func testExportOneProvisioner() throws { + guard let guestProvisioner = meshNetwork.provisioners.first(where: { $0.name == "Guest Provisioner" }) else { + XCTFail("Guest Provisioner not found") + return + } + // Export + let copy = MeshNetwork(copy: meshNetwork, + using: .partial(networkKeys: .all, + applicationKeys: .all, + provisioners: .one(guestProvisioner), + nodes: .allWithDeviceKey, + groups: .all, + scenes: .all)) + XCTAssertEqual(copy.uuid, copy.uuid) + XCTAssertEqual(copy.meshName, copy.meshName) + XCTAssertEqual(copy.timestamp, copy.timestamp) + XCTAssertEqual(copy.isPartial, true) + XCTAssertEqual(copy.networkKeys.count, 2) + XCTAssertEqual(copy.applicationKeys.count, 3) + XCTAssertEqual(copy.provisioners.count, 1) + XCTAssertEqual(copy.nodes.count, 7) + copy.nodes.forEach { + XCTAssertNotNil($0.deviceKey) + XCTAssertGreaterThanOrEqual($0.networkKeys.count, 1) + XCTAssertGreaterThanOrEqual($0.applicationKeys.count, 1) + } + XCTAssertNil(copy.node(withAddress: 0x0001)) // The other provisioner should be excluded. + XCTAssertEqual(copy.groups.count, 3) + XCTAssertEqual(copy.scenes.count, 4) + XCTAssertEqual(copy.networkExclusions?.count ?? 0, 1) + } + + func testExportPublishAndSubscribe() throws { + guard let primaryNetworkKey = meshNetwork.networkKeys.primaryKey else { + XCTFail("Primary Network Key not found") + return + } + // Export + let copy = MeshNetwork(copy: meshNetwork, + using: .partial(networkKeys: .some([primaryNetworkKey]), + applicationKeys: .all, + provisioners: .all, + nodes: .allWithDeviceKey, + groups: .some([]), + scenes: .all)) + XCTAssertEqual(copy.uuid, copy.uuid) + XCTAssertEqual(copy.meshName, copy.meshName) + XCTAssertEqual(copy.timestamp, copy.timestamp) + XCTAssertEqual(copy.isPartial, true) + XCTAssertEqual(copy.networkKeys.count, 1) + XCTAssertEqual(copy.applicationKeys.count, 2) + XCTAssertEqual(copy.provisioners.count, 2) + XCTAssertEqual(copy.nodes.count, 8) + copy.nodes.forEach { node in + XCTAssertNotNil(node.deviceKey) + XCTAssertGreaterThanOrEqual(node.networkKeys.count, 1) + XCTAssertFalse(node.applicationKeys.contains(where: { $0.boundNetworkKeyIndex == 1 })) + } + XCTAssertEqual(copy.groups.count, 0) + XCTAssertEqual(copy.scenes.count, 4) + XCTAssertEqual(copy.networkExclusions?.count ?? 0, 1) + + let guestSwitch = copy.node(withAddress: 0x0100) + XCTAssertNotNil(guestSwitch) + let genericOnOffClientModel = guestSwitch?.elements.first?.model(withSigModelId: .genericOnOffClientModelId) + XCTAssertNotNil(genericOnOffClientModel) + XCTAssertNil(genericOnOffClientModel?.publish) + XCTAssertEqual(genericOnOffClientModel?.bind.count, 0) + } + +} + +private extension UInt16 { + + static let genericOnOffServerModelId: UInt16 = 0x1000 + static let genericOnOffClientModelId: UInt16 = 0x1001 + + static let sceneServerModelId: UInt16 = 0x1203 + static let sceneSetupServerModelId: UInt16 = 0x1204 + static let sceneClientModelId: UInt16 = 0x1205 + +} + +private extension Scene { + + static let allOff: SceneNumber = 0x0001 + static let kitchenOff: SceneNumber = 0x0002 + static let kitchenOn: SceneNumber = 0x0003 + static let cozyGuestRoom: SceneNumber = 0x0004 + +} diff --git a/Example/Tests/FastSending.swift b/Example/Tests/FastSending.swift new file mode 100644 index 000000000..b37d3616c --- /dev/null +++ b/Example/Tests/FastSending.swift @@ -0,0 +1,519 @@ +/* +* Copyright (c) 2019, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + +import XCTest +import os.log +@testable import nRFMeshProvision + +private struct TestStorage: Storage { + + func load() -> Data? { + return #""" + { + "meshNetwork": + { + "id": "http://www.bluetooth.com/specifications/assigned-numbers/mesh-profile/cdb-schema.json#", + "scenes": [ + { + "scene": "0001", + "name": "Sunrise", + "addresses": [] + }, + { + "scene": "0002", + "name": "Party", + "addresses": [] + }, + { + "scene": "0003", + "name": "Evening", + "addresses": [] + } + ], + "version": "1.0.0", + "nodes": [ + { + "secureNetworkBeacon": false, + "features": { + "proxy": 2, + "friend": 2, + "relay": 2, + "lowPower": 2 + }, + "unicastAddress": "0001", + "elements": [ + { + "models": [ + { + "modelId": "0000", + "subscribe": [], + "bind": [] + }, + { + "modelId": "0001", + "subscribe": [], + "bind": [] + }, + { + "modelId": "0002", + "subscribe": [], + "bind": [] + }, + { + "modelId": "0003", + "subscribe": [], + "bind": [] + }, + { + "modelId": "1205", + "subscribe": [], + "bind": [] + }, + { + "modelId": "1203", + "subscribe": [ + "C000" + ], + "bind": [ + 1 + ] + }, + { + "modelId": "1204", + "subscribe": [ + "C000" + ], + "bind": [ + 1 + ] + }, + { + "modelId": "1004", + "subscribe": [], + "bind": [ + 0 + ] + }, + { + "modelId": "1005", + "subscribe": [], + "bind": [] + }, + { + "modelId": "1000", + "subscribe": [ + "C000" + ], + "bind": [ + 0 + ] + }, + { + "modelId": "1002", + "subscribe": [], + "bind": [] + }, + { + "publish": { + "index": 0, + "credentials": 0, + "ttl": 255, + "retransmit": { + "count": 0, + "interval": 50 + }, + "period": 0, + "address": "C000" + }, + "modelId": "1001", + "subscribe": [], + "bind": [ + 0 + ] + }, + { + "modelId": "1003", + "subscribe": [], + "bind": [] + }, + { + "modelId": "00590001", + "subscribe": [], + "bind": [] + } + ], + "name": "Primary Element", + "location": "0001", + "index": 0 + }, + { + "models": [ + { + "modelId": "1000", + "subscribe": [ + "C000" + ], + "bind": [ + 0 + ] + }, + { + "modelId": "1002", + "subscribe": [], + "bind": [ + 0 + ] + }, + { + "modelId": "1001", + "subscribe": [], + "bind": [] + }, + { + "modelId": "1003", + "subscribe": [], + "bind": [] + } + ], + "name": "Secondary Element", + "location": "0002", + "index": 1 + } + ], + "configComplete": true, + "netKeys": [ + { + "index": 0, + "updated": false + }, + { + "index": 1, + "updated": false + } + ], + "networkTransmit": { + "count": 1, + "interval": 10 + }, + "defaultTTL": 5, + "cid": "004C", + "appKeys": [ + { + "index": 0, + "updated": false + }, + { + "index": 1, + "updated": false + }, + { + "index": 2, + "updated": false + } + ], + "blacklisted": false, + "UUID": "B606812A9F97468DA47A5C9DB8FBD0D0", + "security": "high", + "crpl": "7FFF", + "name": "MAG iPhone 11", + "deviceKey": "A096C08136FE53F032D8C4D072610F1F" + } + ], + "meshUUID": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "netKeys": [ + { + "phase": 0, + "minSecurity": "high", + "key": "1980815AD267AFE9EAF904437612A6E4", + "timestamp": "2020-08-14T08:59:18Z", + "name": "Primary Network Key", + "index": 0 + }, + { + "phase": 0, + "minSecurity": "high", + "key": "1701C1D0F7589F0B3FFD8D4D2622AEA3", + "timestamp": "2020-08-18T12:54:56Z", + "name": "Secondary Network Key", + "index": 1 + } + ], + "timestamp": "2020-09-16T07:41:23Z", + "appKeys": [ + { + "key": "0B67D9F4898C3A50D0F6542D78C1ED5B", + "name": "Switches", + "boundNetKey": 0, + "index": 0 + }, + { + "key": "7EEA82F899395AC251666D432D0E6FC1", + "name": "Scenes", + "boundNetKey": 0, + "index": 1 + }, + { + "key": "DCE33B437A6474EB102A756E32B3C6A7", + "name": "Test App Key", + "boundNetKey": 0, + "index": 2 + } + ], + "meshName": "Test Network", + "provisioners": [ + { + "allocatedGroupRange": [ + { + "lowAddress": "C000", + "highAddress": "CC9A" + } + ], + "allocatedUnicastRange": [ + { + "lowAddress": "0001", + "highAddress": "199A" + } + ], + "UUID": "B606812A9F97468DA47A5C9DB8FBD0D0", + "provisionerName": "MAG iPhone 11", + "allocatedSceneRange": [ + { + "lastScene": "0004", + "firstScene": "0001" + }, + { + "lastScene": "00AA", + "firstScene": "0009" + } + ] + } + ], + "groups": [ + { + "name": "Kitchen", + "address": "C000", + "parentAddress": "0000" + }, + { + "name": "Virtual Group", + "address": "89F7DDCE164E48E68CFF4C9AA6254187", + "parentAddress": "0000" + } + ], + "$schema": "http://json-schema.org/draft-04/schema#" + } + } + """#.data(using: .utf8) + } + + func save(_ data: Data) -> Bool { + return true + } + +} + +class DummyTransmitter: Transmitter { + + func send(_ data: Data, ofType type: PduType) throws { + // Ignore + } + +} + +class FastSending: XCTestCase, MeshNetworkDelegate { + var manager: MeshNetworkManager! + + var statusSent: XCTestExpectation! + var statusReceived: XCTestExpectation! + var messageSent: XCTestExpectation! + var keyBound: XCTestExpectation! + + override func setUp() { + manager = MeshNetworkManager(using: TestStorage()) + do { + if !(try manager.load()) { + print("Loading JSON failed") + } + if let network = manager.meshNetwork, + let defaults = UserDefaults(suiteName: network.uuid.uuidString) { + defaults.removeSequenceNumber(for: Address(0001)) + defaults.removeSeqAuthValues(of: Address(0001)) + } + } catch { + print(error) + } + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testLoadingManager() { + XCTAssertNotNil(manager) + XCTAssertNotNil(manager.meshNetwork) + + let meshNetwork = manager.meshNetwork! + + XCTAssertNotNil(meshNetwork.localProvisioner) + XCTAssertNotNil(meshNetwork.localProvisioner!.meshNetwork) + XCTAssertNotNil(meshNetwork.localProvisioner!.unicastAddress) + XCTAssertEqual(meshNetwork.localProvisioner!.unicastAddress, 0x0001) + + XCTAssertEqual(meshNetwork.networkKeys.count, 2) + XCTAssertEqual(meshNetwork.applicationKeys.count, 3) + XCTAssertNotNil(meshNetwork.applicationKeys[0].meshNetwork) + XCTAssertNotNil(meshNetwork.applicationKeys[1].meshNetwork) + XCTAssertNotNil(meshNetwork.applicationKeys[2].meshNetwork) + XCTAssertEqual(meshNetwork.applicationKeys[0].boundNetworkKeyIndex, meshNetwork.networkKeys[0].index) + XCTAssertEqual(meshNetwork.applicationKeys[1].boundNetworkKeyIndex, meshNetwork.networkKeys[0].index) + XCTAssertEqual(meshNetwork.applicationKeys[0].boundNetworkKey, meshNetwork.networkKeys[0]) + XCTAssertEqual(meshNetwork.applicationKeys[1].boundNetworkKey, meshNetwork.networkKeys[0]) + + XCTAssertEqual(meshNetwork.nodes.count, 1) + XCTAssertNotNil(meshNetwork.nodes[0].meshNetwork) + } + + func testFastSending() throws { + XCTAssertNotNil(manager) + XCTAssertNotNil(manager.meshNetwork) + + let transmitter = DummyTransmitter() + + manager.delegate = self + manager.transmitter = transmitter + manager.localElements = [] + manager.logger = self + + let meshNetwork = manager.meshNetwork! + + let sceneClientModel = meshNetwork.localProvisioner?.node? + .primaryElement?.model(withSigModelId: .sceneClientModelId) + XCTAssertNotNil(sceneClientModel) + XCTAssertTrue(sceneClientModel?.isBluetoothSIGAssigned == true) + XCTAssertTrue(sceneClientModel?.boundApplicationKeys.isEmpty == true) + XCTAssertTrue(sceneClientModel?.isSceneClient == true) + + let firstKey = meshNetwork.applicationKeys.first + XCTAssertNotNil(firstKey) + let lastKey = meshNetwork.applicationKeys.last + XCTAssertNotNil(lastKey) + + messageSent = expectation(description: "Message sent") + messageSent.expectedFulfillmentCount = 2 + statusSent = expectation(description: "Status sent") + statusSent.expectedFulfillmentCount = 2 + statusReceived = expectation(description: "Status received") + statusReceived.expectedFulfillmentCount = 2 + keyBound = expectation(description: "Key bound") + keyBound.expectedFulfillmentCount = 2 + + let bindFirstAppKey = ConfigModelAppBind(applicationKey: firstKey!, to: sceneClientModel!) + XCTAssertNotNil(bindFirstAppKey) + XCTAssertNoThrow(try manager.sendToLocalNode(bindFirstAppKey!)) + + let bindLastAppKey = ConfigModelAppBind(applicationKey: lastKey!, to: sceneClientModel!) + XCTAssertNotNil(bindLastAppKey) + XCTAssertNoThrow(try manager.sendToLocalNode(bindLastAppKey!)) + + wait(for: [messageSent, keyBound, statusSent, statusReceived], timeout: 4) + } + + func meshNetworkManager(_ manager: MeshNetworkManager, + didReceiveMessage message: MeshMessage, + sentFrom source: Address, to destination: Address) { + if message is ConfigModelAppBind { + let sceneClientModel = manager.meshNetwork?.localProvisioner?.node? + .primaryElement?.model(withSigModelId: .sceneClientModelId) + XCTAssertNotNil(sceneClientModel) + XCTAssertTrue(sceneClientModel?.boundApplicationKeys.isEmpty == false) + + if sceneClientModel?.boundApplicationKeys.first?.index == 0 { + keyBound.fulfill() + } + } + if message is ConfigModelAppStatus { + statusReceived.fulfill() + } + } + + func meshNetworkManager(_ manager: MeshNetworkManager, didSendMessage message: MeshMessage, + from localElement: Element, to destination: Address) { + if message is ConfigModelAppBind { + messageSent.fulfill() + } + if message is ConfigModelAppStatus { + statusSent.fulfill() + } + } + + func meshNetworkManager(_ manager: MeshNetworkManager, failedToSendMessage message: MeshMessage, + from localElement: Element, to destination: Address, error: Error) { + XCTFail(error.localizedDescription) + } + +} + +// MARK: - Logger + +extension FastSending: LoggerDelegate { + + func log(message: String, ofCategory category: LogCategory, withLevel level: LogLevel) { + if #available(iOS 10.0, *) { + os_log("%{public}@", log: category.log, type: level.type, message) + } else { + NSLog("%@", message) + } + } + +} + +extension LogLevel { + + /// Mapping from mesh log levels to system log types. + var type: OSLogType { + switch self { + case .debug: return .debug + case .verbose: return .debug + case .info: return .info + case .application: return .default + case .warning: return .error + case .error: return .fault + } + } + +} + +extension LogCategory { + + var log: OSLog { + return OSLog(subsystem: Bundle.main.bundleIdentifier!, category: rawValue) + } + +} diff --git a/Example/Tests/Groups.swift b/Example/Tests/Groups.swift index 1c06f6f56..ee40b0147 100644 --- a/Example/Tests/Groups.swift +++ b/Example/Tests/Groups.swift @@ -44,8 +44,8 @@ class Groups: XCTestCase { XCTAssertEqual(meshNetwork.groups[0].name, "Group 1") XCTAssertNotNil(meshNetwork.groups[0].meshNetwork) XCTAssertNil(meshNetwork.groups[0].parent) - XCTAssertEqual(meshNetwork.groups[0]._parentAddress, "0000") - XCTAssertEqual(meshNetwork.groups[0]._address, "C000") + XCTAssertEqual(meshNetwork.groups[0].parentAddress, "0000") + XCTAssertEqual(meshNetwork.groups[0].groupAddress, "C000") XCTAssert(meshNetwork.groups[0].meshNetwork === meshNetwork) } diff --git a/Example/Tests/KeyRefreshProcedure.swift b/Example/Tests/KeyRefreshProcedure.swift new file mode 100644 index 000000000..88d4f2ab5 --- /dev/null +++ b/Example/Tests/KeyRefreshProcedure.swift @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2021, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + +import XCTest +@testable import nRFMeshProvision + +class KeyRefreshProcedure: XCTestCase { + let key = Data(hex: "00112233445566778899AABBCCDDEEFF")! + let newKey = Data(hex: "FFEEDDCCBBAA99887766554433221100")! + let ivIndex = IvIndex(index: 2, updateActive: false) + let seq = UInt32(123) + let ttl = UInt8(5) + + var networkKey: NetworkKey! + var controlMessage: ControlMessage! + + let pduEncodedUsingOldKey = Data(hex: "1E33F32EA453EAAB346A44BBC3E761667272FD")! + let pduEncodedUsingNewKey = Data(hex: "582B063460750280DF9244AA90E637A345E3C3")! + + override func setUpWithError() throws { + networkKey = try NetworkKey(name: "Test Key", index: 0, key: key) + + let filter = SetFilterType(.inclusionList) + controlMessage = ControlMessage(fromProxyConfigurationMessage: filter, sentFrom: 0x0001, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + } + + func testNetworkKey_NormalOperation() throws { + XCTAssertEqual(networkKey.phase, .normalOperation) + XCTAssertEqual(networkKey.index, 0) + XCTAssertEqual(networkKey.key, key) + // Validate key derivatives. + XCTAssertNotNil(networkKey.keys) + XCTAssertEqual(networkKey.keys.nid, 0x1E) + XCTAssertEqual(networkKey.keys.beaconKey, Data(hex: "44F5E91B3F2B9EE2D1C6023D2A57F1F3")) + XCTAssertEqual(networkKey.keys.encryptionKey, Data(hex: "EAA68445FFA4F38F96F2CCC5CC16119C")) + XCTAssertEqual(networkKey.keys.identityKey, Data(hex: "C7BBF25E84C88EFDE1AF24231A7B90E6")) + XCTAssertEqual(networkKey.keys.privacyKey, Data(hex: "33F2DDDEFD05965A2FF862DDCBF8298C")) + XCTAssertEqual(networkKey.networkId, Data(hex: "1FBD2C61A4B6E5A4")) + // Old key should be nil. + XCTAssertNil(networkKey.oldKey) + XCTAssertNil(networkKey.oldKeys) + XCTAssertNil(networkKey.oldNetworkId) + + // In Normal Operation the single key should be used. + XCTAssertEqual(networkKey.keys.encryptionKey, networkKey.transmitKeys.encryptionKey) + + // Test whether a message is using the right key. + let networkPdu = NetworkPdu(encode: controlMessage, ofType: .proxyConfiguration, + withSequence: seq, andTtl: ttl) + XCTAssertEqual(networkPdu.pdu, pduEncodedUsingOldKey) + + // Test whether the message can be decoded. + let decodedUsingOldKey = NetworkPdu(decode: pduEncodedUsingOldKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNotNil(decodedUsingOldKey) + let decodedUsingNewKey = NetworkPdu(decode: pduEncodedUsingNewKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNil(decodedUsingNewKey) + } + + func testNetworkKey_KeyDistribution() throws { + networkKey.key = newKey + + XCTAssertEqual(networkKey.phase, .keyDistribution) + XCTAssertEqual(networkKey.index, 0) + XCTAssertEqual(networkKey.key, newKey) + XCTAssertEqual(networkKey.oldKey, key) + // Validate key derivatives. + XCTAssertNotNil(networkKey.keys) + XCTAssertEqual(networkKey.keys.nid, 0x58) + XCTAssertEqual(networkKey.keys.beaconKey, Data(hex: "4D7D24E397FB4FB930D1695F6E91924F")) + XCTAssertEqual(networkKey.keys.encryptionKey, Data(hex: "BA418775923B2F19C72ED87A74874E46")) + XCTAssertEqual(networkKey.keys.identityKey, Data(hex: "0D51723D16362AC90CC85BDA18E793C8")) + XCTAssertEqual(networkKey.keys.privacyKey, Data(hex: "60567E5C26BB4F91C421A382AA48C38F")) + XCTAssertEqual(networkKey.networkId, Data(hex: "B06E4580BA6419CE")) + // The key should be stored as old key. + XCTAssertNotNil(networkKey.oldKeys) + XCTAssertEqual(networkKey.oldKeys!.nid, 0x1E) + XCTAssertEqual(networkKey.oldKeys!.beaconKey, Data(hex: "44F5E91B3F2B9EE2D1C6023D2A57F1F3")) + XCTAssertEqual(networkKey.oldKeys!.encryptionKey, Data(hex: "EAA68445FFA4F38F96F2CCC5CC16119C")) + XCTAssertEqual(networkKey.oldKeys!.identityKey, Data(hex: "C7BBF25E84C88EFDE1AF24231A7B90E6")) + XCTAssertEqual(networkKey.oldKeys!.privacyKey, Data(hex: "33F2DDDEFD05965A2FF862DDCBF8298C")) + XCTAssertEqual(networkKey.oldNetworkId, Data(hex: "1FBD2C61A4B6E5A4")) + + // In Key Distribution the old key should be used. + XCTAssertEqual(networkKey.oldKeys!.encryptionKey, networkKey.transmitKeys.encryptionKey) + + // Test whether a message is using the right key. + let networkPdu = NetworkPdu(encode: controlMessage, ofType: .proxyConfiguration, + withSequence: seq, andTtl: 5) + XCTAssertEqual(networkPdu.pdu, pduEncodedUsingOldKey) + + // Test whether the message can be decoded. + let decodedUsingOldKey = NetworkPdu(decode: pduEncodedUsingOldKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNotNil(decodedUsingOldKey) + let decodedUsingNewKey = NetworkPdu(decode: pduEncodedUsingNewKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNotNil(decodedUsingNewKey) + } + + func testNetworkKey_UsingNewKeys() throws { + networkKey.key = newKey + networkKey.phase = .usingNewKeys + + XCTAssertEqual(networkKey.phase, .usingNewKeys) + XCTAssertEqual(networkKey.index, 0) + XCTAssertEqual(networkKey.key, newKey) + XCTAssertEqual(networkKey.oldKey, key) + // Validate key derivatives. + XCTAssertNotNil(networkKey.keys) + XCTAssertEqual(networkKey.keys.nid, 0x58) + XCTAssertEqual(networkKey.keys.beaconKey, Data(hex: "4D7D24E397FB4FB930D1695F6E91924F")) + XCTAssertEqual(networkKey.keys.encryptionKey, Data(hex: "BA418775923B2F19C72ED87A74874E46")) + XCTAssertEqual(networkKey.keys.identityKey, Data(hex: "0D51723D16362AC90CC85BDA18E793C8")) + XCTAssertEqual(networkKey.keys.privacyKey, Data(hex: "60567E5C26BB4F91C421A382AA48C38F")) + XCTAssertEqual(networkKey.networkId, Data(hex: "B06E4580BA6419CE")) + // The key should be stored as old key. + XCTAssertNotNil(networkKey.oldKeys) + XCTAssertEqual(networkKey.oldKeys!.nid, 0x1E) + XCTAssertEqual(networkKey.oldKeys!.beaconKey, Data(hex: "44F5E91B3F2B9EE2D1C6023D2A57F1F3")) + XCTAssertEqual(networkKey.oldKeys!.encryptionKey, Data(hex: "EAA68445FFA4F38F96F2CCC5CC16119C")) + XCTAssertEqual(networkKey.oldKeys!.identityKey, Data(hex: "C7BBF25E84C88EFDE1AF24231A7B90E6")) + XCTAssertEqual(networkKey.oldKeys!.privacyKey, Data(hex: "33F2DDDEFD05965A2FF862DDCBF8298C")) + XCTAssertEqual(networkKey.oldNetworkId, Data(hex: "1FBD2C61A4B6E5A4")) + + // In Using New Keys phase the new key should be used. + XCTAssertEqual(networkKey.keys.encryptionKey, networkKey.transmitKeys.encryptionKey) + + // Test whether a message is using the right key. + let networkPdu = NetworkPdu(encode: controlMessage, ofType: .proxyConfiguration, + withSequence: seq, andTtl: ttl) + XCTAssertEqual(networkPdu.pdu, pduEncodedUsingNewKey) + + // Test whether the message can be decoded. + let decodedUsingOldKey = NetworkPdu(decode: pduEncodedUsingOldKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNotNil(decodedUsingOldKey) + let decodedUsingNewKey = NetworkPdu(decode: pduEncodedUsingNewKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNotNil(decodedUsingNewKey) + } + + func testNetworkKey_KeysRevoked() throws { + networkKey.key = newKey + networkKey.phase = .usingNewKeys + networkKey.oldKey = nil + + XCTAssertEqual(networkKey.phase, .normalOperation) + XCTAssertEqual(networkKey.index, 0) + XCTAssertEqual(networkKey.key, newKey) + // Validate key derivatives. + XCTAssertNotNil(networkKey.keys) + XCTAssertEqual(networkKey.keys.nid, 0x58) + XCTAssertEqual(networkKey.keys.beaconKey, Data(hex: "4D7D24E397FB4FB930D1695F6E91924F")) + XCTAssertEqual(networkKey.keys.encryptionKey, Data(hex: "BA418775923B2F19C72ED87A74874E46")) + XCTAssertEqual(networkKey.keys.identityKey, Data(hex: "0D51723D16362AC90CC85BDA18E793C8")) + XCTAssertEqual(networkKey.keys.privacyKey, Data(hex: "60567E5C26BB4F91C421A382AA48C38F")) + XCTAssertEqual(networkKey.networkId, Data(hex: "B06E4580BA6419CE")) + // Old keys should be revoked now. + XCTAssertNil(networkKey.oldKey) + XCTAssertNil(networkKey.oldKeys) + XCTAssertNil(networkKey.oldNetworkId) + + // In Normal Operation the single key should be used. + XCTAssertEqual(networkKey.keys.encryptionKey, networkKey.transmitKeys.encryptionKey) + + // Test whether a message is using the right key. + let networkPdu = NetworkPdu(encode: controlMessage, ofType: .proxyConfiguration, + withSequence: seq, andTtl: 5) + XCTAssertEqual(networkPdu.pdu, pduEncodedUsingNewKey) + + // Test whether the message can be decoded. + let decodedUsingOldKey = NetworkPdu(decode: pduEncodedUsingOldKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNil(decodedUsingOldKey) + let decodedUsingNewKey = NetworkPdu(decode: pduEncodedUsingNewKey, ofType: .proxyConfiguration, + usingNetworkKey: networkKey, andIvIndex: ivIndex) + XCTAssertNotNil(decodedUsingNewKey) + } + +} diff --git a/Example/Tests/ManagingProvisioners.swift b/Example/Tests/ManagingProvisioners.swift index 01ad2a99c..065c3a8fd 100644 --- a/Example/Tests/ManagingProvisioners.swift +++ b/Example/Tests/ManagingProvisioners.swift @@ -50,7 +50,7 @@ class ManagingProvisioners: XCTestCase { XCTAssertNoThrow(try meshNetwork.add(node: Node(name: "Node 4", unicastAddress: 65, elements: 5))) XCTAssertNoThrow(try meshNetwork.add(node: Node(name: "Node 5", unicastAddress: 73, elements: 5))) - let provisioner = Provisioner(name: "New provisioner", + let provisioner = Provisioner(name: "Main provisioner", allocatedUnicastRange: [ AddressRange(8...38), AddressRange(50...80) @@ -67,9 +67,26 @@ class ManagingProvisioners: XCTestCase { XCTAssertEqual(meshNetwork.nodes[6].unicastAddress, 11) XCTAssertEqual(meshNetwork.nodes[6].lastUnicastAddress, 11) - meshNetwork.remove(provisioner: provisioner) - XCTAssertEqual(meshNetwork.provisioners.count, 0) - XCTAssertEqual(meshNetwork.nodes.count, 6) + // This will throw, as it's not possible to remove the last Provisioner object. + XCTAssertThrowsError(try meshNetwork.remove(provisioner: provisioner)) + XCTAssertEqual(meshNetwork.provisioners.count, 1) + XCTAssertEqual(meshNetwork.nodes.count, 7) + + let otherProvisioner = Provisioner(name: "New provisioner", + allocatedUnicastRange: [ + AddressRange(100...200) + ], + allocatedGroupRange: [], + allocatedSceneRange: []) + XCTAssertNoThrow(try meshNetwork.add(provisioner: otherProvisioner)) + XCTAssertEqual(meshNetwork.provisioners.count, 2) + XCTAssertEqual(meshNetwork.nodes.count, 8) + XCTAssertEqual(meshNetwork.nodes[7].unicastAddress, 100) + XCTAssertEqual(meshNetwork.nodes[7].lastUnicastAddress, 100) + + XCTAssertNoThrow(try meshNetwork.remove(provisioner: otherProvisioner)) + XCTAssertEqual(meshNetwork.provisioners.count, 1) + XCTAssertEqual(meshNetwork.nodes.count, 7) } func testAddProvisioner_missingRanges() { diff --git a/Example/Tests/Pdus.swift b/Example/Tests/Pdus.swift index d259d3715..eb03fd144 100644 --- a/Example/Tests/Pdus.swift +++ b/Example/Tests/Pdus.swift @@ -300,12 +300,12 @@ class Pdus: XCTestCase { let meshNetwork = manager.meshNetwork! let networkKey = meshNetwork.networkKeys.first! let ivIndex = IvIndex(index: 0x12345678, updateActive: false) - let source = meshNetwork.localProvisioner?.node?.elements.first + let source = meshNetwork.localProvisioner?.node?.elements.first?.unicastAddress XCTAssertNotNil(source) let node = meshNetwork.nodes[1] let destination = MeshAddress(node.unicastAddress) let sequence: UInt32 = 0x3129AB - let keySet = DeviceKeySet(networkKey: networkKey, node: node) + let keySet = DeviceKeySet(networkKey: networkKey, node: node)! // Test begins here let message = ConfigAppKeyAdd(applicationKey: meshNetwork.applicationKeys[1]) @@ -318,14 +318,13 @@ class Pdus: XCTestCase { sentFrom: source!, to: destination, userInitiated: true) XCTAssertEqual(accessPdu.isSegmented, true) - XCTAssertEqual(accessPdu.localElement, source) XCTAssertEqual(accessPdu.destination, destination) XCTAssertEqual(accessPdu.opCode, ConfigAppKeyAdd.opCode) XCTAssertEqual(accessPdu.accessPdu, Data(hex: "0023614563964771734FBD76E3B40519D1D94A48")) let pdu = UpperTransportPdu(fromAccessPdu: accessPdu, usingKeySet: keySet, sequence: sequence, andIvIndex: ivIndex) - XCTAssertEqual(pdu.source, source?.unicastAddress) + XCTAssertEqual(pdu.source, source) XCTAssertEqual(pdu.destination, destination.address) XCTAssertEqual(pdu.sequence, sequence) XCTAssertNil(pdu.aid) @@ -336,7 +335,7 @@ class Pdus: XCTestCase { let segment0 = SegmentedAccessMessage(fromUpperTransportPdu: pdu, usingNetworkKey: networkKey, offset: 0) XCTAssertNil(segment0.aid) - XCTAssertEqual(segment0.source, source?.unicastAddress) + XCTAssertEqual(segment0.source, source) XCTAssertEqual(segment0.destination, destination.address) XCTAssertEqual(segment0.networkKey, networkKey) XCTAssertEqual(segment0.sequenceZero, 0x9AB) @@ -347,7 +346,7 @@ class Pdus: XCTestCase { let segment1 = SegmentedAccessMessage(fromUpperTransportPdu: pdu, usingNetworkKey: networkKey, offset: 1) - XCTAssertEqual(segment1.source, source?.unicastAddress) + XCTAssertEqual(segment1.source, source) XCTAssertEqual(segment1.destination, destination.address) XCTAssertEqual(segment1.networkKey, networkKey) XCTAssertEqual(segment1.sequenceZero, 0x9AB) @@ -359,7 +358,7 @@ class Pdus: XCTestCase { let networkPdu0 = NetworkPdu(encode: segment0, ofType: .networkPdu, withSequence: sequence, andTtl: 4) XCTAssertEqual(networkPdu0.sequence, sequence) - XCTAssertEqual(networkPdu0.source, source?.unicastAddress) + XCTAssertEqual(networkPdu0.source, source) XCTAssertEqual(networkPdu0.destination, destination.address) XCTAssertEqual(networkPdu0.ivi, 0) XCTAssertEqual(networkPdu0.nid, 0x68) @@ -369,7 +368,7 @@ class Pdus: XCTestCase { let networkPdu1 = NetworkPdu(encode: segment1, ofType: .networkPdu, withSequence: sequence + 1, andTtl: 4) XCTAssertEqual(networkPdu1.sequence, sequence + 1) - XCTAssertEqual(networkPdu1.source, source?.unicastAddress) + XCTAssertEqual(networkPdu1.source, source) XCTAssertEqual(networkPdu1.destination, destination.address) XCTAssertEqual(networkPdu1.ivi, 0) XCTAssertEqual(networkPdu1.nid, 0x68) @@ -383,11 +382,11 @@ class Pdus: XCTestCase { let networkKey = meshNetwork.networkKeys.first! let ivIndex = IvIndex(index: 0x12345678, updateActive: false) let node = meshNetwork.nodes[1] - let source = node.elements.first + let source = node.elements.first?.unicastAddress let destination = MeshAddress(meshNetwork.localProvisioner!.unicastAddress!) XCTAssertNotNil(destination) let sequence: UInt32 = 0x000006 - let keySet = DeviceKeySet(networkKey: networkKey, node: node) + let keySet = DeviceKeySet(networkKey: networkKey, node: node)! // Test begins here let message = ConfigAppKeyStatus(confirm: meshNetwork.applicationKeys[1]) @@ -400,14 +399,13 @@ class Pdus: XCTestCase { sentFrom: source!, to: destination, userInitiated: true) XCTAssertEqual(accessPdu.isSegmented, false) - XCTAssertEqual(accessPdu.localElement, source) XCTAssertEqual(accessPdu.destination, destination) XCTAssertEqual(accessPdu.opCode, ConfigAppKeyStatus.opCode) XCTAssertEqual(accessPdu.accessPdu, Data(hex: "800300236145")) let pdu = UpperTransportPdu(fromAccessPdu: accessPdu, usingKeySet: keySet, sequence: sequence, andIvIndex: ivIndex) - XCTAssertEqual(pdu.source, source?.unicastAddress) + XCTAssertEqual(pdu.source, source) XCTAssertEqual(pdu.destination, destination.address) XCTAssertEqual(pdu.sequence, sequence) XCTAssertNil(pdu.aid) @@ -418,7 +416,7 @@ class Pdus: XCTestCase { let segment = SegmentedAccessMessage(fromUpperTransportPdu: pdu, usingNetworkKey: networkKey, offset: 0) XCTAssertNil(segment.aid) - XCTAssertEqual(segment.source, source?.unicastAddress) + XCTAssertEqual(segment.source, source) XCTAssertEqual(segment.destination, destination.address) XCTAssertEqual(segment.networkKey, networkKey) XCTAssertEqual(segment.sequenceZero, 0x006) @@ -430,7 +428,7 @@ class Pdus: XCTestCase { let networkPdu = NetworkPdu(encode: segment, ofType: .networkPdu, withSequence: sequence, andTtl: 0) XCTAssertEqual(networkPdu.sequence, sequence) - XCTAssertEqual(networkPdu.source, source?.unicastAddress) + XCTAssertEqual(networkPdu.source, source) XCTAssertEqual(networkPdu.destination, destination.address) XCTAssertEqual(networkPdu.ivi, 0) XCTAssertEqual(networkPdu.nid, 0x68) @@ -511,7 +509,7 @@ class Pdus: XCTestCase { XCTAssertEqual(accessMessage.networkKey, networkKey) XCTAssertEqual(accessMessage.upperTransportPdu, Data(hex: "EEE888AA2169326D23F3AFDFCFDC18C52FDEF7720F8AF48F")) - let pdu = UpperTransportPdu(fromLowerTransportAccessMessage: accessMessage, usingKey: node.deviceKey) + let pdu = UpperTransportPdu(fromLowerTransportAccessMessage: accessMessage, usingKey: node.deviceKey!) XCTAssertNotNil(pdu) XCTAssertEqual(pdu?.source, source) XCTAssertEqual(pdu?.destination, destination) @@ -542,7 +540,7 @@ class Pdus: XCTestCase { let ivIndex = IvIndex(index: 0x12345677, updateActive: false) let node = meshNetwork.nodes[2] // Low Power Node let applicationKey = meshNetwork.applicationKeys[1] - let source = node.elements.first + let source = node.elements.first?.unicastAddress let virtualGroup = meshNetwork.groups.first XCTAssertNotNil(virtualGroup) let sequence: UInt32 = 0x07080B @@ -571,7 +569,7 @@ class Pdus: XCTestCase { let pdu = UpperTransportPdu(fromAccessPdu: accessPdu, usingKeySet: keySet, sequence: sequence, andIvIndex: ivIndex) - XCTAssertEqual(pdu.source, source?.unicastAddress) + XCTAssertEqual(pdu.source, source) XCTAssertEqual(pdu.destination, virtualGroup!.address.address) XCTAssertEqual(pdu.sequence, sequence) XCTAssertEqual(pdu.aid, 0x26) @@ -582,7 +580,7 @@ class Pdus: XCTestCase { let segment = AccessMessage(fromUnsegmentedUpperTransportPdu: pdu, usingNetworkKey: networkKey) XCTAssertEqual(pdu.aid, 0x26) - XCTAssertEqual(segment.source, source?.unicastAddress) + XCTAssertEqual(segment.source, source) XCTAssertEqual(segment.destination, virtualGroup?.address.address) XCTAssertEqual(segment.networkKey, networkKey) XCTAssertEqual(segment.upperTransportPdu, Data(hex: "3871B904D431526316CA48A0")) @@ -591,7 +589,7 @@ class Pdus: XCTestCase { let networkPdu = NetworkPdu(encode: segment, ofType: .networkPdu, withSequence: sequence, andTtl: 3) XCTAssertEqual(networkPdu.sequence, sequence) - XCTAssertEqual(networkPdu.source, source?.unicastAddress) + XCTAssertEqual(networkPdu.source, source) XCTAssertEqual(networkPdu.destination, virtualGroup?.address.address) XCTAssertEqual(networkPdu.ivi, 1) XCTAssertEqual(networkPdu.nid, 0x68) diff --git a/Example/Tests/SecureNetworkBeacons.swift b/Example/Tests/SecureNetworkBeacons.swift index 887883543..e9f698b64 100644 --- a/Example/Tests/SecureNetworkBeacons.swift +++ b/Example/Tests/SecureNetworkBeacons.swift @@ -79,7 +79,7 @@ class SecureNetworkBeacons: XCTestCase { withIvRecovery: false, testMode: false, andUnlimitedIvRecoveryAllowed: false) - // When previous IV Index was updated using IV Recovery, 96h requiremend + // When previous IV Index was updated using IV Recovery, 96h requirement // does not apply. Test should pass. let result1 = snb?.canOverwrite(ivIndex: ivIndex, updatedAt: almostNinetySixHoursAgo, withIvRecovery: true, testMode: false, diff --git a/Example/nRFMeshProvision.xcodeproj/project.pbxproj b/Example/nRFMeshProvision.xcodeproj/project.pbxproj old mode 100755 new mode 100644 index 7a8a6a353..a331ff09d --- a/Example/nRFMeshProvision.xcodeproj/project.pbxproj +++ b/Example/nRFMeshProvision.xcodeproj/project.pbxproj @@ -12,12 +12,20 @@ 30208A1C2175DBE900BC3789 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30208A192175DBD900BC3789 /* libssl.a */; }; 30208A1D2175DBE900BC3789 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30208A182175DBD900BC3789 /* libcrypto.a */; }; 3089BCA02099CA4900E30192 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3089BC9E2099CA4900E30192 /* LaunchScreen.storyboard */; }; + 520A7D6724F3E05A00BF370A /* RightActionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 520A7D6624F3E05A00BF370A /* RightActionCell.swift */; }; + 5211EAD5250777E100089FF2 /* SceneServerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5211EAD4250777E100089FF2 /* SceneServerDelegate.swift */; }; + 5211EADB25090DB000089FF2 /* SceneSetupServerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5211EADA25090DB000089FF2 /* SceneSetupServerDelegate.swift */; }; 52121526231528AC0059FB3D /* GenericOnOffGroupCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52121525231528AC0059FB3D /* GenericOnOffGroupCell.swift */; }; 521215292315290F0059FB3D /* GroupControlViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 521215282315290F0059FB3D /* GroupControlViewController.swift */; }; 5212152B23152A450059FB3D /* SectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5212152A23152A450059FB3D /* SectionView.swift */; }; 5212152D231545D40059FB3D /* ModelGroupCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5212152C231545D40059FB3D /* ModelGroupCell.swift */; }; 5212152F231554190059FB3D /* ProgressCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5212152E231554190059FB3D /* ProgressCollectionViewController.swift */; }; 521215312316C36B0059FB3D /* GenericLevelGroupCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 521215302316C36B0059FB3D /* GenericLevelGroupCell.swift */; }; + 5217D2E0250F522A004FDE79 /* GenericDefaultTransitionTimeServerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5217D2DF250F522A004FDE79 /* GenericDefaultTransitionTimeServerDelegate.swift */; }; + 5217D2E2250F7639004FDE79 /* GenericDefaultTransitionTimeClientDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5217D2E1250F7639004FDE79 /* GenericDefaultTransitionTimeClientDelegate.swift */; }; + 5217D2E5250F90D8004FDE79 /* GenericDefaultTransitionTimeViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5217D2E3250F90D8004FDE79 /* GenericDefaultTransitionTimeViewCell.swift */; }; + 5217D2E6250F90D8004FDE79 /* GenericDefaultTransitionTime.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5217D2E4250F90D8004FDE79 /* GenericDefaultTransitionTime.xib */; }; + 52248CDC251E21F000B10250 /* ExportViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52248CDB251E21F000B10250 /* ExportViewController.swift */; }; 522AFFDC22BBA34900521EDC /* ActionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522AFFDB22BBA34900521EDC /* ActionCell.swift */; }; 522AFFDE22BBBC6400521EDC /* NodeFeaturesCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522AFFDD22BBBC6400521EDC /* NodeFeaturesCell.swift */; }; 522AFFE022C2376C00521EDC /* ElementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522AFFDF22C2376C00521EDC /* ElementViewController.swift */; }; @@ -42,12 +50,14 @@ 523F778722CCDE250030EA6A /* SetPublicationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523F778622CCDE250030EA6A /* SetPublicationViewController.swift */; }; 523F778D22CCEA910030EA6A /* SetPublication.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 523F778B22CCEA900030EA6A /* SetPublication.storyboard */; }; 523F779722CE2BF60030EA6A /* SetPublicationDestinationsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523F779622CE2BF60030EA6A /* SetPublicationDestinationsViewController.swift */; }; + 5245737B2500E10800CF8500 /* ScenesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5245737A2500E10800CF8500 /* ScenesViewController.swift */; }; + 5245737D2500E12600CF8500 /* EditSceneViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5245737C2500E12600CF8500 /* EditSceneViewController.swift */; }; 5251498122E0E36600CBF1E3 /* AddGroupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5251498022E0E36600CBF1E3 /* AddGroupViewController.swift */; }; 52518B3122E0B18400A1FD1E /* GroupsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52518B3022E0B18400A1FD1E /* GroupsViewController.swift */; }; 52518B3322E0B43200A1FD1E /* GroupCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52518B3222E0B43200A1FD1E /* GroupCell.swift */; }; 525242E0225CBFEC0044CECB /* RangeObject+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525242DF225CBFEC0044CECB /* RangeObject+String.swift */; }; - 52547EF92317ECA70002AA7B /* BottomSheetSegue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52547EF82317ECA70002AA7B /* BottomSheetSegue.swift */; }; - 52547EFB231800F30002AA7B /* BottomSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52547EFA231800F30002AA7B /* BottomSheetViewController.swift */; }; + 52547EF92317ECA70002AA7B /* DialogSegue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52547EF82317ECA70002AA7B /* DialogSegue.swift */; }; + 52547EFB231800F30002AA7B /* GroupTargetModelsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52547EFA231800F30002AA7B /* GroupTargetModelsViewController.swift */; }; 52547F24232A3F470002AA7B /* RangeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52547F1D232A3F470002AA7B /* RangeCell.swift */; }; 52547F25232A3F470002AA7B /* EditProvisionerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52547F1E232A3F470002AA7B /* EditProvisionerViewController.swift */; }; 52547F26232A3F470002AA7B /* ProvisionersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52547F1F232A3F470002AA7B /* ProvisionersViewController.swift */; }; @@ -64,6 +74,8 @@ 5283528222806D7C0097B949 /* NetworkKeySelectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5283528122806D7C0097B949 /* NetworkKeySelectionViewController.swift */; }; 528352B42284139F0097B949 /* ProxyProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528352B32284139F0097B949 /* ProxyProtocol.swift */; }; 528352BC2285B6150097B949 /* OobSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528352BB2285B6150097B949 /* OobSelector.swift */; }; + 528445C924EEA765002168A1 /* HeartbeatSubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528445C824EEA765002168A1 /* HeartbeatSubscriptionCell.swift */; }; + 5288153D25125AB600484AF0 /* RootTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5288153C25125AB600484AF0 /* RootTabBarController.swift */; }; 5288C20423704EF300321ED3 /* ConnectionModeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5288C20323704EF300321ED3 /* ConnectionModeCell.swift */; }; 5288C2062370571100321ED3 /* ProxySelectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5288C2052370571100321ED3 /* ProxySelectorViewController.swift */; }; 5288C20823705C8D00321ED3 /* ProxyCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5288C20723705C8D00321ED3 /* ProxyCell.swift */; }; @@ -75,7 +87,13 @@ 5288C2162371BC1300321ED3 /* SimpleOnOffClientCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5288C2152371BC1300321ED3 /* SimpleOnOffClientCell.swift */; }; 528AB9F8228D847C000BE9DC /* NetworkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528AB9F7228D847C000BE9DC /* NetworkViewController.swift */; }; 528AB9FA228D856C000BE9DC /* ProvisioningViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528AB9F9228D856C000BE9DC /* ProvisioningViewDelegate.swift */; }; + 5292F8A1250137DC00EA0F2A /* NodeScenesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5292F8A0250137DC00EA0F2A /* NodeScenesViewController.swift */; }; + 5292F8A325021B8F00EA0F2A /* ModelIdentifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5292F8A225021B8F00EA0F2A /* ModelIdentifiers.swift */; }; + 5292F8A5250237A600EA0F2A /* NodeStoreSceneViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5292F8A4250237A600EA0F2A /* NodeStoreSceneViewController.swift */; }; + 5292F8A7250652BB00EA0F2A /* SceneServerGroupCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5292F8A6250652BB00EA0F2A /* SceneServerGroupCell.swift */; }; + 5292F8A9250654C600EA0F2A /* SceneSetupServerGroupCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5292F8A8250654C600EA0F2A /* SceneSetupServerGroupCell.swift */; }; 5294DADA22B109810041370E /* Pdus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5294DAD922B109810041370E /* Pdus.swift */; }; + 529522B6251B850700158AE0 /* Exporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529522B5251B850700158AE0 /* Exporting.swift */; }; 529B756D223FE7F1008F1CE7 /* RootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B756C223FE7F1008F1CE7 /* RootViewController.swift */; }; 529B7570223FF1AE008F1CE7 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B756F223FF1AE008F1CE7 /* SettingsViewController.swift */; }; 529B7572223FFC39008F1CE7 /* AppKeysViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B7571223FFC39008F1CE7 /* AppKeysViewController.swift */; }; @@ -89,11 +107,20 @@ 529B7643225222E8008F1CE7 /* Address+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B7642225222E8008F1CE7 /* Address+String.swift */; }; 529B764722522D37008F1CE7 /* UITableView+EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B764622522D37008F1CE7 /* UITableView+EmptyView.swift */; }; 529B76492252499E008F1CE7 /* UIColor+Nordic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B76482252499E008F1CE7 /* UIColor+Nordic.swift */; }; + 52A8EA8824E6946D004C14C7 /* HeartbeatPublicationCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A8EA8724E6946D004C14C7 /* HeartbeatPublicationCell.swift */; }; + 52A8EA8B24E6A371004C14C7 /* SetHeartbeatPublication.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52A8EA8924E6A371004C14C7 /* SetHeartbeatPublication.storyboard */; }; + 52A8EA8D24E6A470004C14C7 /* SetHeartbeatPublicationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A8EA8C24E6A470004C14C7 /* SetHeartbeatPublicationViewController.swift */; }; + 52A8EA8F24EBF099004C14C7 /* SetHeartbeatPublicationDestinationsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A8EA8E24EBF099004C14C7 /* SetHeartbeatPublicationDestinationsViewController.swift */; }; + 52A8EA9224ED35F4004C14C7 /* SetHeartbeatSubscription.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52A8EA9024ED35F4004C14C7 /* SetHeartbeatSubscription.storyboard */; }; + 52A8EA9424EE6D18004C14C7 /* HeartbeatSubscriptionPeriodCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A8EA9324EE6D18004C14C7 /* HeartbeatSubscriptionPeriodCell.swift */; }; + 52A8EA9624EE704A004C14C7 /* SetHeartbeatSubscriptionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A8EA9524EE704A004C14C7 /* SetHeartbeatSubscriptionViewController.swift */; }; 52A9C17D230EB9490036792A /* GenericOnOffViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A9C17B230EB9490036792A /* GenericOnOffViewCell.swift */; }; 52A9C17E230EB9490036792A /* GenericOnOff.xib in Resources */ = {isa = PBXBuildFile; fileRef = 52A9C17C230EB9490036792A /* GenericOnOff.xib */; }; 52A9C1C52313D7D80036792A /* GenericLevelViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A9C1C32313D7D80036792A /* GenericLevelViewCell.swift */; }; 52A9C1C62313D7D80036792A /* GenericLevel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 52A9C1C42313D7D80036792A /* GenericLevel.xib */; }; + 52B492DB25C8A32E0096E75D /* KeyRefreshProcedure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B492DA25C8A32E0096E75D /* KeyRefreshProcedure.swift */; }; 52B7F67D229829F200B0A42F /* Addresses.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B7F67C229829F200B0A42F /* Addresses.swift */; }; + 52B7FD6D2525B40300308673 /* NodeSceneRecallViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B7FD6C2525B40300308673 /* NodeSceneRecallViewController.swift */; }; 52BC6F4824507A5400EBEEA4 /* DisconnectCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52BC6F4724507A5400EBEEA4 /* DisconnectCell.swift */; }; 52BC6F4A2452C4FB00EBEEA4 /* SecureNetworkBeacons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52BC6F492452C4FB00EBEEA4 /* SecureNetworkBeacons.swift */; }; 52CD0A50232FA6CD00A9A181 /* ProxyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CD0A4F232FA6CD00A9A181 /* ProxyViewController.swift */; }; @@ -104,6 +131,8 @@ 52CD0A5E2330C04700A9A181 /* Network.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52CD0A5C2330C04700A9A181 /* Network.storyboard */; }; 52CD0A602330D71900A9A181 /* AddAddressViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CD0A5F2330D71900A9A181 /* AddAddressViewController.swift */; }; 52CD0A622330DCFF00A9A181 /* CustomAddressCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CD0A612330DCFF00A9A181 /* CustomAddressCell.swift */; }; + 52D2707E2511F850002F51F3 /* FastSending.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D2707D2511F850002F51F3 /* FastSending.swift */; }; + 52DA9D7224F6765C0051795B /* UInt16+Time.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52DA9D7124F6765C0051795B /* UInt16+Time.swift */; }; 52DF5D8A228DA78A00C297C1 /* ConfigurationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52DF5D89228DA78A00C297C1 /* ConfigurationViewController.swift */; }; 52DF5D8C228DAA0500C297C1 /* NodeViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52DF5D8B228DAA0500C297C1 /* NodeViewCell.swift */; }; 52DF5D8F229691BD00C297C1 /* NetworkConnection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52DF5D8E229691BD00C297C1 /* NetworkConnection.swift */; }; @@ -144,12 +173,20 @@ 30208A192175DBD900BC3789 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "Pods/OpenSSL-Universal/lib-ios/libssl.a"; sourceTree = ""; }; 3089BC9F2099CA4900E30192 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 4973E9CDA09CE2398E5C269A /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; + 520A7D6624F3E05A00BF370A /* RightActionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RightActionCell.swift; sourceTree = ""; }; + 5211EAD4250777E100089FF2 /* SceneServerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneServerDelegate.swift; sourceTree = ""; }; + 5211EADA25090DB000089FF2 /* SceneSetupServerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneSetupServerDelegate.swift; sourceTree = ""; }; 52121525231528AC0059FB3D /* GenericOnOffGroupCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericOnOffGroupCell.swift; sourceTree = ""; }; 521215282315290F0059FB3D /* GroupControlViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupControlViewController.swift; sourceTree = ""; }; 5212152A23152A450059FB3D /* SectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionView.swift; sourceTree = ""; }; 5212152C231545D40059FB3D /* ModelGroupCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelGroupCell.swift; sourceTree = ""; }; 5212152E231554190059FB3D /* ProgressCollectionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressCollectionViewController.swift; sourceTree = ""; }; 521215302316C36B0059FB3D /* GenericLevelGroupCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericLevelGroupCell.swift; sourceTree = ""; }; + 5217D2DF250F522A004FDE79 /* GenericDefaultTransitionTimeServerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeServerDelegate.swift; sourceTree = ""; }; + 5217D2E1250F7639004FDE79 /* GenericDefaultTransitionTimeClientDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeClientDelegate.swift; sourceTree = ""; }; + 5217D2E3250F90D8004FDE79 /* GenericDefaultTransitionTimeViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericDefaultTransitionTimeViewCell.swift; sourceTree = ""; }; + 5217D2E4250F90D8004FDE79 /* GenericDefaultTransitionTime.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GenericDefaultTransitionTime.xib; sourceTree = ""; }; + 52248CDB251E21F000B10250 /* ExportViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExportViewController.swift; sourceTree = ""; }; 522AFFDB22BBA34900521EDC /* ActionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionCell.swift; sourceTree = ""; }; 522AFFDD22BBBC6400521EDC /* NodeFeaturesCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeFeaturesCell.swift; sourceTree = ""; }; 522AFFDF22C2376C00521EDC /* ElementViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElementViewController.swift; sourceTree = ""; }; @@ -174,12 +211,14 @@ 523F778622CCDE250030EA6A /* SetPublicationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetPublicationViewController.swift; sourceTree = ""; }; 523F778C22CCEA900030EA6A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/SetPublication.storyboard; sourceTree = ""; }; 523F779622CE2BF60030EA6A /* SetPublicationDestinationsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetPublicationDestinationsViewController.swift; sourceTree = ""; }; + 5245737A2500E10800CF8500 /* ScenesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScenesViewController.swift; sourceTree = ""; }; + 5245737C2500E12600CF8500 /* EditSceneViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditSceneViewController.swift; sourceTree = ""; }; 5251498022E0E36600CBF1E3 /* AddGroupViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddGroupViewController.swift; sourceTree = ""; }; 52518B3022E0B18400A1FD1E /* GroupsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupsViewController.swift; sourceTree = ""; }; 52518B3222E0B43200A1FD1E /* GroupCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupCell.swift; sourceTree = ""; }; 525242DF225CBFEC0044CECB /* RangeObject+String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "RangeObject+String.swift"; path = "Utils/RangeObject+String.swift"; sourceTree = ""; }; - 52547EF82317ECA70002AA7B /* BottomSheetSegue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetSegue.swift; sourceTree = ""; }; - 52547EFA231800F30002AA7B /* BottomSheetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetViewController.swift; sourceTree = ""; }; + 52547EF82317ECA70002AA7B /* DialogSegue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DialogSegue.swift; sourceTree = ""; }; + 52547EFA231800F30002AA7B /* GroupTargetModelsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupTargetModelsViewController.swift; sourceTree = ""; }; 52547F1D232A3F470002AA7B /* RangeCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RangeCell.swift; sourceTree = ""; }; 52547F1E232A3F470002AA7B /* EditProvisionerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditProvisionerViewController.swift; sourceTree = ""; }; 52547F1F232A3F470002AA7B /* ProvisionersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProvisionersViewController.swift; sourceTree = ""; }; @@ -196,6 +235,8 @@ 5283528122806D7C0097B949 /* NetworkKeySelectionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkKeySelectionViewController.swift; sourceTree = ""; }; 528352B32284139F0097B949 /* ProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyProtocol.swift; sourceTree = ""; }; 528352BB2285B6150097B949 /* OobSelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OobSelector.swift; sourceTree = ""; }; + 528445C824EEA765002168A1 /* HeartbeatSubscriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeartbeatSubscriptionCell.swift; sourceTree = ""; }; + 5288153C25125AB600484AF0 /* RootTabBarController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootTabBarController.swift; sourceTree = ""; }; 5288C20323704EF300321ED3 /* ConnectionModeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionModeCell.swift; sourceTree = ""; }; 5288C2052370571100321ED3 /* ProxySelectorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxySelectorViewController.swift; sourceTree = ""; }; 5288C20723705C8D00321ED3 /* ProxyCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyCell.swift; sourceTree = ""; }; @@ -207,7 +248,13 @@ 5288C2152371BC1300321ED3 /* SimpleOnOffClientCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleOnOffClientCell.swift; sourceTree = ""; }; 528AB9F7228D847C000BE9DC /* NetworkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkViewController.swift; sourceTree = ""; }; 528AB9F9228D856C000BE9DC /* ProvisioningViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProvisioningViewDelegate.swift; sourceTree = ""; }; + 5292F8A0250137DC00EA0F2A /* NodeScenesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeScenesViewController.swift; sourceTree = ""; }; + 5292F8A225021B8F00EA0F2A /* ModelIdentifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ModelIdentifiers.swift; path = Utils/ModelIdentifiers.swift; sourceTree = ""; }; + 5292F8A4250237A600EA0F2A /* NodeStoreSceneViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeStoreSceneViewController.swift; sourceTree = ""; }; + 5292F8A6250652BB00EA0F2A /* SceneServerGroupCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneServerGroupCell.swift; sourceTree = ""; }; + 5292F8A8250654C600EA0F2A /* SceneSetupServerGroupCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneSetupServerGroupCell.swift; sourceTree = ""; }; 5294DAD922B109810041370E /* Pdus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pdus.swift; sourceTree = ""; }; + 529522B5251B850700158AE0 /* Exporting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Exporting.swift; sourceTree = ""; }; 529B756C223FE7F1008F1CE7 /* RootViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootViewController.swift; sourceTree = ""; }; 529B756F223FF1AE008F1CE7 /* SettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = ""; }; 529B7571223FFC39008F1CE7 /* AppKeysViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppKeysViewController.swift; sourceTree = ""; }; @@ -223,11 +270,20 @@ 529B7642225222E8008F1CE7 /* Address+String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Address+String.swift"; path = "Utils/Address+String.swift"; sourceTree = ""; }; 529B764622522D37008F1CE7 /* UITableView+EmptyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "UITableView+EmptyView.swift"; path = "Utils/UITableView+EmptyView.swift"; sourceTree = ""; }; 529B76482252499E008F1CE7 /* UIColor+Nordic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "UIColor+Nordic.swift"; path = "Utils/UIColor+Nordic.swift"; sourceTree = ""; }; + 52A8EA8724E6946D004C14C7 /* HeartbeatPublicationCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeartbeatPublicationCell.swift; sourceTree = ""; }; + 52A8EA8A24E6A371004C14C7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/SetHeartbeatPublication.storyboard; sourceTree = ""; }; + 52A8EA8C24E6A470004C14C7 /* SetHeartbeatPublicationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetHeartbeatPublicationViewController.swift; sourceTree = ""; }; + 52A8EA8E24EBF099004C14C7 /* SetHeartbeatPublicationDestinationsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetHeartbeatPublicationDestinationsViewController.swift; sourceTree = ""; }; + 52A8EA9124ED35F4004C14C7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/SetHeartbeatSubscription.storyboard; sourceTree = ""; }; + 52A8EA9324EE6D18004C14C7 /* HeartbeatSubscriptionPeriodCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeartbeatSubscriptionPeriodCell.swift; sourceTree = ""; }; + 52A8EA9524EE704A004C14C7 /* SetHeartbeatSubscriptionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetHeartbeatSubscriptionViewController.swift; sourceTree = ""; }; 52A9C17B230EB9490036792A /* GenericOnOffViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericOnOffViewCell.swift; sourceTree = ""; }; 52A9C17C230EB9490036792A /* GenericOnOff.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GenericOnOff.xib; sourceTree = ""; }; 52A9C1C32313D7D80036792A /* GenericLevelViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericLevelViewCell.swift; sourceTree = ""; }; 52A9C1C42313D7D80036792A /* GenericLevel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GenericLevel.xib; sourceTree = ""; }; + 52B492DA25C8A32E0096E75D /* KeyRefreshProcedure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyRefreshProcedure.swift; sourceTree = ""; }; 52B7F67C229829F200B0A42F /* Addresses.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Addresses.swift; sourceTree = ""; }; + 52B7FD6C2525B40300308673 /* NodeSceneRecallViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeSceneRecallViewController.swift; sourceTree = ""; }; 52BC6F4724507A5400EBEEA4 /* DisconnectCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisconnectCell.swift; sourceTree = ""; }; 52BC6F492452C4FB00EBEEA4 /* SecureNetworkBeacons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureNetworkBeacons.swift; sourceTree = ""; }; 52CD0A4F232FA6CD00A9A181 /* ProxyViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyViewController.swift; sourceTree = ""; }; @@ -238,6 +294,8 @@ 52CD0A5D2330C04700A9A181 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Network.storyboard; sourceTree = ""; }; 52CD0A5F2330D71900A9A181 /* AddAddressViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAddressViewController.swift; sourceTree = ""; }; 52CD0A612330DCFF00A9A181 /* CustomAddressCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomAddressCell.swift; sourceTree = ""; }; + 52D2707D2511F850002F51F3 /* FastSending.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FastSending.swift; sourceTree = ""; }; + 52DA9D7124F6765C0051795B /* UInt16+Time.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "UInt16+Time.swift"; path = "Utils/UInt16+Time.swift"; sourceTree = ""; }; 52DF5D89228DA78A00C297C1 /* ConfigurationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationViewController.swift; sourceTree = ""; }; 52DF5D8B228DAA0500C297C1 /* NodeViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeViewCell.swift; sourceTree = ""; }; 52DF5D8E229691BD00C297C1 /* NetworkConnection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkConnection.swift; sourceTree = ""; }; @@ -314,6 +372,8 @@ 5212152C231545D40059FB3D /* ModelGroupCell.swift */, 52121525231528AC0059FB3D /* GenericOnOffGroupCell.swift */, 521215302316C36B0059FB3D /* GenericLevelGroupCell.swift */, + 5292F8A6250652BB00EA0F2A /* SceneServerGroupCell.swift */, + 5292F8A8250654C600EA0F2A /* SceneSetupServerGroupCell.swift */, ); path = Model; sourceTree = ""; @@ -327,13 +387,24 @@ path = Cells; sourceTree = ""; }; - 522AFFE122C23B3900521EDC /* Cells */ = { + 52248CDF2523369700B10250 /* Common */ = { isa = PBXGroup; children = ( - 522AFFDD22BBBC6400521EDC /* NodeFeaturesCell.swift */, 522AFFDB22BBA34900521EDC /* ActionCell.swift */, 523F776322C4EDD90030EA6A /* SwitchCell.swift */, + 520A7D6624F3E05A00BF370A /* RightActionCell.swift */, + ); + path = Common; + sourceTree = ""; + }; + 522AFFE122C23B3900521EDC /* Cells */ = { + isa = PBXGroup; + children = ( + 522AFFDD22BBBC6400521EDC /* NodeFeaturesCell.swift */, 5231401522F460380074325A /* PublicationCell.swift */, + 52A8EA8724E6946D004C14C7 /* HeartbeatPublicationCell.swift */, + 528445C824EEA765002168A1 /* HeartbeatSubscriptionCell.swift */, + 52A8EA9324EE6D18004C14C7 /* HeartbeatSubscriptionPeriodCell.swift */, ); path = Cells; sourceTree = ""; @@ -347,6 +418,8 @@ 52E54CD92343878B00478F05 /* Control.storyboard */, 52CD0A5C2330C04700A9A181 /* Network.storyboard */, 523F778B22CCEA900030EA6A /* SetPublication.storyboard */, + 52A8EA8924E6A371004C14C7 /* SetHeartbeatPublication.storyboard */, + 52A8EA9024ED35F4004C14C7 /* SetHeartbeatSubscription.storyboard */, 52CD0A562330BDE500A9A181 /* Groups.storyboard */, 52CD0A592330BF4800A9A181 /* Proxy.storyboard */, 5283524E227887970097B949 /* Settings.storyboard */, @@ -360,6 +433,7 @@ 5231403B22FDA8670074325A /* ConfigurationServer.xib */, 52A9C17C230EB9490036792A /* GenericOnOff.xib */, 52A9C1C42313D7D80036792A /* GenericLevel.xib */, + 5217D2E4250F90D8004FDE79 /* GenericDefaultTransitionTime.xib */, 5231404C230AC4680074325A /* VendorModel.xib */, ); path = Model; @@ -372,6 +446,7 @@ 5231403E2301761C0074325A /* ConfigurationServerViewCell.swift */, 52A9C17B230EB9490036792A /* GenericOnOffViewCell.swift */, 52A9C1C32313D7D80036792A /* GenericLevelViewCell.swift */, + 5217D2E3250F90D8004FDE79 /* GenericDefaultTransitionTimeViewCell.swift */, 5231404B230AC4680074325A /* VendorModelViewCell.swift */, ); path = Model; @@ -385,8 +460,8 @@ 52518B3022E0B18400A1FD1E /* GroupsViewController.swift */, 5251498022E0E36600CBF1E3 /* AddGroupViewController.swift */, 521215282315290F0059FB3D /* GroupControlViewController.swift */, - 52547EF82317ECA70002AA7B /* BottomSheetSegue.swift */, - 52547EFA231800F30002AA7B /* BottomSheetViewController.swift */, + 52547EF82317ECA70002AA7B /* DialogSegue.swift */, + 52547EFA231800F30002AA7B /* GroupTargetModelsViewController.swift */, ); path = Groups; sourceTree = ""; @@ -433,9 +508,11 @@ 52835253227AEC8C0097B949 /* View Controllers */ = { isa = PBXGroup; children = ( + 5288153C25125AB600484AF0 /* RootTabBarController.swift */, 529B756C223FE7F1008F1CE7 /* RootViewController.swift */, 523F776B22C6324A0030EA6A /* ProgressViewController.swift */, 5212152E231554190059FB3D /* ProgressCollectionViewController.swift */, + 52248CDF2523369700B10250 /* Common */, 526021F4234365E100E88F06 /* Control */, 52835256227AED670097B949 /* Network */, 52518B2F22E0B14500A1FD1E /* Groups */, @@ -453,6 +530,9 @@ 529B759B2243BA10008F1CE7 /* NetworkKeysViewController.swift */, 529B7571223FFC39008F1CE7 /* AppKeysViewController.swift */, 5283524722733BCF0097B949 /* EditKeyViewController.swift */, + 5245737A2500E10800CF8500 /* ScenesViewController.swift */, + 5245737C2500E12600CF8500 /* EditSceneViewController.swift */, + 52248CDB251E21F000B10250 /* ExportViewController.swift */, ); path = Settings; sourceTree = ""; @@ -511,6 +591,8 @@ 529B764622522D37008F1CE7 /* UITableView+EmptyView.swift */, 529B76482252499E008F1CE7 /* UIColor+Nordic.swift */, 525242DF225CBFEC0044CECB /* RangeObject+String.swift */, + 52DA9D7124F6765C0051795B /* UInt16+Time.swift */, + 5292F8A225021B8F00EA0F2A /* ModelIdentifiers.swift */, ); name = Utils; sourceTree = ""; @@ -550,11 +632,17 @@ 523F776922C621F50030EA6A /* NodeAddNetworkKeyViewController.swift */, 523F776722C615CE0030EA6A /* NodeAppKeysViewController.swift */, 523F776D22C63EAD0030EA6A /* NodeAddAppKeyViewController.swift */, + 5292F8A0250137DC00EA0F2A /* NodeScenesViewController.swift */, + 52B7FD6C2525B40300308673 /* NodeSceneRecallViewController.swift */, + 5292F8A4250237A600EA0F2A /* NodeStoreSceneViewController.swift */, 523F777822CB57190030EA6A /* ModelViewController.swift */, 523F777A22CB86A00030EA6A /* ModelBindAppKeyViewController.swift */, 523F778622CCDE250030EA6A /* SetPublicationViewController.swift */, 523F779622CE2BF60030EA6A /* SetPublicationDestinationsViewController.swift */, 52313FED22EAFB090074325A /* SubscribeViewController.swift */, + 52A8EA8C24E6A470004C14C7 /* SetHeartbeatPublicationViewController.swift */, + 52A8EA8E24EBF099004C14C7 /* SetHeartbeatPublicationDestinationsViewController.swift */, + 52A8EA9524EE704A004C14C7 /* SetHeartbeatSubscriptionViewController.swift */, ); path = Configuration; sourceTree = ""; @@ -564,6 +652,10 @@ children = ( 5288C20B2371A8E000321ED3 /* Simple OnOff */, 52DF5D8E229691BD00C297C1 /* NetworkConnection.swift */, + 5211EAD4250777E100089FF2 /* SceneServerDelegate.swift */, + 5211EADA25090DB000089FF2 /* SceneSetupServerDelegate.swift */, + 5217D2E1250F7639004FDE79 /* GenericDefaultTransitionTimeClientDelegate.swift */, + 5217D2DF250F522A004FDE79 /* GenericDefaultTransitionTimeServerDelegate.swift */, 52E54CDC23438B2E00478F05 /* GenericOnOffClientDelegate.swift */, 52E54CDE23438D2600478F05 /* GenericOnOffServerDelegate.swift */, 52E54CE02344974B00478F05 /* GenericLevelClientDelegate.swift */, @@ -644,12 +736,15 @@ children = ( 607FACE91AFB9204008FA782 /* Supporting Files */, 5231400122EEF7940074325A /* CreatingMeshNetwork.swift */, + 529522B5251B850700158AE0 /* Exporting.swift */, + 52D2707D2511F850002F51F3 /* FastSending.swift */, 529B75AA2248E276008F1CE7 /* SceneRanges.swift */, 529B75AC22491770008F1CE7 /* AddressRanges.swift */, 529B7628224CE481008F1CE7 /* AssigningUnicastAddress.swift */, 52313FFF22EEE1770074325A /* AssigningGroupAddresses.swift */, 529B764022521075008F1CE7 /* ManagingProvisioners.swift */, 528352B32284139F0097B949 /* ProxyProtocol.swift */, + 52B492DA25C8A32E0096E75D /* KeyRefreshProcedure.swift */, 52B7F67C229829F200B0A42F /* Addresses.swift */, 52DF5D92229C009200C297C1 /* NetworkPdus.swift */, 5294DAD922B109810041370E /* Pdus.swift */, @@ -739,7 +834,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1240; ORGANIZATIONNAME = CocoaPods; TargetAttributes = { 607FACCF1AFB9204008FA782 = { @@ -790,6 +885,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5217D2E6250F90D8004FDE79 /* GenericDefaultTransitionTime.xib in Resources */, + 52A8EA9224ED35F4004C14C7 /* SetHeartbeatSubscription.storyboard in Resources */, 52CD0A582330BDE600A9A181 /* Groups.storyboard in Resources */, 523F778D22CCEA910030EA6A /* SetPublication.storyboard in Resources */, 52A9C17E230EB9490036792A /* GenericOnOff.xib in Resources */, @@ -801,6 +898,7 @@ 52A9C1C62313D7D80036792A /* GenericLevel.xib in Resources */, 5231404E230AC4680074325A /* VendorModel.xib in Resources */, 5231403C22FDA8670074325A /* ConfigurationServer.xib in Resources */, + 52A8EA8B24E6A371004C14C7 /* SetHeartbeatPublication.storyboard in Resources */, 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, 52835250227887970097B949 /* Settings.storyboard in Resources */, ); @@ -873,22 +971,26 @@ buildActionMask = 2147483647; files = ( 529B764722522D37008F1CE7 /* UITableView+EmptyView.swift in Sources */, + 5288153D25125AB600484AF0 /* RootTabBarController.swift in Sources */, 52CD0A55232FC11700A9A181 /* AddressCell.swift in Sources */, 52313FEE22EAFB090074325A /* SubscribeViewController.swift in Sources */, 5212152B23152A450059FB3D /* SectionView.swift in Sources */, 5212152F231554190059FB3D /* ProgressCollectionViewController.swift in Sources */, 523F776A22C621F50030EA6A /* NodeAddNetworkKeyViewController.swift in Sources */, 52E54CE12344974B00478F05 /* GenericLevelClientDelegate.swift in Sources */, + 5292F8A9250654C600EA0F2A /* SceneSetupServerGroupCell.swift in Sources */, 5283528022806C280097B949 /* ProvisioningViewController.swift in Sources */, 52CD0A602330D71900A9A181 /* AddAddressViewController.swift in Sources */, 52835269227B2BAE0097B949 /* ScannerTableViewController.swift in Sources */, 528352BC2285B6150097B949 /* OobSelector.swift in Sources */, 52E54CDF23438D2600478F05 /* GenericOnOffServerDelegate.swift in Sources */, + 5217D2E2250F7639004FDE79 /* GenericDefaultTransitionTimeClientDelegate.swift in Sources */, 5288C20823705C8D00321ED3 /* ProxyCell.swift in Sources */, 52BC6F4824507A5400EBEEA4 /* DisconnectCell.swift in Sources */, 523F777B22CB86A00030EA6A /* ModelBindAppKeyViewController.swift in Sources */, 52DF5D8F229691BD00C297C1 /* NetworkConnection.swift in Sources */, 52547F27232A3F470002AA7B /* EditRangesViewController.swift in Sources */, + 52B7FD6D2525B40300308673 /* NodeSceneRecallViewController.swift in Sources */, 521215312316C36B0059FB3D /* GenericLevelGroupCell.swift in Sources */, 52E54CDD23438B2E00478F05 /* GenericOnOffClientDelegate.swift in Sources */, 52DF5D8C228DAA0500C297C1 /* NodeViewCell.swift in Sources */, @@ -899,24 +1001,29 @@ 52547F28232A3F470002AA7B /* RangeView.swift in Sources */, 52314041230192C50074325A /* ModelViewCell.swift in Sources */, 5283524822733BCF0097B949 /* EditKeyViewController.swift in Sources */, + 52DA9D7224F6765C0051795B /* UInt16+Time.swift in Sources */, 5231401622F460380074325A /* PublicationCell.swift in Sources */, 52E54CE32344978300478F05 /* GenericLevelServerDelegate.swift in Sources */, 528AB9F8228D847C000BE9DC /* NetworkViewController.swift in Sources */, 523F778722CCDE250030EA6A /* SetPublicationViewController.swift in Sources */, 52CD0A622330DCFF00A9A181 /* CustomAddressCell.swift in Sources */, + 52A8EA8F24EBF099004C14C7 /* SetHeartbeatPublicationDestinationsViewController.swift in Sources */, 5288C2122371B16500321ED3 /* SimpleOnOffSetUnacknowledged.swift in Sources */, 52547F29232A3F470002AA7B /* FabView.swift in Sources */, 52A9C17D230EB9490036792A /* GenericOnOffViewCell.swift in Sources */, + 5292F8A5250237A600EA0F2A /* NodeStoreSceneViewController.swift in Sources */, 52E54CD62343875400478F05 /* GenericLevelClientCell.swift in Sources */, 529B76492252499E008F1CE7 /* UIColor+Nordic.swift in Sources */, - 52547EF92317ECA70002AA7B /* BottomSheetSegue.swift in Sources */, + 52547EF92317ECA70002AA7B /* DialogSegue.swift in Sources */, 525242E0225CBFEC0044CECB /* RangeObject+String.swift in Sources */, 529B7575224107A5008F1CE7 /* AppInfo.swift in Sources */, 52121526231528AC0059FB3D /* GenericOnOffGroupCell.swift in Sources */, 523F776622C609D90030EA6A /* NodeNetworkKeysViewController.swift in Sources */, + 5211EAD5250777E100089FF2 /* SceneServerDelegate.swift in Sources */, 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, 523F776C22C6324A0030EA6A /* ProgressViewController.swift in Sources */, 52547F25232A3F470002AA7B /* EditProvisionerViewController.swift in Sources */, + 5245737D2500E12600CF8500 /* EditSceneViewController.swift in Sources */, 5288C2102371B0F700321ED3 /* SimpleOnOffGet.swift in Sources */, 529B756D223FE7F1008F1CE7 /* RootViewController.swift in Sources */, 52CD0A53232FA79300A9A181 /* FilterTypeCell.swift in Sources */, @@ -927,37 +1034,51 @@ 523F779722CE2BF60030EA6A /* SetPublicationDestinationsViewController.swift in Sources */, 52E54CD023437D3D00478F05 /* ModelControlCell.swift in Sources */, 523F776422C4EDD90030EA6A /* SwitchCell.swift in Sources */, + 5292F8A7250652BB00EA0F2A /* SceneServerGroupCell.swift in Sources */, 522AFFDC22BBA34900521EDC /* ActionCell.swift in Sources */, 52E54CE72345EDA700478F05 /* GenericState.swift in Sources */, 52DF5D8A228DA78A00C297C1 /* ConfigurationViewController.swift in Sources */, 521215292315290F0059FB3D /* GroupControlViewController.swift in Sources */, + 52A8EA8824E6946D004C14C7 /* HeartbeatPublicationCell.swift in Sources */, 52F6AD7622BA612900F0D7DF /* UIViewController+Toast.swift in Sources */, + 5217D2E5250F90D8004FDE79 /* GenericDefaultTransitionTimeViewCell.swift in Sources */, + 528445C924EEA765002168A1 /* HeartbeatSubscriptionCell.swift in Sources */, 5231403F2301761C0074325A /* ConfigurationServerViewCell.swift in Sources */, - 52547EFB231800F30002AA7B /* BottomSheetViewController.swift in Sources */, + 52A8EA9624EE704A004C14C7 /* SetHeartbeatSubscriptionViewController.swift in Sources */, + 52547EFB231800F30002AA7B /* GroupTargetModelsViewController.swift in Sources */, + 5217D2E0250F522A004FDE79 /* GenericDefaultTransitionTimeServerDelegate.swift in Sources */, 52E54CD42343874000478F05 /* GenericOnOffServerCell.swift in Sources */, 52547F24232A3F470002AA7B /* RangeCell.swift in Sources */, 5231404D230AC4680074325A /* VendorModelViewCell.swift in Sources */, 529B758622428A45008F1CE7 /* UIViewController+Alert.swift in Sources */, 529B7572223FFC39008F1CE7 /* AppKeysViewController.swift in Sources */, 52E54CD22343871E00478F05 /* GenericOnOffClientCell.swift in Sources */, + 520A7D6724F3E05A00BF370A /* RightActionCell.swift in Sources */, 52E54CCD23437B9700478F05 /* ElementSectionView.swift in Sources */, 5288C2142371B32200321ED3 /* SimpleOnOffStatus.swift in Sources */, 5251498122E0E36600CBF1E3 /* AddGroupViewController.swift in Sources */, + 5211EADB25090DB000089FF2 /* SceneSetupServerDelegate.swift in Sources */, + 5292F8A325021B8F00EA0F2A /* ModelIdentifiers.swift in Sources */, 52835258227AEDA30097B949 /* DeviceCell.swift in Sources */, 52E54CD82343876000478F05 /* GenericLevelServerCell.swift in Sources */, 5212152D231545D40059FB3D /* ModelGroupCell.swift in Sources */, + 52A8EA8D24E6A470004C14C7 /* SetHeartbeatPublicationViewController.swift in Sources */, 52547F26232A3F470002AA7B /* ProvisionersViewController.swift in Sources */, 52518B3322E0B43200A1FD1E /* GroupCell.swift in Sources */, 529B7570223FF1AE008F1CE7 /* SettingsViewController.swift in Sources */, + 5292F8A1250137DC00EA0F2A /* NodeScenesViewController.swift in Sources */, 526021F62343660200E88F06 /* ControlViewCell.swift in Sources */, + 5245737B2500E10800CF8500 /* ScenesViewController.swift in Sources */, 52A9C1C52313D7D80036792A /* GenericLevelViewCell.swift in Sources */, 5288C20A2371A89900321ED3 /* SimpleOnOffClientDelegate.swift in Sources */, 529B759C2243BA10008F1CE7 /* NetworkKeysViewController.swift in Sources */, 52518B3122E0B18400A1FD1E /* GroupsViewController.swift in Sources */, + 52A8EA9424EE6D18004C14C7 /* HeartbeatSubscriptionPeriodCell.swift in Sources */, 5283528222806D7C0097B949 /* NetworkKeySelectionViewController.swift in Sources */, 522AFFDE22BBBC6400521EDC /* NodeFeaturesCell.swift in Sources */, 523F776E22C63EAD0030EA6A /* NodeAddAppKeyViewController.swift in Sources */, 529B7643225222E8008F1CE7 /* Address+String.swift in Sources */, + 52248CDC251E21F000B10250 /* ExportViewController.swift in Sources */, 5288C2062370571100321ED3 /* ProxySelectorViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -966,15 +1087,18 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 52D2707E2511F850002F51F3 /* FastSending.swift in Sources */, 52B7F67D229829F200B0A42F /* Addresses.swift in Sources */, 5294DADA22B109810041370E /* Pdus.swift in Sources */, 5231400022EEE1770074325A /* AssigningGroupAddresses.swift in Sources */, 52BC6F4A2452C4FB00EBEEA4 /* SecureNetworkBeacons.swift in Sources */, 52568D4B22DDFAC700B7B236 /* Groups.swift in Sources */, + 52B492DB25C8A32E0096E75D /* KeyRefreshProcedure.swift in Sources */, 52F6AD6C22B78F3000F0D7DF /* CompositionData.swift in Sources */, 523F777022C64FD20030EA6A /* ConfigMessages.swift in Sources */, 52DF5D93229C009200C297C1 /* NetworkPdus.swift in Sources */, 529B7629224CE481008F1CE7 /* AssigningUnicastAddress.swift in Sources */, + 529522B6251B850700158AE0 /* Exporting.swift in Sources */, 528352B42284139F0097B949 /* ProxyProtocol.swift in Sources */, 5231400222EEF7940074325A /* CreatingMeshNetwork.swift in Sources */, 529B75AD22491770008F1CE7 /* AddressRanges.swift in Sources */, @@ -1018,6 +1142,22 @@ name = Settings.storyboard; sourceTree = ""; }; + 52A8EA8924E6A371004C14C7 /* SetHeartbeatPublication.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 52A8EA8A24E6A371004C14C7 /* Base */, + ); + name = SetHeartbeatPublication.storyboard; + sourceTree = ""; + }; + 52A8EA9024ED35F4004C14C7 /* SetHeartbeatSubscription.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 52A8EA9124ED35F4004C14C7 /* Base */, + ); + name = SetHeartbeatSubscription.storyboard; + sourceTree = ""; + }; 52CD0A562330BDE500A9A181 /* Groups.storyboard */ = { isa = PBXVariantGroup; children = ( @@ -1084,6 +1224,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1143,6 +1284,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1179,7 +1321,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; CODE_SIGN_ENTITLEMENTS = nRFMeshProvision_Example.entitlements; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = P3R8YQEV4L; ENABLE_BITCODE = NO; INFOPLIST_FILE = nRFMeshProvision/Info.plist; @@ -1187,7 +1329,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = "$(inherited)"; LINK_WITH_STANDARD_LIBRARIES = YES; - MARKETING_VERSION = 2.2.3; + MARKETING_VERSION = 3.0; MODULE_NAME = ExampleApp; OTHER_LDFLAGS = ( "$(inherited)", @@ -1213,7 +1355,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO; CODE_SIGN_ENTITLEMENTS = nRFMeshProvision_Example.entitlements; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = P3R8YQEV4L; ENABLE_BITCODE = NO; INFOPLIST_FILE = nRFMeshProvision/Info.plist; @@ -1221,7 +1363,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = "$(inherited)"; LINK_WITH_STANDARD_LIBRARIES = YES; - MARKETING_VERSION = 2.2.3; + MARKETING_VERSION = 3.0; MODULE_NAME = ExampleApp; OTHER_LDFLAGS = ( "$(inherited)", diff --git a/Example/nRFMeshProvision.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision_Example.xcscheme b/Example/nRFMeshProvision.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision_Example.xcscheme index e9c6c969c..850a63e29 100644 --- a/Example/nRFMeshProvision.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision_Example.xcscheme +++ b/Example/nRFMeshProvision.xcodeproj/xcshareddata/xcschemes/nRFMeshProvision_Example.xcscheme @@ -1,6 +1,6 @@ + + + + @@ -39,17 +48,6 @@ - - - - - - - - + + + + FILEHEADER + +/* +* Copyright (c) 2019, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + + diff --git a/Example/nRFMeshProvision/AppDelegate.swift b/Example/nRFMeshProvision/AppDelegate.swift index 3df51348c..2226bd05a 100755 --- a/Example/nRFMeshProvision/AppDelegate.swift +++ b/Example/nRFMeshProvision/AppDelegate.swift @@ -45,7 +45,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { // configuration values. meshNetworkManager = MeshNetworkManager() meshNetworkManager.acknowledgmentTimerInterval = 0.150 - meshNetworkManager.transmissionTimerInteral = 0.600 + meshNetworkManager.transmissionTimerInterval = 0.600 meshNetworkManager.incompleteMessageTimeout = 10.0 meshNetworkManager.retransmissionLimit = 2 meshNetworkManager.acknowledgmentMessageInterval = 4.2 @@ -95,22 +95,51 @@ class AppDelegate: UIResponder, UIApplicationDelegate { connection?.close() let meshNetwork = meshNetworkManager.meshNetwork! + + // Generic Default Transition Time Server model: + let defaultTransitionTimeServerDelegate = GenericDefaultTransitionTimeServerDelegate(meshNetwork) + // Scene Server and Scene Setup Server models: + let sceneServer = SceneServerDelegate(meshNetwork, + defaultTransitionTimeServer: defaultTransitionTimeServerDelegate) + let sceneSetupServer = SceneSetupServerDelegate(server: sceneServer) // Set up local Elements on the phone. let element0 = Element(name: "Primary Element", location: .first, models: [ + // Scene Server and Scene Setup Server models (client is added automatically): + Model(sigModelId: .sceneServerModelId, delegate: sceneServer), + Model(sigModelId: .sceneSetupServerModelId, delegate: sceneSetupServer), + // Generic Default Transition Time Server model: + Model(sigModelId: .genericDefaultTransitionTimeServerModelId, + delegate: defaultTransitionTimeServerDelegate), + Model(sigModelId: .genericDefaultTransitionTimeClientModelId, + delegate: GenericDefaultTransitionTimeClientDelegate()), // 4 generic models defined by Bluetooth SIG: - Model(sigModelId: 0x1000, delegate: GenericOnOffServerDelegate()), - Model(sigModelId: 0x1002, delegate: GenericLevelServerDelegate()), - Model(sigModelId: 0x1001, delegate: GenericOnOffClientDelegate()), - Model(sigModelId: 0x1003, delegate: GenericLevelClientDelegate()), + Model(sigModelId: .genericOnOffServerModelId, + delegate: GenericOnOffServerDelegate(meshNetwork, + defaultTransitionTimeServer: defaultTransitionTimeServerDelegate, + elementIndex: 0)), + Model(sigModelId: .genericLevelServerModelId, + delegate: GenericLevelServerDelegate(meshNetwork, + defaultTransitionTimeServer: defaultTransitionTimeServerDelegate, + elementIndex: 0)), + Model(sigModelId: .genericOnOffClientModelId, delegate: GenericOnOffClientDelegate()), + Model(sigModelId: .genericLevelClientModelId, delegate: GenericLevelClientDelegate()), // A simple vendor model: - Model(vendorModelId: 0x0001, companyId: 0x0059, delegate: SimpleOnOffClientDelegate()) + Model(vendorModelId: .simpleOnOffModelId, + companyId: .nordicSemiconductorCompanyId, + delegate: SimpleOnOffClientDelegate()) ]) let element1 = Element(name: "Secondary Element", location: .second, models: [ - Model(sigModelId: 0x1000, delegate: GenericOnOffServerDelegate()), - Model(sigModelId: 0x1002, delegate: GenericLevelServerDelegate()), - Model(sigModelId: 0x1001, delegate: GenericOnOffClientDelegate()), - Model(sigModelId: 0x1003, delegate: GenericLevelClientDelegate()) + Model(sigModelId: .genericOnOffServerModelId, + delegate: GenericOnOffServerDelegate(meshNetwork, + defaultTransitionTimeServer: defaultTransitionTimeServerDelegate, + elementIndex: 1)), + Model(sigModelId: .genericLevelServerModelId, + delegate: GenericLevelServerDelegate(meshNetwork, + defaultTransitionTimeServer: defaultTransitionTimeServerDelegate, + elementIndex: 1)), + Model(sigModelId: .genericOnOffClientModelId, delegate: GenericOnOffClientDelegate()), + Model(sigModelId: .genericLevelClientModelId, delegate: GenericLevelClientDelegate()) ]) meshNetworkManager.localElements = [element0, element1] @@ -125,11 +154,23 @@ class AppDelegate: UIResponder, UIApplicationDelegate { extension MeshNetworkManager { static var instance: MeshNetworkManager { - return (UIApplication.shared.delegate as! AppDelegate).meshNetworkManager + if Thread.isMainThread { + return (UIApplication.shared.delegate as! AppDelegate).meshNetworkManager + } else { + return DispatchQueue.main.sync { + return (UIApplication.shared.delegate as! AppDelegate).meshNetworkManager + } + } } static var bearer: NetworkConnection! { - return (UIApplication.shared.delegate as! AppDelegate).connection + if Thread.isMainThread { + return (UIApplication.shared.delegate as! AppDelegate).connection + } else { + return DispatchQueue.main.sync { + return (UIApplication.shared.delegate as! AppDelegate).connection + } + } } } diff --git a/Example/nRFMeshProvision/Images.xcassets/baseline-scene.imageset/Contents.json b/Example/nRFMeshProvision/Images.xcassets/baseline-scene.imageset/Contents.json new file mode 100644 index 000000000..1b8d75eeb --- /dev/null +++ b/Example/nRFMeshProvision/Images.xcassets/baseline-scene.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "baseline-scene.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Example/nRFMeshProvision/Images.xcassets/baseline-scene.imageset/baseline-scene.pdf b/Example/nRFMeshProvision/Images.xcassets/baseline-scene.imageset/baseline-scene.pdf new file mode 100644 index 000000000..e5333e89a Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/baseline-scene.imageset/baseline-scene.pdf differ diff --git a/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/Contents.json b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/Contents.json new file mode 100644 index 000000000..b04b466ca --- /dev/null +++ b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "filename" : "group-scene-outline.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "group-scene-outline@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "group-scene-outline@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline.png b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline.png new file mode 100644 index 000000000..af3625e64 Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline@2x.png b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline@2x.png new file mode 100644 index 000000000..134a636a9 Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline@2x.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline@3x.png b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline@3x.png new file mode 100644 index 000000000..8c304a480 Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/group_scene_outline.imageset/group-scene-outline@3x.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/Contents.json b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/Contents.json new file mode 100644 index 000000000..3df8cb1ee --- /dev/null +++ b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "filename" : "ic_hop_24pt-2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ic_hop_24pt-1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ic_hop_24pt.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt-1.png b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt-1.png new file mode 100644 index 000000000..b744870db Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt-1.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt-2.png b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt-2.png new file mode 100644 index 000000000..a0a152ea2 Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt-2.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt.png b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt.png new file mode 100644 index 000000000..00dc87930 Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/ic_hop_24pt.imageset/ic_hop_24pt.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/Contents.json b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/Contents.json new file mode 100644 index 000000000..89f55dc9b --- /dev/null +++ b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "filename" : "outline_palette_black_24pt_1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "outline_palette_black_24pt_2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "outline_palette_black_24pt_3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_1x.png b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_1x.png new file mode 100644 index 000000000..3eabc1aa9 Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_1x.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_2x.png b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_2x.png new file mode 100644 index 000000000..60b779a4f Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_2x.png differ diff --git a/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_3x.png b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_3x.png new file mode 100644 index 000000000..1c97c1fff Binary files /dev/null and b/Example/nRFMeshProvision/Images.xcassets/ic_scenes_24pt.imageset/outline_palette_black_24pt_3x.png differ diff --git a/Example/nRFMeshProvision/Mesh Network/GenericDefaultTransitionTimeClientDelegate.swift b/Example/nRFMeshProvision/Mesh Network/GenericDefaultTransitionTimeClientDelegate.swift new file mode 100644 index 000000000..e73905d70 --- /dev/null +++ b/Example/nRFMeshProvision/Mesh Network/GenericDefaultTransitionTimeClientDelegate.swift @@ -0,0 +1,80 @@ +/* +* Copyright (c) 2019, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + +import Foundation +import nRFMeshProvision + +class GenericDefaultTransitionTimeClientDelegate: ModelDelegate { + let messageTypes: [UInt32 : MeshMessage.Type] + let isSubscriptionSupported: Bool = true + + var publicationMessageComposer: MessageComposer? { + func compose() -> MeshMessage { + return GenericDefaultTransitionTimeSetUnacknowledged(transitionTime: self.defaultTransitionTime) + } + let request = compose() + return { + return request + } + } + + var defaultTransitionTime: TransitionTime = TransitionTime() { + didSet { + publish(using: MeshNetworkManager.instance) + } + } + + init() { + let types: [GenericMessage.Type] = [ + GenericDefaultTransitionTimeStatus.self + ] + messageTypes = types.toMap() + } + + // MARK: - Message handlers + + func model(_ model: Model, didReceiveAcknowledgedMessage request: AcknowledgedMeshMessage, + from source: Address, sentTo destination: MeshAddress) throws -> MeshMessage { + fatalError("Not possible") + } + + func model(_ model: Model, didReceiveUnacknowledgedMessage message: MeshMessage, + from source: Address, sentTo destination: MeshAddress) { + // The status message may be received here if the Generic Default + // Transition Time Server model has been configured to publish. + // Ignore this message. + } + + func model(_ model: Model, didReceiveResponse response: MeshMessage, + toAcknowledgedMessage request: AcknowledgedMeshMessage, + from source: Address) { + // Ignore. + } +} diff --git a/Example/nRFMeshProvision/Mesh Network/GenericDefaultTransitionTimeServerDelegate.swift b/Example/nRFMeshProvision/Mesh Network/GenericDefaultTransitionTimeServerDelegate.swift new file mode 100644 index 000000000..a45621b6a --- /dev/null +++ b/Example/nRFMeshProvision/Mesh Network/GenericDefaultTransitionTimeServerDelegate.swift @@ -0,0 +1,110 @@ +/* +* Copyright (c) 2019, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + +import Foundation +import nRFMeshProvision + +class GenericDefaultTransitionTimeServerDelegate: ModelDelegate { + let messageTypes: [UInt32 : MeshMessage.Type] + let isSubscriptionSupported: Bool = true + let publicationMessageComposer: MessageComposer? = nil + + var defaultTransitionTime: TransitionTime { + didSet { + guard defaultTransitionTime.isKnown else { + defaultTransitionTime = TransitionTime(0) + return + } + } + } + + private let defaults: UserDefaults + + init(_ meshNetwork: MeshNetwork) { + let types: [GenericMessage.Type] = [ + GenericDefaultTransitionTimeGet.self, + GenericDefaultTransitionTimeSet.self, + GenericDefaultTransitionTimeSetUnacknowledged.self + ] + messageTypes = types.toMap() + + defaults = UserDefaults(suiteName: meshNetwork.uuid.uuidString)! + let interval = defaults.double(forKey: "defaultTransitionTime") + defaultTransitionTime = TransitionTime(interval) + } + + // MARK: - Message handlers + + func model(_ model: Model, didReceiveAcknowledgedMessage request: AcknowledgedMeshMessage, + from source: Address, sentTo destination: MeshAddress) throws -> MeshMessage { + switch request { + + case let request as GenericDefaultTransitionTimeSet: + // The state cannot be set to Unknown (0x3F) value. + guard request.transitionTime.isKnown else { + throw ModelError.invalidMessage + } + defaultTransitionTime = request.transitionTime + defaults.set(defaultTransitionTime.interval, forKey: "defaultTransitionTime") + fallthrough + + case is GenericDefaultTransitionTimeGet: + return GenericDefaultTransitionTimeStatus(transitionTime: defaultTransitionTime) + + default: + fatalError("Not possible") + } + } + + func model(_ model: Model, didReceiveUnacknowledgedMessage message: MeshMessage, + from source: Address, sentTo destination: MeshAddress) { + switch message { + + case let request as GenericDefaultTransitionTimeSetUnacknowledged: + // The state cannot be set to Unknown (0x3F) value. + guard request.transitionTime.isKnown else { + return + } + defaultTransitionTime = request.transitionTime + defaults.set(defaultTransitionTime.interval, forKey: "defaultTransitionTime") + + default: + // Not possible. + break + } + } + + func model(_ model: Model, didReceiveResponse response: MeshMessage, + toAcknowledgedMessage request: AcknowledgedMeshMessage, + from source: Address) { + // Not possible. + } + +} diff --git a/Example/nRFMeshProvision/Mesh Network/GenericLevelClientDelegate.swift b/Example/nRFMeshProvision/Mesh Network/GenericLevelClientDelegate.swift index 7093d79c1..05175a8b4 100644 --- a/Example/nRFMeshProvision/Mesh Network/GenericLevelClientDelegate.swift +++ b/Example/nRFMeshProvision/Mesh Network/GenericLevelClientDelegate.swift @@ -33,7 +33,24 @@ import nRFMeshProvision class GenericLevelClientDelegate: ModelDelegate { let messageTypes: [UInt32 : MeshMessage.Type] - let isSubscriptionSupported: Bool = false + let isSubscriptionSupported: Bool = true + + var publicationMessageComposer: MessageComposer? { + func compose() -> MeshMessage { + return GenericLevelSetUnacknowledged(level: self.state) + } + let request = compose() + return { + return request + } + } + + /// The current state of the Generic Level Client model. + var state: Int16 = Int16.min { + didSet { + publish(using: MeshNetworkManager.instance) + } + } init() { let types: [GenericMessage.Type] = [ diff --git a/Example/nRFMeshProvision/Mesh Network/GenericLevelServerDelegate.swift b/Example/nRFMeshProvision/Mesh Network/GenericLevelServerDelegate.swift index 20bd2262e..5fffde56e 100644 --- a/Example/nRFMeshProvision/Mesh Network/GenericLevelServerDelegate.swift +++ b/Example/nRFMeshProvision/Mesh Network/GenericLevelServerDelegate.swift @@ -31,23 +31,58 @@ import Foundation import nRFMeshProvision -class GenericLevelServerDelegate: ModelDelegate { +class GenericLevelServerDelegate: StoredWithSceneModelDelegate { + + /// The Generic Default Transition Time Server model, which this model depends on. + let defaultTransitionTimeServer: GenericDefaultTransitionTimeServerDelegate + let messageTypes: [UInt32 : MeshMessage.Type] let isSubscriptionSupported: Bool = true + var publicationMessageComposer: MessageComposer? { + func compose() -> MeshMessage { + if let transition = self.state.transition, transition.remainingTime > 0 { + return GenericLevelStatus(level: self.state.value, + targetLevel: transition.targetValue, + remainingTime: TransitionTime(transition.remainingTime)) + } else { + return GenericLevelStatus(level: self.state.value) + } + } + let request = compose() + return { + return request + } + } + + /// States stored with Scenes. + /// + /// The key is the Scene number as HEX (4-character hexadecimal string). + private var storedScenes: [String: Int16] + /// User defaults are used to store state with Scenes. + private let defaults: UserDefaults + /// The key, under which scenes are stored. + private let key: String + /// Model state. private var state = GenericState(Int16.min) { + willSet { + // If the state has changed due to a different reason than + // recalling a Scene, the Current Scene in Scene Server model + // has to be invalidated. + if !newValue.storedWithScene, + let network = MeshNetworkManager.instance.meshNetwork { + networkDidExitStoredWithSceneState(network) + } + } didSet { - if let transition = state.transition { - if transition.remainingTime > 0 { - DispatchQueue.main.async { - Timer.scheduledTimer(withTimeInterval: transition.remainingTime, repeats: false) { _ in - // If the state has not change since it was set, - // remove the Transition. - if self.state.transition?.start == transition.start { - self.state = GenericState(self.state.transition?.targetValue ?? self.state.value) - } - } + if let transition = state.transition, transition.remainingTime > 0 { + DispatchQueue.main.asyncAfter(deadline: .now() + transition.remainingTime) { [weak self] in + guard let self = self else { return } + // If the state has not change since it was set, + // remove the Transition. + if self.state.transition?.start == transition.start { + self.state = GenericState(self.state.transition?.targetValue ?? self.state.value) } } } @@ -60,11 +95,13 @@ class GenericLevelServerDelegate: ModelDelegate { } } /// The last transaction details. - private var lastTransaction: (source: Address, destination: MeshAddress, tid: UInt8, timestamp: Date)? + private let transactionHelper = TransactionHelper() /// The state observer. private var observer: ((GenericState) -> ())? - init() { + init(_ meshNetwork: MeshNetwork, + defaultTransitionTimeServer delegate: GenericDefaultTransitionTimeServerDelegate, + elementIndex: UInt8) { let types: [GenericMessage.Type] = [ GenericLevelGet.self, GenericLevelSet.self, @@ -75,6 +112,34 @@ class GenericLevelServerDelegate: ModelDelegate { GenericMoveSetUnacknowledged.self ] messageTypes = types.toMap() + + defaultTransitionTimeServer = delegate + + defaults = UserDefaults(suiteName: meshNetwork.uuid.uuidString)! + key = "genericLevelServer_\(elementIndex)_scenes" + storedScenes = defaults.dictionary(forKey: key) as? [String: Int16] ?? [:] + } + + // MARK: - Scene handlers + + func store(with scene: SceneNumber) { + storedScenes[scene.hex] = state.value + defaults.set(storedScenes, forKey: key) + } + + func recall(_ scene: SceneNumber, transitionTime: TransitionTime?, delay: UInt8?) { + guard let level = storedScenes[scene.hex] else { + return + } + if let transitionTime = transitionTime, + let delay = delay { + state = GenericState(transitionFrom: state, to: level, + delay: TimeInterval(delay) * 0.005, + duration: transitionTime.interval, + storedWithScene: true) + } else { + state = GenericState(level, storedWithScene: true) + } } // MARK: - Message handlers @@ -84,73 +149,70 @@ class GenericLevelServerDelegate: ModelDelegate { switch request { case let request as GenericLevelSet: // Ignore a repeated request (with the same TID) from the same source - // and sent to the same destinatino when it was received within 6 seconds. - guard lastTransaction == nil || - lastTransaction!.source != source || lastTransaction!.destination != destination || - request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) else { - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { break } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) - if let transitionTime = request.transitionTime, - let delay = request.delay { - state = GenericState(transitionFrom: state, to: request.level, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - state = GenericState(request.level) - } + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Start a new transition. + state = GenericState(transitionFrom: state, to: request.level, + delay: delay, + duration: transitionTime.interval) case let request as GenericDeltaSet: let targetLevel = Int16(truncatingIfNeeded: Int32(state.value) + request.delta) - if let transitionTime = request.transitionTime, - let delay = request.delay { - // Is the same transaction already in progress? - if let transition = state.transition, transition.remainingTime > 0, - lastTransaction != nil && - lastTransaction!.source == source && lastTransaction!.destination == destination && - !request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) { - // Continue the same transition. - state = GenericState(continueTransitionFrom: state, to: targetLevel, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - // Start a new transaction. - state = GenericState(transitionFrom: state, to: targetLevel, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } + /// A flag indicating whether the message is sent as a continuation + /// (using the same transaction) as the last one. + let continuation = transactionHelper.isTransactionContinuation(request, from: source, to: destination) + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Is the same transaction already in progress? + if continuation, let transition = state.transition, transition.remainingTime > 0 { + // Continue the same transition. + state = GenericState(continueTransitionFrom: state, to: targetLevel, + delay: delay, + duration: transitionTime.interval) } else { - state = GenericState(targetLevel) + // Start a new transition. + state = GenericState(transitionFrom: state, to: targetLevel, + delay: delay, + duration: transitionTime.interval) } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) case let request as GenericMoveSet: // Ignore a repeated request (with the same TID) from the same source - // and sent to the same destinatino when it was received within 6 seconds. - guard lastTransaction == nil || - lastTransaction!.source != source || lastTransaction!.destination != destination || - request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) else { - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { break } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) - if let transitionTime = request.transitionTime, - let delay = request.delay { - state = GenericState(animateFrom: state, to: request.deltaLevel, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - // Generic Default Transition Time is not supported, so the command - // shall not initiate any change. - } + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Start a new transition. + state = GenericState(animateFrom: state, to: request.deltaLevel, + delay: delay, + duration: transitionTime.interval) default: - // Not possible. - break + fatalError("Not possible") } // Reply with GenericLevelStatus. @@ -168,69 +230,67 @@ class GenericLevelServerDelegate: ModelDelegate { switch message { case let request as GenericLevelSetUnacknowledged: // Ignore a repeated request (with the same TID) from the same source - // and sent to the same destinatino when it was received within 6 seconds. - guard lastTransaction == nil || - lastTransaction!.source != source || lastTransaction!.destination != destination || - request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) else { - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { break } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) - if let transitionTime = request.transitionTime, - let delay = request.delay { - state = GenericState(transitionFrom: state, to: request.level, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - state = GenericState(request.level) - } + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Start a new transition. + state = GenericState(transitionFrom: state, to: request.level, + delay: delay, + duration: transitionTime.interval) case let request as GenericDeltaSetUnacknowledged: let targetLevel = Int16(truncatingIfNeeded: Int32(state.value) + request.delta) - if let transitionTime = request.transitionTime, - let delay = request.delay { - // Is the same transaction already in progress? - if let transition = state.transition, transition.remainingTime > 0, - lastTransaction != nil && - lastTransaction!.source == source && lastTransaction!.destination == destination && - !request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) { - // Continue the same transition. - state = GenericState(continueTransitionFrom: state, to: targetLevel, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - // Start a new transaction. - state = GenericState(transitionFrom: state, to: targetLevel, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } + /// A flag indicating whether the message is sent as a continuation + /// (using the same transaction) as the last one. + let continuation = transactionHelper.isTransactionContinuation(request, from: source, to: destination) + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Is the same transaction already in progress? + if continuation, let transition = state.transition, transition.remainingTime > 0 { + // Continue the same transition. + state = GenericState(continueTransitionFrom: state, to: targetLevel, + delay: delay, + duration: transitionTime.interval) } else { - state = GenericState(targetLevel) + // Start a new transition. + state = GenericState(transitionFrom: state, to: targetLevel, + delay: delay, + duration: transitionTime.interval) } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) case let request as GenericMoveSetUnacknowledged: // Ignore a repeated request (with the same TID) from the same source - // and sent to the same destinatino when it was received within 6 seconds. - guard lastTransaction == nil || - lastTransaction!.source != source || lastTransaction!.destination != destination || - request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) else { - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { break } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) - if let transitionTime = request.transitionTime, - let delay = request.delay { - state = GenericState(animateFrom: state, to: request.deltaLevel, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - // Generic Default Transition Time is not supported, so the command - // shall not initiate any change. - } + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Start a new transition. + state = GenericState(animateFrom: state, to: request.deltaLevel, + delay: delay, + duration: transitionTime.interval) default: // Not possible. diff --git a/Example/nRFMeshProvision/Mesh Network/GenericOnOffClientDelegate.swift b/Example/nRFMeshProvision/Mesh Network/GenericOnOffClientDelegate.swift index ffb1829cd..22cbdcf60 100644 --- a/Example/nRFMeshProvision/Mesh Network/GenericOnOffClientDelegate.swift +++ b/Example/nRFMeshProvision/Mesh Network/GenericOnOffClientDelegate.swift @@ -32,8 +32,26 @@ import Foundation import nRFMeshProvision class GenericOnOffClientDelegate: ModelDelegate { + let messageTypes: [UInt32 : MeshMessage.Type] - let isSubscriptionSupported: Bool = false + let isSubscriptionSupported: Bool = true + + var publicationMessageComposer: MessageComposer? { + func compose() -> MeshMessage { + return GenericOnOffSetUnacknowledged(self.state) + } + let request = compose() + return { + return request + } + } + + /// The current state of the Generic On Off Client model. + var state: Bool = false { + didSet { + publish(using: MeshNetworkManager.instance) + } + } init() { let types: [GenericMessage.Type] = [ diff --git a/Example/nRFMeshProvision/Mesh Network/GenericOnOffServerDelegate.swift b/Example/nRFMeshProvision/Mesh Network/GenericOnOffServerDelegate.swift index cc945fd63..be1837460 100644 --- a/Example/nRFMeshProvision/Mesh Network/GenericOnOffServerDelegate.swift +++ b/Example/nRFMeshProvision/Mesh Network/GenericOnOffServerDelegate.swift @@ -31,23 +31,58 @@ import Foundation import nRFMeshProvision -class GenericOnOffServerDelegate: ModelDelegate { +class GenericOnOffServerDelegate: StoredWithSceneModelDelegate { + + /// The Generic Default Transition Time Server model, which this model depends on. + let defaultTransitionTimeServer: GenericDefaultTransitionTimeServerDelegate + let messageTypes: [UInt32 : MeshMessage.Type] let isSubscriptionSupported: Bool = true + var publicationMessageComposer: MessageComposer? { + func compose() -> MeshMessage { + if let transition = self.state.transition, transition.remainingTime > 0 { + return GenericOnOffStatus(self.state.value, + targetState: transition.targetValue, + remainingTime: TransitionTime(transition.remainingTime)) + } else { + return GenericOnOffStatus(self.state.value) + } + } + let request = compose() + return { + return request + } + } + + /// States stored with Scenes. + /// + /// The key is the Scene number as HEX (4-character hexadecimal string). + private var storedScenes: [String: Bool] + /// User defaults are used to store state with Scenes. + private let defaults: UserDefaults + /// The key, under which scenes are stored. + private let key: String + /// Model state. private var state = GenericState(false) { + willSet { + // If the state has changed due to a different reason than + // recalling a Scene, the Current Scene in Scene Server model + // has to be invalidated. + if !newValue.storedWithScene, + let network = MeshNetworkManager.instance.meshNetwork { + networkDidExitStoredWithSceneState(network) + } + } didSet { - if let transition = state.transition { - if transition.remainingTime > 0 { - DispatchQueue.main.async { - Timer.scheduledTimer(withTimeInterval: transition.remainingTime, repeats: false) { _ in - // If the state has not change since it was set, - // remove the Transition. - if self.state.transition?.start == transition.start { - self.state = GenericState(self.state.transition?.targetValue ?? self.state.value) - } - } + if let transition = state.transition, transition.remainingTime > 0 { + DispatchQueue.main.asyncAfter(deadline: .now() + transition.remainingTime) { [weak self] in + guard let self = self else { return } + // If the state has not change since it was set, + // remove the Transition. + if self.state.transition?.start == transition.start { + self.state = GenericState(self.state.transition?.targetValue ?? self.state.value) } } } @@ -60,17 +95,47 @@ class GenericOnOffServerDelegate: ModelDelegate { } } /// The last transaction details. - private var lastTransaction: (source: Address, destination: MeshAddress, tid: UInt8, timestamp: Date)? + private let transactionHelper = TransactionHelper() /// The state observer. private var observer: ((GenericState) -> ())? - init() { + init(_ meshNetwork: MeshNetwork, + defaultTransitionTimeServer delegate: GenericDefaultTransitionTimeServerDelegate, + elementIndex: UInt8) { let types: [GenericMessage.Type] = [ GenericOnOffGet.self, GenericOnOffSet.self, GenericOnOffSetUnacknowledged.self ] messageTypes = types.toMap() + + defaultTransitionTimeServer = delegate + + defaults = UserDefaults(suiteName: meshNetwork.uuid.uuidString)! + key = "genericOnOffServer_\(elementIndex)_scenes" + storedScenes = defaults.dictionary(forKey: key) as? [String: Bool] ?? [:] + } + + // MARK: - Scene handlers + + func store(with scene: SceneNumber) { + storedScenes[scene.hex] = state.value + defaults.set(storedScenes, forKey: key) + } + + func recall(_ scene: SceneNumber, transitionTime: TransitionTime?, delay: UInt8?) { + guard let isOn = storedScenes[scene.hex] else { + return + } + if let transitionTime = transitionTime, + let delay = delay { + state = GenericState(transitionFrom: state, to: isOn, + delay: TimeInterval(delay) * 0.005, + duration: transitionTime.interval, + storedWithScene: true) + } else { + state = GenericState(isOn, storedWithScene: true) + } } // MARK: - Message handlers @@ -79,28 +144,26 @@ class GenericOnOffServerDelegate: ModelDelegate { from source: Address, sentTo destination: MeshAddress) -> MeshMessage { switch request { case let request as GenericOnOffSet: - // Ignore a repeated request (with the same TID) from the same source - // and sent to the same destinatino when it was received within 6 seconds. - guard lastTransaction == nil || - lastTransaction!.source != source || lastTransaction!.destination != destination || - request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) else { - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) + // Ignore a repeated request (with the same TID) from the same source + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { break } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) - if let transitionTime = request.transitionTime, - let delay = request.delay { - state = GenericState(transitionFrom: state, to: request.isOn, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - state = GenericState(request.isOn) - } + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Start a new transition. + state = GenericState(transitionFrom: state, to: request.isOn, + delay: delay, + duration: transitionTime.interval) default: - // Not possible. - break + fatalError("Not possible") } // Reply with GenericOnOffStatus. @@ -118,23 +181,22 @@ class GenericOnOffServerDelegate: ModelDelegate { switch message { case let request as GenericOnOffSetUnacknowledged: // Ignore a repeated request (with the same TID) from the same source - // and sent to the same destinatino when it was received within 6 seconds. - guard lastTransaction == nil || - lastTransaction!.source != source || lastTransaction!.destination != destination || - request.isNewTransaction(previousTid: lastTransaction!.tid, timestamp: lastTransaction!.timestamp) else { - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { break } - lastTransaction = (source: source, destination: destination, tid: request.tid, timestamp: Date()) - if let transitionTime = request.transitionTime, - let delay = request.delay { - state = GenericState(transitionFrom: state, to: request.isOn, - delay: TimeInterval(delay) * 0.005, - duration: transitionTime.interval) - } else { - state = GenericState(request.isOn) - } + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = TimeInterval(request.delay ?? 0) * 0.005 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + // Start a new transition. + state = GenericState(transitionFrom: state, to: request.isOn, + delay: delay, + duration: transitionTime.interval) default: // Not possible. diff --git a/Example/nRFMeshProvision/Mesh Network/GenericState.swift b/Example/nRFMeshProvision/Mesh Network/GenericState.swift index e1e1bc43f..7e4b0604a 100644 --- a/Example/nRFMeshProvision/Mesh Network/GenericState.swift +++ b/Example/nRFMeshProvision/Mesh Network/GenericState.swift @@ -64,6 +64,8 @@ struct GenericState { } } + /// A flag indicating whether the state was recalled from a stored Scene. + let storedWithScene: Bool /// The current state. let value: T /// The transition object. @@ -71,17 +73,25 @@ struct GenericState { /// The animation object. let animation: Move? - init(_ state: T) { + init(_ state: T, storedWithScene: Bool = false) { self.value = state self.transition = nil self.animation = nil + self.storedWithScene = storedWithScene } init(transitionFrom state: GenericState, to targetValue: T, - delay: TimeInterval, duration: TimeInterval) { - self.value = state.value + delay: TimeInterval, duration: TimeInterval, + storedWithScene: Bool = false) { self.animation = nil - guard state.value != targetValue else { + self.storedWithScene = storedWithScene + guard delay > 0 || duration > 0 else { + self.value = targetValue + self.transition = nil + return + } + self.value = state.value + guard state.transition != nil || state.value != targetValue else { self.transition = nil return } @@ -91,10 +101,17 @@ struct GenericState { } init(continueTransitionFrom state: GenericState, to targetValue: T, - delay: TimeInterval, duration: TimeInterval) { - self.value = state.value + delay: TimeInterval, duration: TimeInterval, + storedWithScene: Bool = false) { self.animation = nil - guard state.value != targetValue else { + self.storedWithScene = storedWithScene + guard delay > 0 || duration > 0 else { + self.value = targetValue + self.transition = nil + return + } + self.value = state.value + guard state.transition != nil || state.value != targetValue else { self.transition = nil return } @@ -113,10 +130,58 @@ struct GenericState { extension GenericState where T: BinaryInteger { + init(transitionFrom state: GenericState, to targetValue: T, + delay: TimeInterval, duration: TimeInterval, + storedWithScene: Bool = false) { + self.animation = nil + self.storedWithScene = storedWithScene + guard delay > 0 || duration > 0 else { + self.value = targetValue + self.transition = nil + return + } + self.value = state.currentValue + guard state.transition != nil || state.value != targetValue else { + self.transition = nil + return + } + self.transition = Self.Transition(targetValue: targetValue, + start: Date(), delay: delay, + duration: duration) + } + + init(continueTransitionFrom state: GenericState, to targetValue: T, + delay: TimeInterval, duration: TimeInterval, + storedWithScene: Bool = false) { + self.animation = nil + self.storedWithScene = storedWithScene + guard delay > 0 || duration > 0 else { + self.value = targetValue + self.transition = nil + return + } + self.value = state.currentValue + guard state.transition != nil || state.value != targetValue else { + self.transition = nil + return + } + if let transition = state.transition { + self.transition = Self.Transition(targetValue: targetValue, + start: transition.start, delay: delay, + duration: duration) + } else { + self.transition = Self.Transition(targetValue: targetValue, + start: Date(), delay: delay, + duration: duration) + } + } + init(animateFrom state: GenericState, to targetValue: T, - delay: TimeInterval, duration: TimeInterval) { + delay: TimeInterval, duration: TimeInterval, + storedWithScene: Bool = false) { self.value = state.value self.transition = nil + self.storedWithScene = storedWithScene guard state.value != targetValue, duration > 0 else { self.animation = nil return @@ -156,6 +221,5 @@ extension GenericState where T: BinaryInteger { return value } } + } - - diff --git a/Example/nRFMeshProvision/Mesh Network/NetworkConnection.swift b/Example/nRFMeshProvision/Mesh Network/NetworkConnection.swift index 585515456..ccacdac8b 100644 --- a/Example/nRFMeshProvision/Mesh Network/NetworkConnection.swift +++ b/Example/nRFMeshProvision/Mesh Network/NetworkConnection.swift @@ -77,7 +77,7 @@ class NetworkConnection: NSObject, Bearer { /// them if found. private var isStarted: Bool = false - /// Returns `true` if at least one Proxy is connected, `false` otherwies. + /// Returns `true` if at least one Proxy is connected, `false` otherwise. var isConnected: Bool { return proxies.contains { $0.isOpen } } diff --git a/Example/nRFMeshProvision/Mesh Network/SceneServerDelegate.swift b/Example/nRFMeshProvision/Mesh Network/SceneServerDelegate.swift new file mode 100644 index 000000000..c5b509794 --- /dev/null +++ b/Example/nRFMeshProvision/Mesh Network/SceneServerDelegate.swift @@ -0,0 +1,284 @@ +/* +* Copyright (c) 2019, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + +import Foundation +import nRFMeshProvision + +class SceneServerDelegate: SceneServerModelDelegate { + + /// The Generic Default Transition Time Server model, which this model depends on. + let defaultTransitionTimeServer: GenericDefaultTransitionTimeServerDelegate + + let messageTypes: [UInt32 : MeshMessage.Type] + let isSubscriptionSupported: Bool = true + + var publicationMessageComposer: MessageComposer? { + func compose() -> MeshMessage { + if let (targetScene, complete) = self.targetScene { + let remainingTime = TransitionTime(complete.timeIntervalSinceNow) + return SceneStatus(report: targetScene, remainingTime: remainingTime) + } else { + return SceneStatus(report: self.currentScene) + } + } + let status = compose() + return { + return status + } + } + + /// Stored scenes. + fileprivate var storedScenes: [SceneNumber] { + didSet { + defaults.set(storedScenes, forKey: "scenes") + } + } + /// Currently presenting Scene. + /// + /// If no current scene, this is set to `.invalidScene`. + fileprivate var currentScene: SceneNumber + + /// Target scene. + private var targetScene: (scene: SceneNumber, complete: Date)? { + didSet { + if let targetScene = targetScene { + let remainingTime = targetScene.complete.timeIntervalSinceNow + DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in + self?.currentScene = targetScene.scene + self?.targetScene = nil + } + } + } + } + /// The last transaction details. + private let transactionHelper = TransactionHelper() + + private let defaults: UserDefaults + + private var logger: LoggerDelegate? { + return MeshNetworkManager.instance.logger + } + + init(_ meshNetwork: MeshNetwork, + defaultTransitionTimeServer delegate: GenericDefaultTransitionTimeServerDelegate) { + let types: [GenericMessage.Type] = [ + SceneGet.self, + SceneRegisterGet.self, + SceneRecall.self, + SceneRecallUnacknowledged.self + ] + messageTypes = types.toMap() + + defaultTransitionTimeServer = delegate + + defaults = UserDefaults(suiteName: meshNetwork.uuid.uuidString)! + storedScenes = defaults.array(forKey: "scenes") as? [SceneNumber] ?? [] + currentScene = .invalidScene + } + + // MARK: - Stored With Scene Status Delegate + + func networkDidExitStoredWithSceneState() { + currentScene = .invalidScene + } + + // MARK: - Message handlers + + func model(_ model: Model, didReceiveAcknowledgedMessage request: AcknowledgedMeshMessage, + from source: Address, sentTo destination: MeshAddress) throws -> MeshMessage { + switch request { + case is SceneRegisterGet: + // When a Scene Server receives a Scene Register Get message, it shall respond + // with a Scene Register Status message, setting the Status Code field to Success. + return SceneRegisterStatus(report: currentScene, and: storedScenes) + + case let request as SceneRecall: + // Little validation. + guard request.scene.isValidSceneNumber else { + throw ModelError.invalidMessage + } + + // Ignore a repeated request (with the same TID) from the same source + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { + fallthrough // such a GOTO! + } + + // When a Scene Server receives a Scene Recall message with a Scene Number value + // that does not match a Scene Number stored within the Scene Register state, + // it shall respond with the Scene Status message, setting the Status Code field + // to Scene Not Found. + guard storedScenes.contains(request.scene) else { + return SceneStatus(report: currentScene, with: .sceneNotFound) + } + + // If the target state is equal to the current state, the transition shall not be + // started and is considered complete. + guard currentScene != request.scene else { + return SceneStatus(report: currentScene) + } + + // When a Scene Server receives a Scene Recall message with a Scene Number value + // that matches a Scene Number stored within the Scene Register state, it shall + // perform a Scene Recall operation for a scene memory referred to by the Scene + // Number and shall respond with a Scene Status message, setting the Status Code + // field to Success. + + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = request.delay ?? 0 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + if transitionTime.isImmediate { + currentScene = request.scene + } else { + let complete = Date(timeIntervalSinceNow: transitionTime.interval + TimeInterval(delay) * 0.005) + targetScene = (scene: request.scene, complete: complete) + currentScene = .invalidScene + } + // Recall that scene on all Models that support Scenes. + MeshNetworkManager.instance.localElements + .flatMap { element in element.models } + .compactMap { model in model.delegate as? StoredWithSceneModelDelegate } + .forEach { delegate in + delegate.recall(request.scene, + transitionTime: transitionTime, + delay: delay) + } + fallthrough + + default: + if let (targetScene, complete) = targetScene { + let remainingTime = TransitionTime(complete.timeIntervalSinceNow) + return SceneStatus(report: targetScene, remainingTime: remainingTime) + } + return SceneStatus(report: currentScene) + } + } + + func model(_ model: Model, didReceiveUnacknowledgedMessage message: MeshMessage, + from source: Address, sentTo destination: MeshAddress) { + switch message { + case let request as SceneRecallUnacknowledged: + // Little validation. + guard request.scene.isValidSceneNumber else { + return + } + + // Ignore a repeated request (with the same TID) from the same source + // and sent to the same destination when it was received within 6 seconds. + guard transactionHelper.isNewTransaction(request, from: source, to: destination) else { + return + } + + // When a Scene Server receives a Scene Recall message with a Scene Number value + // that does not match a Scene Number stored within the Scene Register state, + // it shall respond with the Scene Status message, setting the Status Code field + // to Scene Not Found. + guard storedScenes.contains(request.scene) else { + return + } + + // If the target state is equal to the current state, the transition shall not be + // started and is considered complete. + guard currentScene != request.scene else { + return + } + + // When a Scene Server receives a Scene Recall Unacknowledged message with a + // Scene Number value that matches a Scene Number stored within the Scene + // Register state, it shall perform a Scene Recall operation for a scene + // memory referred to by the Scene Number. + + /// Message execution delay in 5 millisecond steps. By default 0. + let delay = request.delay ?? 0 + /// The time that an element will take to transition to the target + /// state from the present state. If not set, the default transition + /// time from Generic Default Transition Time Server model is used. + let transitionTime = request.transitionTime + .or(defaultTransitionTimeServer.defaultTransitionTime) + if transitionTime.isImmediate { + currentScene = request.scene + } else { + let complete = Date(timeIntervalSinceNow: transitionTime.interval + TimeInterval(delay) * 0.005) + targetScene = (scene: request.scene, complete: complete) + currentScene = .invalidScene + } + // Recall that scene on all Models that support Scenes. + MeshNetworkManager.instance.localElements + .flatMap { element in element.models } + .compactMap { model in model.delegate as? StoredWithSceneModelDelegate } + .forEach { delegate in + delegate.recall(request.scene, + transitionTime: transitionTime, + delay: delay) + } + + default: + // Not possible. + break + } + } + + func model(_ model: Model, didReceiveResponse response: MeshMessage, + toAcknowledgedMessage request: AcknowledgedMeshMessage, from source: Address) { + // Not possible. + } + +} + +extension SceneSetupServerDelegate { + + var storedScenes: [SceneNumber] { + return server.storedScenes + } + + var currentScene: SceneNumber { + get { return server.currentScene } + set { server.currentScene = newValue } + } + + func setCurrentScene(_ scene: SceneNumber) { + if !server.storedScenes.contains(scene) { + server.storedScenes.append(scene) + } + server.currentScene = scene + } + + func removeScene(at index: Int) { + let scene = server.storedScenes.remove(at: index) + if currentScene == scene { + currentScene = .invalidScene + } + } + +} diff --git a/Example/nRFMeshProvision/Mesh Network/SceneSetupServerDelegate.swift b/Example/nRFMeshProvision/Mesh Network/SceneSetupServerDelegate.swift new file mode 100644 index 000000000..82c698968 --- /dev/null +++ b/Example/nRFMeshProvision/Mesh Network/SceneSetupServerDelegate.swift @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2019, Nordic Semiconductor +* All rights reserved. +* +* 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. +*/ + +import Foundation +import nRFMeshProvision + +class SceneSetupServerDelegate: ModelDelegate { + /// Maximum size of the Scene Register. + private static let maxScenes = 16 + + /// The Scene Server model, which this model extends. + let server: SceneServerDelegate + + let messageTypes: [UInt32 : MeshMessage.Type] + let isSubscriptionSupported: Bool = true + let publicationMessageComposer: MessageComposer? = nil + + init(server delegate: SceneServerDelegate) { + let types: [GenericMessage.Type] = [ + SceneStore.self, + SceneStoreUnacknowledged.self, + SceneDelete.self, + SceneDeleteUnacknowledged.self + ] + messageTypes = types.toMap() + server = delegate + } + + // MARK: - Message handlers + + func model(_ model: Model, didReceiveAcknowledgedMessage request: AcknowledgedMeshMessage, + from source: Address, sentTo destination: MeshAddress) throws -> MeshMessage { + switch request { + case let request as SceneStore: + // Little validation. + guard request.scene.isValidSceneNumber else { + throw ModelError.invalidMessage + } + + // Scene Register may contain up to 16 stored Scenes. + // Overwriting is allowed. + guard storedScenes.count < Self.maxScenes || + storedScenes.contains(request.scene) else { + return SceneRegisterStatus(report: currentScene, + and: storedScenes, + with: .sceneRegisterFull) + } + + setCurrentScene(request.scene) + + // Store the scene on all Models that support Scenes. + MeshNetworkManager.instance.localElements + .flatMap { $0.models } + .compactMap { $0.delegate as? StoredWithSceneModelDelegate } + .forEach { $0.store(with: request.scene) } + + case let request as SceneDelete: + // Little validation. + guard request.scene.isValidSceneNumber else { + throw ModelError.invalidMessage + } + + // If no such Scene was found, return an error. + guard let index = storedScenes.firstIndex(of: request.scene) else { + return SceneRegisterStatus(report: currentScene, + and: storedScenes, + with: .sceneNotFound) + } + + removeScene(at: index) + + default: + fatalError("Not possible") + } + + return SceneRegisterStatus(report: currentScene, and: storedScenes) + } + + func model(_ model: Model, didReceiveUnacknowledgedMessage message: MeshMessage, + from source: Address, sentTo destination: MeshAddress) { + switch message { + case let request as SceneStoreUnacknowledged: + // Little validation. + guard request.scene.isValidSceneNumber else { + return + } + + // Scene Register may contain up to 16 stored Scenes. + // Overwriting is allowed. + guard storedScenes.count < Self.maxScenes || + storedScenes.contains(request.scene) else { + return + } + setCurrentScene(request.scene) + + // Store the scene on all Models that support Scenes. + MeshNetworkManager.instance.localElements + .flatMap { $0.models } + .compactMap { $0.delegate as? StoredWithSceneModelDelegate } + .forEach { $0.store(with: request.scene) } + + case let request as SceneDeleteUnacknowledged: + // Little validation. + guard request.scene.isValidSceneNumber else { + return + } + + // If no such Scene was found, ignore + guard let index = storedScenes.firstIndex(of: request.scene) else { + return + } + removeScene(at: index) + + default: + // Not possible. + break + } + } + + func model(_ model: Model, didReceiveResponse response: MeshMessage, + toAcknowledgedMessage request: AcknowledgedMeshMessage, + from source: Address) { + // Not possible. + } + +} diff --git a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffGet.swift b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffGet.swift index 8e737d685..c16d35695 100644 --- a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffGet.swift +++ b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffGet.swift @@ -32,7 +32,7 @@ import Foundation import nRFMeshProvision struct SimpleOnOffGet: AcknowledgedStaticVendorMessage { - // The Op Code cosists of: + // The Op Code consists of: // 0xC0-0000 - Vendor Op Code bitmask // 0x02-0000 - The Op Code defined by... // 0x00-5900 - Nordic Semiconductor ASA company ID (in Little Endian) as defined here: diff --git a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSet.swift b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSet.swift index b2219d093..2d2b2afbd 100644 --- a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSet.swift +++ b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSet.swift @@ -32,7 +32,7 @@ import Foundation import nRFMeshProvision struct SimpleOnOffSet: AcknowledgedStaticVendorMessage { - // The Op Code cosists of: + // The Op Code consists of: // 0xC0-0000 - Vendor Op Code bitmask // 0x01-0000 - The Op Code defined by... // 0x00-5900 - Nordic Semiconductor ASA company ID (in Little Endian) as defined here: diff --git a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSetUnacknowledged.swift b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSetUnacknowledged.swift index 53361db83..49772cb48 100644 --- a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSetUnacknowledged.swift +++ b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffSetUnacknowledged.swift @@ -32,7 +32,7 @@ import Foundation import nRFMeshProvision struct SimpleOnOffSetUnacknowledged: StaticVendorMessage { - // The Op Code cosists of: + // The Op Code consists of: // 0xC0-0000 - Vendor Op Code bitmask // 0x03-0000 - The Op Code defined by... // 0x00-5900 - Nordic Semiconductor ASA company ID (in Little Endian) as defined here: diff --git a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffStatus.swift b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffStatus.swift index 273ba794a..0d8549d28 100644 --- a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffStatus.swift +++ b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/Messages/SimpleOnOffStatus.swift @@ -32,7 +32,7 @@ import Foundation import nRFMeshProvision struct SimpleOnOffStatus: StaticVendorMessage { - // The Op Code cosists of: + // The Op Code consists of: // 0xC0-0000 - Vendor Op Code bitmask // 0x04-0000 - The Op Code defined by... // 0x00-5900 - Nordic Semiconductor ASA company ID (in Little Endian) as defined here: diff --git a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/SimpleOnOffClientDelegate.swift b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/SimpleOnOffClientDelegate.swift index 100a7a021..678e4d764 100644 --- a/Example/nRFMeshProvision/Mesh Network/Simple OnOff/SimpleOnOffClientDelegate.swift +++ b/Example/nRFMeshProvision/Mesh Network/Simple OnOff/SimpleOnOffClientDelegate.swift @@ -50,8 +50,20 @@ class SimpleOnOffClientDelegate: ModelDelegate { let messageTypes: [UInt32 : MeshMessage.Type] let isSubscriptionSupported: Bool = false - let manager: MeshNetworkManager - let logger: LoggerDelegate? + lazy var publicationMessageComposer: MessageComposer? = { [unowned self] in + return SimpleOnOffSetUnacknowledged(self.state) + } + + /// The current state of the Simple On Off Client model. + var state: Bool = false { + didSet { + publish(using: MeshNetworkManager.instance) + } + } + + private var logger: LoggerDelegate? { + return MeshNetworkManager.instance.logger + } init() { // This Model Delegate is able to receive SimpleOnOffStatus messages. @@ -62,9 +74,6 @@ class SimpleOnOffClientDelegate: ModelDelegate { SimpleOnOffStatus.self ] messageTypes = types.toMap() - - manager = MeshNetworkManager.instance - logger = manager.logger } func model(_ model: Model, @@ -72,7 +81,7 @@ class SimpleOnOffClientDelegate: ModelDelegate { from source: Address, sentTo destination: MeshAddress) -> MeshMessage { // This method will never be called for this Model, as the single message // type it supports (defines in `messageTypes`) is unacknowledged. - fatalError("What has just happend?") + fatalError("What has just happened?") } func model(_ model: Model, @@ -85,6 +94,7 @@ class SimpleOnOffClientDelegate: ModelDelegate { switch message { case let status as SimpleOnOffStatus: + let manager = MeshNetworkManager.instance let node = manager.meshNetwork?.node(withAddress: source) let element = node?.element(withAddress: source) let nodeName = node?.name ?? "Unknown Device" @@ -107,6 +117,7 @@ class SimpleOnOffClientDelegate: ModelDelegate { // This is where the status for the requests is delivered. switch response { case let status as SimpleOnOffStatus: + let manager = MeshNetworkManager.instance let node = manager.meshNetwork?.node(withAddress: source) let element = node?.element(withAddress: source) let nodeName = node?.name ?? "Unknown Device" diff --git a/Example/nRFMeshProvision/UI/Base.lproj/Control.storyboard b/Example/nRFMeshProvision/UI/Base.lproj/Control.storyboard index 7a69e0978..458f6c6b5 100644 --- a/Example/nRFMeshProvision/UI/Base.lproj/Control.storyboard +++ b/Example/nRFMeshProvision/UI/Base.lproj/Control.storyboard @@ -1,10 +1,11 @@ - + - + + @@ -42,7 +43,7 @@ - + @@ -61,7 +62,7 @@ - - - @@ -98,6 +98,7 @@ + @@ -116,7 +117,6 @@ - @@ -124,6 +124,7 @@ + @@ -139,7 +140,7 @@ - - - @@ -178,6 +178,7 @@ + @@ -201,7 +202,6 @@ - @@ -213,6 +213,7 @@ + @@ -229,7 +230,7 @@ - - - @@ -266,6 +266,7 @@ + @@ -284,11 +285,11 @@ + - @@ -305,10 +306,16 @@ + + + + + + + - diff --git a/Example/nRFMeshProvision/UI/Base.lproj/Groups.storyboard b/Example/nRFMeshProvision/UI/Base.lproj/Groups.storyboard index 934266adc..95fe448d1 100644 --- a/Example/nRFMeshProvision/UI/Base.lproj/Groups.storyboard +++ b/Example/nRFMeshProvision/UI/Base.lproj/Groups.storyboard @@ -1,10 +1,12 @@ - + - + + + @@ -15,20 +17,20 @@ - + - + @@ -91,7 +93,7 @@ - + @@ -110,7 +112,7 @@ - - + @@ -174,10 +176,10 @@ - - - + @@ -221,6 +223,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -233,12 +329,12 @@ + - @@ -256,25 +352,25 @@ - + - + - + - + - + @@ -285,7 +381,7 @@ @@ -328,9 +424,9 @@ - + - + @@ -338,7 +434,7 @@ - + + + + + + + + + + + + + + + + + + - - - - diff --git a/Example/nRFMeshProvision/UI/Base.lproj/LaunchScreen.storyboard b/Example/nRFMeshProvision/UI/Base.lproj/LaunchScreen.storyboard index d1ce67c7c..8b886c960 100644 --- a/Example/nRFMeshProvision/UI/Base.lproj/LaunchScreen.storyboard +++ b/Example/nRFMeshProvision/UI/Base.lproj/LaunchScreen.storyboard @@ -1,9 +1,9 @@ - + - + @@ -20,6 +20,7 @@ + @@ -27,7 +28,6 @@ - diff --git a/Example/nRFMeshProvision/UI/Base.lproj/Main.storyboard b/Example/nRFMeshProvision/UI/Base.lproj/Main.storyboard index 80651c34d..118f5a045 100644 --- a/Example/nRFMeshProvision/UI/Base.lproj/Main.storyboard +++ b/Example/nRFMeshProvision/UI/Base.lproj/Main.storyboard @@ -1,16 +1,16 @@ - + - + - + @@ -50,7 +50,7 @@ - + @@ -81,6 +81,7 @@ + @@ -88,5 +89,4 @@ - diff --git a/Example/nRFMeshProvision/UI/Base.lproj/Network.storyboard b/Example/nRFMeshProvision/UI/Base.lproj/Network.storyboard index 8bba8d96e..5fdeb437e 100644 --- a/Example/nRFMeshProvision/UI/Base.lproj/Network.storyboard +++ b/Example/nRFMeshProvision/UI/Base.lproj/Network.storyboard @@ -1,9 +1,10 @@ - + - + + @@ -14,30 +15,30 @@ - + - + - - + + @@ -79,7 +80,7 @@ - @@ -106,7 +107,7 @@ - + @@ -116,17 +117,17 @@ @@ -140,7 +141,7 @@ @@ -164,7 +165,7 @@ @@ -188,12 +189,12 @@ - + + + + + + + + + + @@ -639,11 +814,13 @@ + + - + @@ -652,7 +829,7 @@ - + @@ -703,7 +880,7 @@ - + @@ -759,7 +936,7 @@ - + @@ -767,7 +944,7 @@ - + @@ -795,21 +972,21 @@ - + @@ -819,21 +996,21 @@ - + @@ -854,7 +1031,7 @@ @@ -878,7 +1055,7 @@ @@ -902,7 +1079,7 @@ @@ -926,7 +1103,7 @@ @@ -950,7 +1127,7 @@ @@ -974,7 +1151,7 @@ @@ -998,7 +1175,7 @@ @@ -1022,7 +1199,7 @@ @@ -1082,7 +1259,7 @@ - + @@ -1092,7 +1269,7 @@ @@ -1159,13 +1336,13 @@ - + - + @@ -1176,7 +1353,7 @@ @@ -1335,7 +1512,7 @@ - + @@ -1345,7 +1522,7 @@ @@ -1384,7 +1561,58 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1393,7 +1621,7 @@ - + @@ -1403,7 +1631,7 @@ @@ -1447,7 +1675,63 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1497,7 +1781,7 @@ - + @@ -1506,7 +1790,7 @@ - + @@ -1562,7 +1846,7 @@ - + @@ -1642,7 +1926,7 @@ - + @@ -1669,17 +1953,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - diff --git a/Example/nRFMeshProvision/UI/Base.lproj/Proxy.storyboard b/Example/nRFMeshProvision/UI/Base.lproj/Proxy.storyboard index 93ec2d1f8..e8de22a6d 100644 --- a/Example/nRFMeshProvision/UI/Base.lproj/Proxy.storyboard +++ b/Example/nRFMeshProvision/UI/Base.lproj/Proxy.storyboard @@ -1,9 +1,10 @@ - + - + + @@ -14,7 +15,7 @@ - + @@ -64,10 +65,10 @@ @@ -83,13 +84,13 @@ - - + + @@ -1283,7 +1589,6 @@ - @@ -1329,17 +1634,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/nRFMeshProvision/UI/Model/ConfigurationServer.xib b/Example/nRFMeshProvision/UI/Model/ConfigurationServer.xib index cfaea6f9f..cf5aca6d4 100644 --- a/Example/nRFMeshProvision/UI/Model/ConfigurationServer.xib +++ b/Example/nRFMeshProvision/UI/Model/ConfigurationServer.xib @@ -1,69 +1,70 @@ - + - + + - - + + - + - - + + - - + @@ -108,54 +109,54 @@ - - + + - + + + + + + + + + + + diff --git a/Example/nRFMeshProvision/UI/Model/GenericDefaultTransitionTime.xib b/Example/nRFMeshProvision/UI/Model/GenericDefaultTransitionTime.xib new file mode 100644 index 000000000..f61267868 --- /dev/null +++ b/Example/nRFMeshProvision/UI/Model/GenericDefaultTransitionTime.xib @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/nRFMeshProvision/UI/Model/GenericLevel.xib b/Example/nRFMeshProvision/UI/Model/GenericLevel.xib index 519476fb3..86a60d583 100644 --- a/Example/nRFMeshProvision/UI/Model/GenericLevel.xib +++ b/Example/nRFMeshProvision/UI/Model/GenericLevel.xib @@ -1,10 +1,11 @@ - + - + + @@ -32,102 +33,102 @@ - + - + - - + + - + - - + + - + - - + + - + - - + + - + @@ -141,8 +142,8 @@ - - + - + @@ -171,13 +172,13 @@ - + - + @@ -191,53 +192,53 @@ - - + + - - + + - - - + - + @@ -144,13 +145,13 @@ - + - + @@ -164,53 +165,53 @@ - - + + - - + + -